Author: dsvyatobatsko
Date: 2008-10-22 10:43:28 -0400 (Wed, 22 Oct 2008)
New Revision: 10866
Added:
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/panelBar/panelBarAutoTest.xhtml
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestBean.java
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/autotest/autoTestHiddens.xhtml
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/AutoTester.java
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/SeleniumTestBase.java
Log:
https://jira.jboss.org/jira/browse/RF-4669
https://jira.jboss.org/jira/browse/RF-4670
https://jira.jboss.org/jira/browse/RF-4671
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestBean.java
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestBean.java 2008-10-22
14:15:36 UTC (rev 10865)
+++
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestBean.java 2008-10-22
14:43:28 UTC (rev 10866)
@@ -11,6 +11,7 @@
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
+import javax.faces.event.ValueChangeEvent;
import org.ajax4jsf.javascript.ScriptUtils;
@@ -26,10 +27,11 @@
public static final String UPDATE_MODEL_STATUS = "UpdateModel";
public static final String ACTION_LISTENER_STATUS = "ActionListener";
public static final String NESTED_ACTION_LISTENER_STATUS = "NestedListener";
+ public static final String VALUE_CHANGE_LISTENER_STATUS =
"ValueChangeListener";
public static final String VALIDATOR_ID = "autoTestValidator";
public static final String VALIDATOR_DEFAULT_ID = "autoTestDefaultValidator";
public static final String ONCOMPLETE = "window._ajaxOncomplete = true;";
-
+
//private String input = INPUT_TEXT;
private String reRender = STATUS_ID;
@@ -50,11 +52,14 @@
private String validatorId = VALIDATOR_DEFAULT_ID;
-
public void actionListener(ActionEvent event) {
setStatus(getStatus() + ACTION_LISTENER_STATUS);
}
-
+
+ public void valueChangeListener(ValueChangeEvent event) {
+ setStatus(getStatus() + VALUE_CHANGE_LISTENER_STATUS);
+ }
+
public String load () {
status = null;
return null;
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/autotest/autoTestHiddens.xhtml
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/autotest/autoTestHiddens.xhtml 2008-10-22
14:15:36 UTC (rev 10865)
+++
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/autotest/autoTestHiddens.xhtml 2008-10-22
14:43:28 UTC (rev 10866)
@@ -7,4 +7,6 @@
<h:inputHidden id="_auto_input" value="#{autoTestBean.input}"
required="true"></h:inputHidden>
<h:outputText id="_auto_status" style="display: none;"
value="#{autoTestBean.status}"></h:outputText>
<h:outputText id="_auto_time" style="display: none;"
value="#{autoTestBean.text}"></h:outputText>
+ <h:commandButton id="_auto_simple_submit" value="Simple submit"
immediate="#{autoTestBean.immediate}" style="display: none;" />
+ <a4j:commandButton id="_auto_ajax_submit" value="Ajax submit"
reRender="componentId" immediate="#{autoTestBean.immediate}"
style="display: none;" />
</html>
\ No newline at end of file
Added:
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/panelBar/panelBarAutoTest.xhtml
===================================================================
(Binary files differ)
Property changes on:
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/panelBar/panelBarAutoTest.xhtml
___________________________________________________________________
Name: svn:mime-type
+ application/xhtml+xml
Modified:
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/AutoTester.java
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/AutoTester.java 2008-10-22
14:15:36 UTC (rev 10865)
+++
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/AutoTester.java 2008-10-22
14:43:28 UTC (rev 10866)
@@ -36,6 +36,10 @@
private static final String PARAMS_MAP_VAR_NAME = "requestParamsMap";
+ private static final String SIMPLE_SUBMIT = "_auto_simple_submit";
+
+ private static final String AJAX_SUBMIT = "_auto_ajax_submit";
+
// /private String componentName;
SeleniumTestBase base;
@@ -237,6 +241,59 @@
base.assertStyleAttributes(componentId, styleAttr);
}
+//
+// EditableValueHolder test methods
+//
+
+ public void testSubmit() {
+ reset();
+ clickLoad();
+
+ changeValue();
+ clickSubmit();
+
+ checkValueChangeListener(true);
+ checkUpdateModel(true);
+ }
+
+ public void testSubmitWithExternalValidationFailed() {
+ reset();
+ clickLoad();
+
+ setExtrenalValidationFailed();
+ changeValue();
+ clickSubmit();
+
+ checkValueChangeListener(false);
+ checkUpdateModel(false);
+ }
+
+ public void testSubmitImmediate() {
+ reset();
+ setupControl(TestSetupEntry.immediate, Boolean.TRUE);
+ clickLoad();
+
+ changeValue();
+ clickSubmit();
+
+ checkValueChangeListener(true);
+ checkUpdateModel(false);
+
+ }
+
+ public void testSubmitImmediateWithExternalValidationFailed() {
+ reset();
+ setupControl(TestSetupEntry.immediate, Boolean.TRUE);
+ clickLoad();
+
+ setExtrenalValidationFailed();
+ changeValue();
+ clickSubmit();
+
+ checkValueChangeListener(true);
+ checkUpdateModel(false);
+ }
+
public void testHTMLEvents() {
String componentId = getClientId(COMPONENT_ID);
base.assertEvents(componentId, SeleniumEvent.STANDARD_HTML_EVENTS);
@@ -292,6 +349,16 @@
base.clickCommandAndWait(commandButtonId);
}
+ private void clickAjaxSubmit() {
+ String ajaxSubmitId = base.getParentId() + AUTOTEST_FORM_ID + AJAX_SUBMIT;
+ base.clickAjaxCommandAndWait(ajaxSubmitId);
+ }
+
+ private void clickSubmit() {
+ String submitId = base.getParentId() + AUTOTEST_FORM_ID + SIMPLE_SUBMIT;
+ base.clickCommandAndWait(submitId);
+ }
+
private void setExtrenalValidationFailed() {
base.setValueById(base.getParentId() + AUTOTEST_FORM_ID + INPUT_ID,
"");
}
@@ -300,6 +367,10 @@
base.setInternalValidationFailed();
}
+ private void changeValue() {
+ base.changeValue();
+ }
+
private void setupControl(TestSetupEntry attr, Object o) {
final String idPrefix = "_auto_";
String controlId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID + idPrefix +
attr.name;
@@ -328,6 +399,15 @@
}
}
+ private void checkValueChangeListener(boolean passed) {
+ String status = getStatus();
+ if (passed && status != null &&
status.indexOf(AutoTestBean.VALUE_CHANGE_LISTENER_STATUS) == -1) {
+ Assert.fail("ValueChangeListener has been skipped");
+ } else if (!passed && status != null &&
status.indexOf(AutoTestBean.VALUE_CHANGE_LISTENER_STATUS) != -1) {
+ Assert.fail(status);
+ }
+ }
+
private void checkUpdateModel(boolean passed) {
String status = getStatus();
if (passed && status != null &&
status.indexOf(AutoTestBean.UPDATE_MODEL_STATUS) == -1) {
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-10-22
14:15:36 UTC (rev 10865)
+++
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/SeleniumTestBase.java 2008-10-22
14:43:28 UTC (rev 10866)
@@ -1015,6 +1015,13 @@
}
/**
+ * This call back has to change auto test component value.
+ * Used for auto testing only.
+ */
+ public void changeValue() {
+ }
+
+ /**
* Returns the array of components' ids that are rerendering after ajax request
from the component.
* This method should be overridden for auto test
*/