Author: dsvyatobatsko
Date: 2008-11-19 14:11:32 -0500 (Wed, 19 Nov 2008)
New Revision: 11253
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/tree/TreeTestBean.java
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/tree/treeAutoTest.xhtml
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/SeleniumTestBase.java
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/TreeTest.java
Log:
https://jira.jboss.org/jira/browse/RF-4829,
https://jira.jboss.org/jira/browse/RF-4830
started
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/tree/TreeTestBean.java
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/tree/TreeTestBean.java 2008-11-19
17:50:44 UTC (rev 11252)
+++
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/tree/TreeTestBean.java 2008-11-19
19:11:32 UTC (rev 11253)
@@ -157,4 +157,59 @@
this.nodeTitle = nodeTitle;
}
+ private String switchType = "ajax";
+
+ /**
+ * Gets value of switchType field.
+ * @return value of switchType field
+ */
+ public String getSwitchType() {
+ return switchType;
+ }
+
+ /**
+ * Set a new value for switchType field.
+ * @param switchType a new value for switchType field
+ */
+ public void setSwitchType(String switchType) {
+ this.switchType = switchType;
+ }
+
+ private boolean toggleOnClick = false;
+
+ /**
+ * Gets value of toggleOnClick field.
+ * @return value of toggleOnClick field
+ */
+ public boolean isToggleOnClick() {
+ return toggleOnClick;
+ }
+
+ /**
+ * Set a new value for toggleOnClick field.
+ * @param toggleOnClick a new value for toggleOnClick field
+ */
+ public void setToggleOnClick(boolean toggleOnClick) {
+ this.toggleOnClick = toggleOnClick;
+ }
+
+ public void initToggleOnClickTestServerMode() {
+ setToggleOnClick(true);
+ setSwitchType("server");
+ }
+
+ public void initToggleOnClickTestAjaxMode() {
+ setToggleOnClick(true);
+ setSwitchType("ajax");
+ }
+
+ public void initToggleOnClickTestClientMode() {
+ setToggleOnClick(true);
+ setSwitchType("client");
+ }
+
+ public void initAjaxCoreTest() {
+ setSwitchType("ajax");
+ setToggleOnClick(false);
+ }
}
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/tree/treeAutoTest.xhtml
===================================================================
(Binary files differ)
Modified:
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/SeleniumTestBase.java
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/SeleniumTestBase.java 2008-11-19
17:50:44 UTC (rev 11252)
+++
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/SeleniumTestBase.java 2008-11-19
19:11:32 UTC (rev 11253)
@@ -736,16 +736,28 @@
/**
* Returns true if element with given id is present.
- *
+ * @deprecated replaced by <code>isPresent(String locator)</code>.
* @param id -
* DOM element id
* @return true if element with given id is present, otherwise - false
*/
+ @Deprecated
public boolean isPresentById(String id) {
return selenium.isElementPresent("id=" + id);
}
/**
+ * Returns true if element with given locator is present.
+ *
+ * @param locator
+ * an element locator
+ * @return true if element with given locator is present, otherwise - false
+ */
+ public boolean isPresent(String locator) {
+ return selenium.isElementPresent(locator);
+ }
+
+ /**
* Invokes JS method on client.
*
* @param id -
Modified:
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/TreeTest.java
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/TreeTest.java 2008-11-19
17:50:44 UTC (rev 11252)
+++
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/TreeTest.java 2008-11-19
19:11:32 UTC (rev 11253)
@@ -7,11 +7,16 @@
import org.richfaces.AutoTester;
import org.richfaces.SeleniumTestBase;
import org.richfaces.AutoTester.TestSetupEntry;
+import org.testng.Assert;
import org.testng.annotations.Test;
public class TreeTest extends SeleniumTestBase {
private static Map<String, String> params = new HashMap<String,
String>();
+ private final static String INIT_TOGGLE_ON_CLICK_SERVER_MODE =
"#{treeBean.initToggleOnClickTestServerMode}";
+ private final static String INIT_TOGGLE_ON_CLICK_AJAX_MODE =
"#{treeBean.initToggleOnClickTestAjaxMode}";
+ private final static String INIT_TOGGLE_ON_CLICK_CLIENT_MODE =
"#{treeBean.initToggleOnClickTestClientMode}";
+ private final static String INIT_AJAX_CORE_TEST =
"#{treeBean.initAjaxCoreTest}";
static {
params.put("parameter1", "value1");
@@ -22,7 +27,7 @@
@Test
public void testRenderedAttribute(Template template) {
AutoTester tester = getAutoTester(this);
- tester.renderPage(template, null);
+ tester.renderPage(template, INIT_AJAX_CORE_TEST);
writeStatus("Test component with rendered = false is not present on the
page");
tester.testRendered();
}
@@ -30,7 +35,7 @@
@Test
public void testNestedParams(Template template) {
AutoTester tester = getAutoTester(this);
- tester.renderPage(template, null);
+ tester.renderPage(template, INIT_AJAX_CORE_TEST);
writeStatus("Test component encodes nested f:param tags and their values are
present as request parameters");
tester.testRequestParameters(params);
}
@@ -38,11 +43,11 @@
@Test
public void testAjaxSingle(Template template) {
AutoTester tester = getAutoTester(this);
- tester.renderPage(template, null);
+ tester.renderPage(template, INIT_AJAX_CORE_TEST);
tester.reset();
tester.setupControl(TestSetupEntry.ajaxSingle, Boolean.TRUE);
tester.clickLoad();
- //navigate to the first child
+ writeStatus("Navigate to the first child");
String compId = getAutoTester(this).getClientId(AutoTester.COMPONENT_ID);
clickAjaxCommandAndWait("//*[@id='"+ compId +
":childs']/table[1]/tbody/tr/td/div/a");
clickAjaxCommandAndWait("//*[@id='"+ compId +
":childs']/div/table[1]/tbody/tr/td/div/a");
@@ -58,7 +63,7 @@
@Test
public void testAjaxSingleWithInternalValidationFailed(Template template) {
AutoTester tester = getAutoTester(this);
- tester.renderPage(template, null);
+ tester.renderPage(template, INIT_AJAX_CORE_TEST);
tester.reset();
tester.setupControl(TestSetupEntry.ajaxSingle, Boolean.TRUE);
tester.clickLoad();
@@ -78,7 +83,7 @@
@Test
public void testImmediate(Template template) {
AutoTester tester = getAutoTester(this);
- tester.renderPage(template, null);
+ tester.renderPage(template, INIT_AJAX_CORE_TEST);
tester.reset();
tester.setupControl(TestSetupEntry.immediate, Boolean.TRUE);
tester.clickLoad();
@@ -98,11 +103,10 @@
@Test
public void testImmediateWithExternalValidationFailed(Template template) {
AutoTester tester = getAutoTester(this);
- tester.renderPage(template, null);
+ tester.renderPage(template, INIT_AJAX_CORE_TEST);
tester.reset();
tester.setupControl(TestSetupEntry.immediate, Boolean.TRUE);
tester.clickLoad();
- tester.startTracing();
writeStatus("Navigate to the first child");
String compId = getAutoTester(this).getClientId(AutoTester.COMPONENT_ID);
clickAjaxCommandAndWait("//*[@id='"+ compId +
":childs']/table[1]/tbody/tr/td/div/a");
@@ -118,6 +122,32 @@
tester.checkNodeExpandedListener(true);
}
+ @Test
+ public void testToggleOnClickTrueWithServerMode(Template template) {
+ AutoTester tester = getAutoTester(this);
+ tester.renderPage(template, INIT_TOGGLE_ON_CLICK_SERVER_MODE);
+ tester.reset();
+ tester.clickLoad();
+ writeStatus("Try to toggle a node with server swith type");
+ String compId = getAutoTester(this).getClientId(AutoTester.COMPONENT_ID);
+ selenium.click("//*[@id='"+ compId +
":childs']/table[1]/tbody/tr/td[3]");
+ waitForPageToLoad();
+ writeStatus("Check the node is expanded and proper listeners are
invoked");
+ Assert.assertTrue(isPresent("//*[@id='"+ compId +
":childs']/div/table[1]/tbody/tr/td[3]"), "Node has not been
expanded");
+ tester.checkNodeExpandedListener(true);
+ tester.checkUpdateModel(true);
+ tester.startTracing();
+ writeStatus("Test the same in case of external validation failure");
+ writeStatus("Set external validation to fail");
+ tester.setExtrenalValidationFailed();
+ selenium.click("//*[@id='"+ compId +
":childs']/div/table[1]/tbody/tr/td[3]");
+ waitForPageToLoad();
+ writeStatus("Check the node is not collapsed and no listeners are invoked
due to external validation error");
+ Assert.assertTrue(isPresent("//*[@id='"+ compId +
":childs']/div/table[1]/tbody/tr/td[3]"), "Node has been
collapsed");
+ tester.checkNodeExpandedListener(false);
+ tester.checkUpdateModel(false);
+ }
+
@Override
public void sendAjax() {
AutoTester tester = getAutoTester(this);