From richfaces-svn-commits at lists.jboss.org Thu Jan 13 15:32:22 2011
Content-Type: multipart/mixed; boundary="===============0651459922791018338=="
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>
--===============0651459922791018338==
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() {
+ }
+ }
+}
--===============0651459922791018338==--