Author: dsvyatobatsko
Date: 2008-04-30 11:38:19 -0400 (Wed, 30 Apr 2008)
New Revision: 8381
Added:
trunk/test-applications/seleniumTest/src/main/java/org/ajax4jsf/A4JRegionTestBean.java
trunk/test-applications/seleniumTest/src/main/webapp/pages/ajaxRegion/
trunk/test-applications/seleniumTest/src/main/webapp/pages/ajaxRegion/ajaxRegionTest.xhtml
trunk/test-applications/seleniumTest/src/test/java/org/richfaces/AjaxRegionTest.java
Modified:
trunk/test-applications/seleniumTest/src/main/webapp/WEB-INF/faces-config.xml
trunk/test-applications/seleniumTest/src/test/java/org/ajax4jsf/test/base/SeleniumTestBase.java
Log:
AjaxRegion component test
Added:
trunk/test-applications/seleniumTest/src/main/java/org/ajax4jsf/A4JRegionTestBean.java
===================================================================
---
trunk/test-applications/seleniumTest/src/main/java/org/ajax4jsf/A4JRegionTestBean.java
(rev 0)
+++
trunk/test-applications/seleniumTest/src/main/java/org/ajax4jsf/A4JRegionTestBean.java 2008-04-30
15:38:19 UTC (rev 8381)
@@ -0,0 +1,67 @@
+package org.ajax4jsf;
+
+public class A4JRegionTestBean {
+
+ private Integer internal = 0;
+
+ private Integer external = 0;
+
+ private Integer value = 0;
+
+ /**
+ * Gets value of internal field.
+ *
+ * @return value of internal field
+ */
+ public Integer getInternal() {
+ return internal;
+ }
+
+ /**
+ * Set a new value for internal field.
+ *
+ * @param internal
+ * a new value for internal field
+ */
+ public void setInternal(Integer internal) {
+ this.internal = internal;
+ }
+
+ /**
+ * Gets value of external field.
+ *
+ * @return value of external field
+ */
+ public Integer getExternal() {
+ return external;
+ }
+
+ /**
+ * Set a new value for external field.
+ *
+ * @param external
+ * a new value for external field
+ */
+ public void setExternal(Integer external) {
+ this.external = external;
+ }
+
+ /**
+ * Gets value of value field.
+ *
+ * @return value of value field
+ */
+ public Integer getValue() {
+ return value;
+ }
+
+ /**
+ * Set a new value for value field.
+ *
+ * @param value
+ * a new value for value field
+ */
+ public void setValue(Integer value) {
+ this.value = value;
+ }
+}
Property changes on:
trunk/test-applications/seleniumTest/src/main/java/org/ajax4jsf/A4JRegionTestBean.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Author Id Revision Date
Name: svn:eol-style
+ native
Modified: trunk/test-applications/seleniumTest/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
---
trunk/test-applications/seleniumTest/src/main/webapp/WEB-INF/faces-config.xml 2008-04-30
14:45:06 UTC (rev 8380)
+++
trunk/test-applications/seleniumTest/src/main/webapp/WEB-INF/faces-config.xml 2008-04-30
15:38:19 UTC (rev 8381)
@@ -66,5 +66,10 @@
<managed-bean-name>keepAliveBeanAjaxOnly</managed-bean-name>
<managed-bean-class>org.ajax4jsf.A4JKeepAliveTestBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
+ </managed-bean>
+ <managed-bean>
+ <managed-bean-name>regionBean</managed-bean-name>
+ <managed-bean-class>org.ajax4jsf.A4JRegionTestBean</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
</managed-bean>
</faces-config>
\ No newline at end of file
Added:
trunk/test-applications/seleniumTest/src/main/webapp/pages/ajaxRegion/ajaxRegionTest.xhtml
===================================================================
(Binary files differ)
Property changes on:
trunk/test-applications/seleniumTest/src/main/webapp/pages/ajaxRegion/ajaxRegionTest.xhtml
___________________________________________________________________
Name: svn:mime-type
+ application/xhtml+xml
Modified:
trunk/test-applications/seleniumTest/src/test/java/org/ajax4jsf/test/base/SeleniumTestBase.java
===================================================================
---
trunk/test-applications/seleniumTest/src/test/java/org/ajax4jsf/test/base/SeleniumTestBase.java 2008-04-30
14:45:06 UTC (rev 8380)
+++
trunk/test-applications/seleniumTest/src/test/java/org/ajax4jsf/test/base/SeleniumTestBase.java 2008-04-30
15:38:19 UTC (rev 8381)
@@ -319,6 +319,16 @@
}
/**
+ * Asserts DOM node is not present
+ *
+ * @param id -
+ * DOM element id
+ */
+ public void AssertNotPresent(String id) {
+ Assert.assertFalse(isPresentById(id));
+ }
+
+ /**
* Asserts DOM node is not visible
*
* @param id -
@@ -351,6 +361,18 @@
}
/**
+ * Sets a new value for DOM node with specified id.
+ *
+ * @param id -
+ * DOM element id
+ * @param value -
+ * a new DOM element's value
+ */
+ public void setValueById(String id, String value) {
+ runScript(String.format("$('%1$s').value=%2$s;", id, value));
+ }
+
+ /**
* Returns element's width
* @param id - DOM element id
* @return
@@ -397,8 +419,17 @@
public boolean isVisibleById(String id) {
return selenium.isVisible("id=" + id);
}
-
+
/**
+ * Returns true if element with given id is present.
+ * @param id - DOM element id
+ * @return true if element with given id is present, otherwise - false
+ */
+ public boolean isPresentById(String id) {
+ return selenium.isElementPresent("id=" + id);
+ }
+
+ /**
* Invokes JS method on client.
* @param id - DOM id of component
* @param method - string method name
Added:
trunk/test-applications/seleniumTest/src/test/java/org/richfaces/AjaxRegionTest.java
===================================================================
--- trunk/test-applications/seleniumTest/src/test/java/org/richfaces/AjaxRegionTest.java
(rev 0)
+++
trunk/test-applications/seleniumTest/src/test/java/org/richfaces/AjaxRegionTest.java 2008-04-30
15:38:19 UTC (rev 8381)
@@ -0,0 +1,92 @@
+package org.richfaces;
+
+import org.ajax4jsf.test.base.SeleniumTestBase;
+import org.ajax4jsf.test.base.Templates;
+import org.testng.annotations.AfterTest;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
+
+public class AjaxRegionTest extends SeleniumTestBase {
+
+ public AjaxRegionTest() {
+ super("http", "localhost", "8080");
+ }
+
+ /**
+ * This method are invoking before selenium tests started
+ */
+ @BeforeTest
+ @Parameters( { "browser" })
+ public void startSelenium(String browser) {
+ super.startSelenium(browser);
+ }
+
+ /**
+ * This method are invoking after selenium tests completed
+ */
+ @AfterTest
+ public void stopSelenium() {
+ super.stopSelenium();
+ }
+
+ @Test
+ public void testAjaxRegionComponent() throws Exception {
+ _testAjaxRegionComponent(Templates.DATATABLE);
+ }
+
+ private void _testAjaxRegionComponent(Templates template) {
+ renderPage("/faces/pages/ajaxRegion/ajaxRegionTest.xhtml", template);
+
+ String parentId = getParentId() + "_form:";
+
+ //test nested regions
+ String externalLink = parentId + "externalLink";
+ String internalLink = parentId + "internalLink";
+
+ String internalElemId = parentId + "internal";
+ String externalElemId = parentId + "external";
+
+ setValueById(internalElemId, "5");
+ setValueById(externalElemId, "5");
+
+ clickById(internalLink);
+ waitForAjaxCompletion();
+ AssertValueEquals(internalElemId, "5");
+ AssertValueEquals(externalElemId, "0");
+
+ setValueById(internalElemId, "10");
+ setValueById(externalElemId, "10");
+
+ clickById(externalLink);
+ waitForAjaxCompletion();
+ AssertValueEquals(internalElemId, "10");
+ AssertValueEquals(externalElemId, "10");
+
+ //test "selfRendered" attribute
+ String selfRenderedLink = parentId + "selfRenderedLink";
+ clickById(selfRenderedLink);
+ waitForAjaxCompletion();
+ AssertNotPresent("transientText");
+
+ //test "renderRegionOnly" attribute
+ String renderOnlyLink = parentId + "renderOnlyLink";
+ String renderLink = parentId + "renderLink";
+
+ String renderOnlyElemId = parentId + "renderOnly";
+ String renderElemId = parentId + "render";
+
+ setValueById(renderOnlyElemId, "7");
+ clickById(renderOnlyLink);
+
+ AssertValueEquals(renderOnlyElemId, "7");
+ AssertValueEquals(renderElemId, "0");
+
+ setValueById(renderElemId, "11");
+ clickById(renderLink);
+
+ AssertValueEquals(renderOnlyElemId, "11");
+ AssertValueEquals(renderElemId, "11");
+ }
+
+}
Property changes on:
trunk/test-applications/seleniumTest/src/test/java/org/richfaces/AjaxRegionTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Author Id Revision Date
Name: svn:eol-style
+ native
Show replies by date