Author: ppitonak(a)redhat.com
Date: 2011-02-16 11:00:01 -0500 (Wed, 16 Feb 2011)
New Revision: 21705
Added:
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richInputNumberSpinner/AbstractSpinnerTest.java
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richInputNumberSpinner/TestRichSpinnerFAjax.java
Modified:
modules/tests/metamer/trunk/application/src/main/webapp/components/richInputNumberSpinner/list.xhtml
modules/tests/metamer/trunk/application/src/main/webapp/components/richInputNumberSpinner/simple.xhtml
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richInputNumberSpinner/TestRichSpinner.java
Log:
added sample and tests for spinner+f:ajax
Modified:
modules/tests/metamer/trunk/application/src/main/webapp/components/richInputNumberSpinner/list.xhtml
===================================================================
---
modules/tests/metamer/trunk/application/src/main/webapp/components/richInputNumberSpinner/list.xhtml 2011-02-16
15:59:12 UTC (rev 21704)
+++
modules/tests/metamer/trunk/application/src/main/webapp/components/richInputNumberSpinner/list.xhtml 2011-02-16
16:00:01 UTC (rev 21705)
@@ -32,9 +32,13 @@
<ui:define name="links">
<metamer:testPageLink id="simple" outcome="simple"
value="Simple">
- Page containing <b>rich:inputNumberSpinner</b> and input
boxes for all its attributes.
+ Page containing <b>rich:inputNumberSpinner</b> with a4j:ajax
and input boxes for all its attributes.
</metamer:testPageLink>
+ <metamer:testPageLink id="fAjax" outcome="fAjax"
value="f:ajax">
+ Page containing <b>rich:inputNumberSpinner</b> with f:ajax
and input boxes for all its attributes.
+ </metamer:testPageLink>
+
</ui:define>
</ui:composition>
Modified:
modules/tests/metamer/trunk/application/src/main/webapp/components/richInputNumberSpinner/simple.xhtml
===================================================================
---
modules/tests/metamer/trunk/application/src/main/webapp/components/richInputNumberSpinner/simple.xhtml 2011-02-16
15:59:12 UTC (rev 21704)
+++
modules/tests/metamer/trunk/application/src/main/webapp/components/richInputNumberSpinner/simple.xhtml 2011-02-16
16:00:01 UTC (rev 21705)
@@ -85,7 +85,7 @@
valueChangeListener="#{richBean.valueChangeListener}"
- <a4j:ajax render="output"
action="#{richBean.dummyAction}"
actionListener="#{richBean.dummyActionListener}" />
+ <a4j:ajax render="output" />
</rich:inputNumberSpinner>
Added:
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richInputNumberSpinner/AbstractSpinnerTest.java
===================================================================
---
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richInputNumberSpinner/AbstractSpinnerTest.java
(rev 0)
+++
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richInputNumberSpinner/AbstractSpinnerTest.java 2011-02-16
16:00:01 UTC (rev 21705)
@@ -0,0 +1,151 @@
+/*******************************************************************************
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010-2011, 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.richInputNumberSpinner;
+
+import static
org.jboss.test.selenium.guard.request.RequestTypeGuardFactory.guardNoRequest;
+import static org.jboss.test.selenium.guard.request.RequestTypeGuardFactory.guardXhr;
+import static org.testng.Assert.assertEquals;
+
+
+
+import org.jboss.test.selenium.encapsulated.JavaScript;
+import org.jboss.test.selenium.locator.ElementLocator;
+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.Use;
+import org.testng.annotations.Test;
+
+/**
+ * Abstract test case for rich:inputNumberSpinner.
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public abstract class AbstractSpinnerTest extends AbstractMetamerTest {
+
+ protected JQueryLocator spinner = pjq("span[id$=spinner]");
+ protected JQueryLocator input = pjq("span[id$=spinner]
input.rf-insp-inp");
+ protected JQueryLocator up = pjq("span[id$=spinner] span.rf-insp-inc");
+ protected JQueryLocator down = pjq("span[id$=spinner] span.rf-insp-dec");
+ protected JQueryLocator output = pjq("span[id$=output]");
+ protected String[] correctNumbers = {"-10", "-5", "-1",
"0", "1", "5", "10"};
+ protected String[] smallNumbers = {"-11", "-15",
"-100"};
+ protected String[] bigNumbers = {"11", "15", "100"};
+ protected String[] decimalNumbers = {"1.4999", "5.6",
"7.0001", "-5.50001", "-9.9", "1.222e0",
"0e0", "-5.50001e0"};
+ @Inject
+ @Use(empty = true)
+ protected String number;
+
+ public void testTypeIntoInputCorrect() {
+ String reqTime = selenium.getText(time);
+ guardXhr(selenium).type(input, number);
+ waitGui.failWith("Page was not updated").waitForChange(reqTime,
retrieveText.locator(time));
+
+ assertEquals(selenium.getText(output), number, "Output was not
updated.");
+ }
+
+ public void testTypeIntoInputSmall() {
+ String reqTime = selenium.getText(time);
+ guardXhr(selenium).type(input, number);
+ waitGui.failWith("Page was not updated").waitForChange(reqTime,
retrieveText.locator(time));
+
+ assertEquals(selenium.getText(output), "-10", "Output was not
updated.");
+ assertEquals(getInputValue(), "-10", "Input was not
updated.");
+ }
+
+ public void testTypeIntoInputBig() {
+ String reqTime = selenium.getText(time);
+ guardXhr(selenium).type(input, number);
+ waitGui.failWith("Page was not updated").waitForChange(reqTime,
retrieveText.locator(time));
+
+ assertEquals(selenium.getText(output), "10", "Output was not
updated.");
+ assertEquals(getInputValue(), "10", "Input was not
updated.");
+ }
+
+ public void testTypeIntoInputDecimal() {
+ String reqTime = selenium.getText(time);
+ guardXhr(selenium).type(input, number);
+ waitGui.failWith("Page was not updated").waitForChange(reqTime,
retrieveText.locator(time));
+
+ Double newNumber = new Double(number);
+
+ assertEquals(selenium.getText(output), newNumber == 0 ? "0" :
newNumber.toString(), "Output was not updated.");
+ assertEquals(selenium.getValue(input), newNumber == 0 ? "0" :
newNumber.toString(), "Input was not updated.");
+ }
+
+ public void testTypeIntoInputNotNumber() {
+ guardNoRequest(selenium).type(input, "aaa");
+ assertEquals(selenium.getText(output), "2", "Output should not be
updated.");
+ assertEquals(getInputValue(), "2", "Input should not be
updated.");
+ }
+
+ public void testClickUp() {
+ clickArrow(up, 4);
+ assertEquals(selenium.getText(output), "6", "Output was not
updated.");
+
+ clickArrow(up, 4);
+ assertEquals(selenium.getText(output), "10", "Output was not
updated.");
+
+ selenium.mouseDown(up);
+ guardNoRequest(selenium).mouseUp(up);
+
+ assertEquals(selenium.getText(output), "10", "Output was not
updated.");
+ }
+
+ public void testClickDown() {
+ clickArrow(down, 4);
+ assertEquals(selenium.getText(output), "-2", "Output was not
updated.");
+
+ clickArrow(down, 8);
+ assertEquals(selenium.getText(output), "-10", "Output was not
updated.");
+
+ selenium.mouseDown(down);
+ guardNoRequest(selenium).mouseUp(down);
+
+ assertEquals(selenium.getText(output), "-10", "Output was not
updated.");
+ }
+
+ /**
+ * Getter for value that is displayed in spinner input.
+ * @return spinner input value
+ */
+ protected String getInputValue() {
+ return selenium.getValue(input);
+ }
+
+ /**
+ * Clicks on spinner's arrow.
+ * @param arrow spinner's up or down arrow locator
+ * @param clicks how many times should it be clicked
+ */
+ protected void clickArrow(ElementLocator<?> arrow, int clicks) {
+ String reqTime = null;
+
+ for (int i = 0; i < clicks; i++) {
+ reqTime = selenium.getText(time);
+ guardXhr(selenium).runScript(new JavaScript("jQuery(\"" +
arrow.getRawLocator() + "\").mousedown().mouseup()"));
+
+ waitGui.failWith("Page was not updated").waitForChange(reqTime,
retrieveText.locator(time));
+ }
+ }
+}
Modified:
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richInputNumberSpinner/TestRichSpinner.java
===================================================================
---
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richInputNumberSpinner/TestRichSpinner.java 2011-02-16
15:59:12 UTC (rev 21704)
+++
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richInputNumberSpinner/TestRichSpinner.java 2011-02-16
16:00:01 UTC (rev 21705)
@@ -21,7 +21,6 @@
*******************************************************************************/
package org.richfaces.tests.metamer.ftest.richInputNumberSpinner;
-import static
org.jboss.test.selenium.guard.request.RequestTypeGuardFactory.guardNoRequest;
import static org.jboss.test.selenium.guard.request.RequestTypeGuardFactory.guardXhr;
import static org.jboss.test.selenium.utils.URLUtils.buildUrl;
import static org.testng.Assert.assertEquals;
@@ -36,10 +35,7 @@
import org.jboss.test.selenium.encapsulated.JavaScript;
import org.jboss.test.selenium.locator.Attribute;
import org.jboss.test.selenium.locator.AttributeLocator;
-import org.jboss.test.selenium.locator.ElementLocator;
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;
@@ -50,21 +46,8 @@
* @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
* @version $Revision$
*/
-public class TestRichSpinner extends AbstractMetamerTest {
+public class TestRichSpinner extends AbstractSpinnerTest {
- private JQueryLocator spinner = pjq("span[id$=spinner]");
- private JQueryLocator input = pjq("span[id$=spinner] input.rf-insp-inp");
- private JQueryLocator up = pjq("span[id$=spinner] span.rf-insp-inc");
- private JQueryLocator down = pjq("span[id$=spinner] span.rf-insp-dec");
- private JQueryLocator output = pjq("span[id$=output]");
- private String[] correctNumbers = {"-10", "-5", "-1",
"0", "1", "5", "10"};
- private String[] smallNumbers = {"-11", "-15",
"-100"};
- private String[] bigNumbers = {"11", "15", "100"};
- private String[] decimalNumbers = {"1.4999", "5.6",
"7.0001", "-5.50001", "-9.9", "1.222e0",
"0e0", "-5.50001e0"};
- @Inject
- @Use(empty = true)
- private String number;
-
@Override
public URL getTestUrl() {
return buildUrl(contextPath,
"faces/components/richInputNumberSpinner/simple.xhtml");
@@ -81,82 +64,48 @@
@Test
@Use(field = "number", value = "correctNumbers")
+ @Override
public void testTypeIntoInputCorrect() {
- String reqTime = selenium.getText(time);
- guardXhr(selenium).type(input, number);
- waitGui.failWith("Page was not updated").waitForChange(reqTime,
retrieveText.locator(time));
-
- assertEquals(selenium.getText(output), number, "Output was not
updated.");
+ super.testTypeIntoInputCorrect();
}
@Test
@Use(field = "number", value = "smallNumbers")
+ @Override
public void testTypeIntoInputSmall() {
- String reqTime = selenium.getText(time);
- guardXhr(selenium).type(input, number);
- waitGui.failWith("Page was not updated").waitForChange(reqTime,
retrieveText.locator(time));
-
- assertEquals(selenium.getText(output), "-10", "Output was not
updated.");
- assertEquals(getInputValue(), "-10", "Input was not
updated.");
+ super.testTypeIntoInputSmall();
}
@Test
@Use(field = "number", value = "bigNumbers")
+ @Override
public void testTypeIntoInputBig() {
- String reqTime = selenium.getText(time);
- guardXhr(selenium).type(input, number);
- waitGui.failWith("Page was not updated").waitForChange(reqTime,
retrieveText.locator(time));
-
- assertEquals(selenium.getText(output), "10", "Output was not
updated.");
- assertEquals(getInputValue(), "10", "Input was not
updated.");
+ super.testTypeIntoInputBig();
}
@Test
@Use(field = "number", value = "decimalNumbers")
+ @Override
public void testTypeIntoInputDecimal() {
- String reqTime = selenium.getText(time);
- guardXhr(selenium).type(input, number);
- waitGui.failWith("Page was not updated").waitForChange(reqTime,
retrieveText.locator(time));
-
- Double newNumber = new Double(number);
-
- assertEquals(selenium.getText(output), newNumber == 0 ? "0" :
newNumber.toString(), "Output was not updated.");
- assertEquals(selenium.getValue(input), newNumber == 0 ? "0" :
newNumber.toString(), "Input was not updated.");
+ super.testTypeIntoInputDecimal();
}
@Test
+ @Override
public void testTypeIntoInputNotNumber() {
- guardNoRequest(selenium).type(input, "aaa");
- assertEquals(selenium.getText(output), "2", "Output should not be
updated.");
- assertEquals(getInputValue(), "2", "Input should not be
updated.");
+ super.testTypeIntoInputNotNumber();
}
@Test
+ @Override
public void testClickUp() {
- clickArrow(up, 4);
- assertEquals(selenium.getText(output), "6", "Output was not
updated.");
-
- clickArrow(up, 4);
- assertEquals(selenium.getText(output), "10", "Output was not
updated.");
-
- selenium.mouseDown(up);
- guardNoRequest(selenium).mouseUp(up);
-
- assertEquals(selenium.getText(output), "10", "Output was not
updated.");
+ super.testClickUp();
}
@Test
+ @Override
public void testClickDown() {
- clickArrow(down, 4);
- assertEquals(selenium.getText(output), "-2", "Output was not
updated.");
-
- clickArrow(down, 8);
- assertEquals(selenium.getText(output), "-10", "Output was not
updated.");
-
- selenium.mouseDown(down);
- guardNoRequest(selenium).mouseUp(down);
-
- assertEquals(selenium.getText(output), "-10", "Output was not
updated.");
+ super.testClickDown();
}
@Test
@@ -539,28 +488,4 @@
assertEquals(selenium.getText(output), number, "Output was not
updated.");
assertEquals(getInputValue(), "10", "Input was not
updated.");
}
-
- /**
- * Getter for value that is displayed in spinner input.
- * @return spinner input value
- */
- private String getInputValue() {
- return selenium.getValue(input);
- }
-
- /**
- * Clicks on spinner's arrow.
- * @param arrow spinner's up or down arrow locator
- * @param clicks how many times should it be clicked
- */
- private void clickArrow(ElementLocator<?> arrow, int clicks) {
- String reqTime = null;
-
- for (int i = 0; i < clicks; i++) {
- reqTime = selenium.getText(time);
- guardXhr(selenium).runScript(new JavaScript("jQuery(\"" +
arrow.getRawLocator() + "\").mousedown().mouseup()"));
-
- waitGui.failWith("Page was not updated").waitForChange(reqTime,
retrieveText.locator(time));
- }
- }
}
Added:
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richInputNumberSpinner/TestRichSpinnerFAjax.java
===================================================================
---
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richInputNumberSpinner/TestRichSpinnerFAjax.java
(rev 0)
+++
modules/tests/metamer/trunk/ftest-source/src/main/java/org/richfaces/tests/metamer/ftest/richInputNumberSpinner/TestRichSpinnerFAjax.java 2011-02-16
16:00:01 UTC (rev 21705)
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010-2011, 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.richInputNumberSpinner;
+
+import static org.jboss.test.selenium.guard.request.RequestTypeGuardFactory.guardXhr;
+import static org.jboss.test.selenium.utils.URLUtils.buildUrl;
+
+import java.net.URL;
+
+import org.jboss.test.selenium.encapsulated.JavaScript;
+import org.jboss.test.selenium.locator.ElementLocator;
+import org.richfaces.tests.metamer.ftest.annotations.Use;
+import org.testng.annotations.Test;
+
+/**
+ * Test case for page /faces/components/richInputNumberSpinner/fAjax.xhtml
+ *
+ * @author <a href="mailto:ppitonak@redhat.com">Pavol Pitonak</a>
+ * @version $Revision$
+ */
+public class TestRichSpinnerFAjax extends AbstractSpinnerTest {
+
+ @Override
+ public URL getTestUrl() {
+ return buildUrl(contextPath,
"faces/components/richInputNumberSpinner/fAjax.xhtml");
+ }
+
+ @Test
+ @Use(field = "number", value = "correctNumbers")
+ @Override
+ public void testTypeIntoInputCorrect() {
+ super.testTypeIntoInputCorrect();
+ }
+
+ @Test
+ @Use(field = "number", value = "smallNumbers")
+ @Override
+ public void testTypeIntoInputSmall() {
+ super.testTypeIntoInputSmall();
+ }
+
+ @Test
+ @Use(field = "number", value = "bigNumbers")
+ @Override
+ public void testTypeIntoInputBig() {
+ super.testTypeIntoInputBig();
+ }
+
+ @Test
+ @Use(field = "number", value = "decimalNumbers")
+ @Override
+ public void testTypeIntoInputDecimal() {
+ super.testTypeIntoInputDecimal();
+ }
+
+ @Test
+ @Override
+ public void testTypeIntoInputNotNumber() {
+ super.testTypeIntoInputNotNumber();
+ }
+
+ @Test
+ @Override
+ public void testClickUp() {
+ super.testClickUp();
+ }
+
+ @Test
+ @Override
+ public void testClickDown() {
+ super.testClickDown();
+ }
+}