package nl.hsac.fitnesse.fixture.util; import nl.hsac.fitnesse.fixture.util.selenium.SeleniumHelper; import org.junit.Test; import org.openqa.selenium.By; import static org.junit.Assert.assertEquals; public class SeleniumHelperTest { private final SeleniumHelper helper = new SeleniumHelper(); @Test public void testFindByXPathNormal() { By by = helper.byXpath(".//option[normalize-space(translate(text(), '\u00a0', ' ')) = '%s']", "A"); assertEquals("By.xpath: .//option[normalize-space(translate(text(), '\u00a0', ' ')) = 'A']", by.toString()); } @Test public void testFindByXPathNormalizedExact() { By by = helper.byXpath(".//option[normalized(text()) = '%s']", "A"); assertEquals("By.xpath: .//option[normalize-space(translate(text(), '\u00a0', ' ')) = 'A']", by.toString()); by = helper.byXpath(".//option[normalized(.) = '%s']", "A"); assertEquals("By.xpath: .//option[normalize-space(translate(., '\u00a0', ' ')) = 'A']", by.toString()); by = helper.byXpath(".//option[normalized(descendant::text()) = '%s']", "A"); assertEquals("By.xpath: .//option[normalize-space(translate(descendant::text(), '\u00a0', ' ')) = 'A']", by.toString()); by = helper.byXpath(".//option[normalized(descendant::text()) = '%s']" + "//option[normalized(descendant::text()) = '%s']", "A", "B"); assertEquals("By.xpath: .//option[normalize-space(translate(descendant::text(), '\u00a0', ' ')) = 'A']" + "//option[normalize-space(translate(descendant::text(), '\u00a0', ' ')) = 'B']", by.toString()); } @Test public void testFindByXPathNormalizedInParams() { By by = helper.byXpath(".//option[%s = '%s']", "normalized(text())", "A"); assertEquals("By.xpath: .//option[normalize-space(translate(text(), '\u00a0', ' ')) = \"A\"]", by.toString()); by = helper.byXpath(".//option[%s = '%s']", "normalized(.)", "A"); assertEquals("By.xpath: .//option[normalize-space(translate(., '\u00a0', ' ')) = \"A\"]", by.toString()); by = helper.byXpath(".//option[%s = '%s']", "normalized(descendant::text())", "A"); assertEquals("By.xpath: .//option[normalize-space(translate(descendant::text(), '\u00a0', ' ')) = \"A\"]", by.toString()); by = helper.byXpath(".//option[%s = '%s']" + "//option[%s = '%s']", "normalized(descendant::text())", "A", "normalized(descendant::text())", "B"); assertEquals("By.xpath: .//option[normalize-space(translate(descendant::text(), '\u00a0', ' ')) = \"A\"]" + "//option[normalize-space(translate(descendant::text(), '\u00a0', ' ')) = \"B\"]", by.toString()); } @Test public void testFindByXPathNormalizedContains() { By by = helper.byXpath(".//option[contains(normalized(text()), '%s')]", "A"); assertEquals("By.xpath: .//option[contains(normalize-space(translate(text(), '\u00a0', ' ')), 'A')]", by.toString()); by = helper.byXpath(".//option[contains(normalized(.), '%s')]", "A"); assertEquals("By.xpath: .//option[contains(normalize-space(translate(., '\u00a0', ' ')), 'A')]", by.toString()); by = helper.byXpath(".//option[contains(normalized(descendant::text()), '%s')]", "A"); assertEquals("By.xpath: .//option[contains(normalize-space(translate(descendant::text(), '\u00a0', ' ')), 'A')]", by.toString()); by = helper.byXpath(".//option[contains(normalized(descendant::text()), '%s')]" + "//option[contains(normalized(descendant::text()), '%s')]", "A", "B"); assertEquals("By.xpath: .//option[contains(normalize-space(translate(descendant::text(), '\u00a0', ' ')), 'A')]" + "//option[contains(normalize-space(translate(descendant::text(), '\u00a0', ' ')), 'B')]", by.toString()); } }