@Override public CssClassAttributeCondition verifyTranslation(String actualSelector, String expectedClassName) { // given // selector arg // when CssClassAttributeCondition cssCondition = parseAndAssertFirstCssCondition(prefix + actualSelector, CssClassAttributeCondition.class); // then assertThat(cssCondition.getClassName(), is(expectedClassName)); return cssCondition; } }
@Test public void translate__simple_condition() { // given String simpleConditionSelector = "a.condition"; // when CssSelector cssSelector = ParseTreeBuilder.parse(simpleConditionSelector).firstSelector(); // then assertThat(cssSelector, instanceOf(CssConditionalSelector.class)); CssSelector sqCssSelector = ((CssConditionalSelector) cssSelector).getCssSelector(); CssCondition cssCondition = ((CssConditionalSelector) cssSelector).getCssCondition(); assertThat(sqCssSelector, instanceOf(CssTagNameSelector.class)); assertThat(((CssTagNameSelector) sqCssSelector).getTagName(), is("a")); assertThat(cssCondition, instanceOf(CssClassAttributeCondition.class)); assertThat(((CssClassAttributeCondition) cssCondition).getClassName(), is("condition")); }
@Test public void translate__compound_condition() { // given String compoundConditionSelector = "a.conditionA.conditionB"; // when CssSelector cssSelector = ParseTreeBuilder.parse(compoundConditionSelector).firstSelector(); // then assertThat(cssSelector, instanceOf(CssConditionalSelector.class)); CssSelector sqCssSelector = ((CssConditionalSelector) cssSelector).getCssSelector(); CssCondition cssCondition = ((CssConditionalSelector) cssSelector).getCssCondition(); assertThat(sqCssSelector, instanceOf(CssTagNameSelector.class)); assertThat(((CssTagNameSelector) sqCssSelector).getTagName(), is("a")); assertThat(cssCondition, instanceOf(CssAndCondition.class)); CssCondition sqCssFirstCondition = ((CssAndCondition) cssCondition).getFirstCondition(); CssCondition sqCssSecondCondition = ((CssAndCondition) cssCondition).getSecondCondition(); assertThat(sqCssFirstCondition, instanceOf(CssClassAttributeCondition.class)); assertThat(((CssClassAttributeCondition) sqCssFirstCondition).getClassName(), is("conditionA")); assertThat(sqCssSecondCondition, instanceOf(CssClassAttributeCondition.class)); assertThat(((CssClassAttributeCondition) sqCssSecondCondition).getClassName(), is("conditionB")); }
@Test public void translate_with_condition() { // given CssSelector cssSelector = ParseTreeBuilder.parse("a b.condition").firstSelector(); assertThat(cssSelector, instanceOf(CssDescendantSelector.class)); // when CssSelector ancestorSelector = ((CssDescendantSelector) cssSelector).getAncestorSelector(); CssSelector descendantSelector = ((CssDescendantSelector) cssSelector).getDescendantSelector(); // then assertThat(ancestorSelector, instanceOf(CssTagNameSelector.class)); assertThat(((CssTagNameSelector) ancestorSelector).getTagName(), is("a")); assertThat(descendantSelector, instanceOf(CssConditionalSelector.class)); CssSelector sqCssSelector = ((CssConditionalSelector) descendantSelector).getCssSelector(); CssCondition cssCondition = ((CssConditionalSelector) descendantSelector).getCssCondition(); assertThat(sqCssSelector, instanceOf(CssTagNameSelector.class)); assertThat(((CssTagNameSelector) sqCssSelector).getTagName(), is("b")); assertThat(cssCondition, instanceOf(CssClassAttributeCondition.class)); assertThat(((CssClassAttributeCondition) cssCondition).getClassName(), is("condition")); }