From richfaces-svn-commits at lists.jboss.org Thu Jan 13 15:32:22 2011 Content-Type: multipart/mixed; boundary="===============8385903002457541952==" MIME-Version: 1.0 From: richfaces-svn-commits at lists.jboss.org To: richfaces-svn-commits at lists.jboss.org Subject: [richfaces-svn-commits] JBoss Rich Faces SVN: r21012 - in modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest: richCollapsibleSubTableToggler and 1 other directory. Date: Thu, 13 Jan 2011 15:32:22 -0500 Message-ID: <201101132032.p0DKWMgB021945@svn01.web.mwc.hst.phx2.redhat.com> --===============8385903002457541952== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: lfryc(a)redhat.com Date: 2011-01-13 15:32:21 -0500 (Thu, 13 Jan 2011) New Revision: 21012 Added: modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tes= ts/metamer/ftest/richCollapsibleSubTableToggler/ modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tes= ts/metamer/ftest/richCollapsibleSubTableToggler/CollapsibleSubTableTogglerA= ttributes.java modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tes= ts/metamer/ftest/richCollapsibleSubTableToggler/TestCollapsibleSubTableTogg= ler.java Log: rich:collapsibleSubTableToggler - Simple sample automation (RFPL-732) Added: modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces= /tests/metamer/ftest/richCollapsibleSubTableToggler/CollapsibleSubTableTogg= lerAttributes.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/te= sts/metamer/ftest/richCollapsibleSubTableToggler/CollapsibleSubTableToggler= Attributes.java (rev 0) +++ modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/te= sts/metamer/ftest/richCollapsibleSubTableToggler/CollapsibleSubTableToggler= Attributes.java 2011-01-13 20:32:21 UTC (rev 21012) @@ -0,0 +1,55 @@ +/*************************************************************************= ****** + * JBoss, Home of Professional Open Source + * Copyright 2010, Red Hat, Inc. and individual contributors + * by the @authors tag. See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this software; if not, write to the Free + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. + *************************************************************************= ******/ +package org.richfaces.tests.metamer.ftest.richCollapsibleSubTableToggler; + +import org.jboss.test.selenium.dom.Event; +import org.richfaces.tests.metamer.ftest.AbstractComponentAttributes; + +/** + * @author Lukas Fryc + * @version $Revision$ + */ +public class CollapsibleSubTableTogglerAttributes extends AbstractComponen= tAttributes { + public void setCollapseIcon(String collapseIcon) { + setProperty("collapseIcon", collapseIcon); + } + + public void setCollapseLabel(String collapseLabel) { + setProperty("collapseLabel", collapseLabel); + } + + public void setEvent(Event event) { + setProperty("event", event); + } + + public void setExpandIcon(String expandIcon) { + setProperty("expandIcon", expandIcon); + } + + public void setExpandLabel(String expandLabel) { + setProperty("expandLabel", expandLabel); + } + + public void setRendered(Boolean rendered) { + setProperty("rendered", rendered); + } +} Added: modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces= /tests/metamer/ftest/richCollapsibleSubTableToggler/TestCollapsibleSubTable= Toggler.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/te= sts/metamer/ftest/richCollapsibleSubTableToggler/TestCollapsibleSubTableTog= gler.java (rev 0) +++ modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/te= sts/metamer/ftest/richCollapsibleSubTableToggler/TestCollapsibleSubTableTog= gler.java 2011-01-13 20:32:21 UTC (rev 21012) @@ -0,0 +1,264 @@ +/*************************************************************************= ****** + * JBoss, Home of Professional Open Source + * Copyright 2010, Red Hat, Inc. and individual contributors + * by the @authors tag. See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * This is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this software; if not, write to the Free + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. + *************************************************************************= ******/ +package org.richfaces.tests.metamer.ftest.richCollapsibleSubTableToggler; + +/** + * @author Lukas Fryc + * @version $Revision$ + */ +import static org.jboss.test.selenium.locator.Attribute.SRC; +import static org.jboss.test.selenium.dom.Event.*; +import static org.jboss.test.selenium.locator.LocatorFactory.jq; +import static org.jboss.test.selenium.utils.URLUtils.buildUrl; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertFalse; +import static org.testng.Assert.assertTrue; + +import java.net.URL; + +import org.jboss.test.selenium.dom.Event; +import org.jboss.test.selenium.locator.JQueryLocator; +import org.richfaces.tests.metamer.ftest.AbstractMetamerTest; +import org.richfaces.tests.metamer.ftest.annotations.Inject; +import org.richfaces.tests.metamer.ftest.annotations.IssueTracking; +import org.richfaces.tests.metamer.ftest.annotations.Use; +import org.testng.annotations.Test; + +public class TestCollapsibleSubTableToggler extends AbstractMetamerTest { + + private final static String IMAGE_URL =3D "/resources/images/star.png"; + private final static String LABEL =3D "Label"; + + @Override + public URL getTestUrl() { + return buildUrl(contextPath, "faces/components/richCollapsibleSubT= ableToggler/simple.xhtml"); + } + + CollapsibleSubTableTogglerAttributes attributes =3D new CollapsibleSub= TableTogglerAttributes(); + + JQueryLocator togglers =3D pjq("span[id$=3DrichSTTControl]"); + JQueryLocator collapsedTogglers =3D togglers.getChild(jq("span[id$=3De= xpand]")); + JQueryLocator expandedTogglers =3D togglers.getChild(jq("span[id$=3Dco= llapse]")); + JQueryLocator link =3D jq("a"); + JQueryLocator image =3D jq("img"); + + JQueryLocator subtables =3D pjq("table.rf-dt > tbody.rf-cst"); + + @Inject + @Use(empty =3D true) + Event event; + + Event[] events =3D new Event[] { DBLCLICK, MOUSEDOWN, MOUSEUP }; + + @Test + @Use(field =3D "event", value =3D "events") + public void testEvent() { + attributes.setEvent(Event.DBLCLICK); + + TogglerTester togglerTester =3D new TogglerTester(image, image); + togglerTester.event =3D Event.DBLCLICK; + togglerTester.testToggler(); + } + + @Test + public void testRendered() { + attributes.setRendered(false); + + assertFalse(selenium.isElementPresent(togglers)); + } + + @Test + public void testCollapsedLabel() { + attributes.setCollapseLabel(LABEL); + + new TogglerTester(link, image) { + + @Override + public void verifyBefore() { + assertEquals(selenium.getText(togglerExpanded), LABEL); + } + + @Override + public void verifyMiddle() { + assertFalse(selenium.isVisible(togglerExpanded)); + assertTrue(selenium.isVisible(togglerCollapsed)); + } + + @Override + public void verifyAfter() { + assertTrue(selenium.isVisible(togglerExpanded)); + assertFalse(selenium.isVisible(togglerCollapsed)); + assertEquals(selenium.getText(togglerExpanded), LABEL); + } + }.testToggler(); + } + + @Test + public void testExpandedLabel() { + attributes.setExpandLabel(LABEL); + + new TogglerTester(image, link) { + String imageUrl; + + @Override + public void verifyBefore() { + selenium.getAttribute(togglerExpanded.getAttribute(SRC)); + assertTrue(selenium.isVisible(togglerExpanded)); + assertFalse(selenium.isVisible(togglerCollapsed)); + imageUrl =3D selenium.getAttribute(togglerExpanded.getAttr= ibute(SRC)); + } + + @Override + public void verifyAfter() { + assertTrue(selenium.isVisible(togglerExpanded)); + assertFalse(selenium.isVisible(togglerCollapsed)); + assertEquals(selenium.getAttribute(togglerExpanded.getAttr= ibute(SRC)), imageUrl); + } + + @Override + public void verifyMiddle() { + assertFalse(selenium.isVisible(togglerExpanded)); + assertTrue(selenium.isVisible(togglerCollapsed)); + assertEquals(selenium.getText(togglerCollapsed), LABEL); + } + }.testToggler(); + } + + @IssueTracking("https://issues.jboss.org/browse/RF-9725") + @Test + public void testExpandedIcon() { + attributes.setExpandIcon(IMAGE_URL); + + new TogglerTester(image, image) { + + @Override + public void verifyBefore() { + assertTrue(selenium.isVisible(togglerExpanded)); + assertFalse(selenium.isVisible(togglerCollapsed)); + assertTrue(selenium.getAttribute(togglerCollapsed.getAttri= bute(SRC)).contains(IMAGE_URL)); + + } + + @Override + public void verifyMiddle() { + assertFalse(selenium.isVisible(togglerExpanded)); + assertTrue(selenium.isVisible(togglerCollapsed)); + assertFalse(selenium.getAttribute(togglerCollapsed.getAttr= ibute(SRC)).contains(IMAGE_URL)); + } + + @Override + public void verifyAfter() { + assertTrue(selenium.isVisible(togglerExpanded)); + assertFalse(selenium.isVisible(togglerCollapsed)); + assertTrue(selenium.getAttribute(togglerCollapsed.getAttri= bute(SRC)).contains(IMAGE_URL)); + } + }.testToggler(); + } + + @IssueTracking("https://issues.jboss.org/browse/RF-9725") + @Test + public void testCollapsedIcon() { + attributes.setCollapseIcon(IMAGE_URL); + + new TogglerTester(image, image) { + + String imageUrl; + + @Override + public void verifyBefore() { + assertTrue(selenium.isVisible(togglerExpanded)); + assertFalse(selenium.isVisible(togglerCollapsed)); + imageUrl =3D selenium.getAttribute(togglerExpanded.getAttr= ibute(SRC)); + } + + @Override + public void verifyMiddle() { + assertFalse(selenium.isVisible(togglerExpanded)); + assertTrue(selenium.isVisible(togglerCollapsed)); + assertTrue(selenium.getAttribute(togglerCollapsed.getAttri= bute(SRC)).contains(IMAGE_URL)); + } + + @Override + public void verifyAfter() { + assertTrue(selenium.isVisible(togglerExpanded)); + assertFalse(selenium.isVisible(togglerCollapsed)); + assertEquals(selenium.getAttribute(togglerExpanded.getAttr= ibute(SRC)), imageUrl); + } + }.testToggler(); + } + + public class TogglerTester { + + Event event =3D Event.CLICK; + + JQueryLocator expander; + JQueryLocator collapser; + JQueryLocator togglerRoot; + + JQueryLocator subtable; + JQueryLocator togglerExpanded; + JQueryLocator togglerCollapsed; + + public TogglerTester(JQueryLocator expander, JQueryLocator collaps= er) { + this.expander =3D expander; + this.collapser =3D collapser; + } + + public void testToggler() { + for (int i =3D 1; i <=3D 2; i++) { + subtable =3D subtables.getNthOccurence(i); + togglerRoot =3D togglers.getNthOccurence(i); + togglerExpanded =3D expandedTogglers.getNthOccurence(i).ge= tChild(expander); + togglerCollapsed =3D collapsedTogglers.getNthOccurence(i).= getChild(collapser); + + verifyBefore(); + + if (event =3D=3D Event.CLICK) { + selenium.click(togglerExpanded); + } else { + selenium.fireEvent(togglerRoot, event); + } + waitGui.until(isNotDisplayed.locator(subtable)); + + verifyMiddle(); + + if (event =3D=3D Event.CLICK) { + selenium.click(togglerCollapsed); + } else { + selenium.fireEvent(togglerRoot, event); + } + waitGui.until(isDisplayed.locator(subtable)); + + verifyAfter(); + } + } + + public void verifyBefore() { + } + + public void verifyMiddle() { + } + + public void verifyAfter() { + } + } +} --===============8385903002457541952==--