package com.redheap.selenium; import com.redheap.selenium.component.AdfInputText; import com.redheap.selenium.component.AdfTable; import com.redheap.selenium.components.PageTestBase; import com.redheap.selenium.pages.EditableTablePage; import static org.junit.Assert.*; import org.junit.Test; /** * Test component lookups by relative locators. */ public class LocatorTest extends PageTestBase<EditableTablePage> { @Test public void testAbsoluteLocator() { EditableTablePage page = pages.goHome(); AdfTable table = page.findTable(); AdfInputText target = table.findAdfComponentByLocator(":dmoTpl:table1[0]:it2"); assertEquals("dmoTpl:table1[0]:it2", target.getAbsoluteLocator()); assertEquals("dmoTpl:table1:0:it2", target.getClientId()); } @Test public void testRelativeLocatorFromNonNamingContainer() { EditableTablePage page = pages.goHome(); AdfTable table = page.findTable(); AdfInputText base = table.findAdfComponentByLocator(":dmoTpl:table1[0]:it2"); AdfInputText target = base.findAdfComponentByLocator("it3"); assertEquals("dmoTpl:table1[0]:it3", target.getAbsoluteLocator()); assertEquals("dmoTpl:table1:0:it3", target.getClientId()); } // @Test // public void testRelativeLocatorFromNamingContainer() { // EditableTablePage page = tablePage.goHome(); // AdfTable table = page.findTable(); // AdfDynamicDeclarativeComponent namingContainer = table.findAdfComponentByLocator(":dmoTpl:gTools:glryFind"); // AdfInputText target = namingContainer.findAdfComponentByLocator("findIt"); // assertEquals("dmoTpl:gTools:glryFind:findIt", target.getAbsoluteLocator()); // assertEquals("dmoTpl:gTools:glryFind:findIt", target.getClientId()); // } @Test public void testRelativeDifferentIndexLocator() { EditableTablePage page = pages.goHome(); AdfTable table = page.findTable(); AdfInputText base = table.findAdfComponentByLocator(":dmoTpl:table1[0]:it2"); AdfInputText target = base.findAdfComponentByLocator("::[1]:it3"); assertEquals("dmoTpl:table1[1]:it3", target.getAbsoluteLocator()); assertEquals("dmoTpl:table1:1:it3", target.getClientId()); } @Test public void testIndexLocator() { EditableTablePage page = pages.goHome(); AdfTable table = page.findTable(); AdfInputText target = table.findAdfComponentByLocator("[2]:it2"); assertEquals("dmoTpl:table1[2]:it2", target.getAbsoluteLocator()); assertEquals("dmoTpl:table1:2:it2", target.getClientId()); } @Test public void testNonExistingChild() { EditableTablePage page = pages.goHome(); AdfTable table = page.findTable(); assertNull(table.findAdfComponent("foo")); } // @Test // public void testDeclarativeComponentLocator() { // DeclarativeComponentPage page = declCompPage.goHome(); // AdfDynamicDeclarativeComponent declComp = page.findDeclarativeComponent(); // AdfOutputText target = declComp.findAdfComponentByLocator("dcot1"); // assertEquals("dmoTpl:lwdc:dcot1", target.getAbsoluteLocator()); // assertEquals("dmoTpl:lwdc:dcot1", target.getClientId()); // // af:ierator does not exist at client, so simple iter:0:item and not iter[0]:item // AdfInputText it0 = declComp.findAdfComponentByLocator("dci1:0:itemsText"); // assertEquals("dmoTpl:lwdc:dci1:0:itemsText", it0.getAbsoluteLocator()); // assertEquals("dmoTpl:lwdc:dci1:0:itemsText", it0.getClientId()); // AdfInputText it2 = declComp.findAdfComponentByLocator("dci1:2:itemsText"); // assertEquals("dmoTpl:lwdc:dci1:2:itemsText", it2.getAbsoluteLocator()); // assertEquals("dmoTpl:lwdc:dci1:2:itemsText", it2.getClientId()); // // facet content // AdfInputText fit = declComp.findAdfComponentByLocator("facetInputText"); // assertEquals("dmoTpl:lwdc:facetInputText", fit.getAbsoluteLocator()); // assertEquals("dmoTpl:lwdc:facetInputText", fit.getClientId()); // } public static void main(String[] args) { String[] args2 = { LocatorTest.class.getName() }; org.junit.runner.JUnitCore.main(args2); } @Override protected Class<EditableTablePage> getPageClass() { return EditableTablePage.class; } @Override protected String getJspxName() { return "editableTable.jspx"; } }