Author: andrei_exadel
Date: 2008-10-14 09:55:28 -0400 (Tue, 14 Oct 2008)
New Revision: 10740
Added:
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/
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/AutoTestDefaultValidator.java
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestListener.java
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestValidator.java
Removed:
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/AutoTestBean.java
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/DataScrollerBean.java
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/WEB-INF/faces-config.xml
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/autotest/autoTestControls.xhtml
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/autotest/autoTestHiddens.xhtml
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/layout.xhtml
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dataScroller/dataScroller.xhtml
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dataScroller/dataScrollerAjax.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
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/DataScrollerTest.java
Log:
Autotest changes
Added:
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
(rev 0)
+++
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestBean.java 2008-10-14
13:55:28 UTC (rev 10740)
@@ -0,0 +1,294 @@
+/*
+ * AutoTestBean.java Date created: 13.10.2008
+ * Last modified by: $Author$
+ * $Revision$ $Date$
+ */
+
+package org.ajax4jsf.autotest.bean;
+
+import java.util.Date;
+
+import javax.faces.context.ExternalContext;
+import javax.faces.context.FacesContext;
+import javax.faces.event.ActionEvent;
+
+import org.ajax4jsf.javascript.ScriptUtils;
+
+/**
+ * Bean for auto test
+ * @author Andrey Markavtsov
+ *
+ */
+public class AutoTestBean {
+
+ public static final String INPUT_TEXT = "Text";
+ public static final String STATUS_ID = "_auto_status";
+ 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 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;
+
+ private Boolean limitToList = false;
+
+ private Boolean ajaxSingle = false;
+
+ private Boolean immediate = false;
+
+ private Boolean bypassUpdate= false;
+
+ private Boolean rendered = true;
+
+ private String status = null;
+
+ private String oncomplete = ONCOMPLETE;
+
+ private String validatorId = VALIDATOR_DEFAULT_ID;
+
+
+ public void actionListener(ActionEvent event) {
+ setStatus(getStatus() + ACTION_LISTENER_STATUS);
+ }
+
+ public String load () {
+ status = null;
+ return null;
+ }
+
+// public String testRendered() {
+// reset();
+// rendered = false;
+// return null;
+// }
+//
+// public String testReRender() {
+// reset();
+// reRender = TIME_ID + "," + STATUS_ID ;
+// return null;
+// }
+//
+// public String testListeners() {
+// reset();
+// return null;
+// }
+//
+// public String testFalidation() {
+// reset();
+// return null;
+// }
+//
+// public String testAjaxSingle() {
+// reset();
+// ajaxSingle = true;
+// return null;
+// }
+//
+// public String testImmdediate() {
+// reset();
+// immediate = true;
+// return null;
+// }
+//
+// public String testBypassUpdate() {
+// reset();
+// bypassUpdate = true;
+// return null;
+// }
+//
+// public String testLimitToList1() {
+// reset();
+// limitToList = true;
+// return null;
+// }
+//
+// public String testLimitToList2() {
+// reset();
+// limitToList = true;
+// reRender = TIME_ID + "," + STATUS_ID;
+// return null;
+// }
+//
+// public String testValidator() {
+// reset();
+// validatorId = VALIDATOR_ID;
+// return null;
+// }
+//
+// public String testValidatorAndAjaxSingle() {
+// return null;
+// }
+
+
+ public Object getRequestParamsMap() {
+ FacesContext context = FacesContext.getCurrentInstance();
+ if (context != null) {
+ ExternalContext ext = context.getExternalContext();
+ if (ext != null) {
+ return ScriptUtils.toScript(context.getExternalContext().getRequestParameterMap());
+ }
+ }
+ return "";
+ }
+
+
+ public String getText() {
+ return String.valueOf(new Date().getTime());
+ }
+
+ /**
+ * @return the input
+ */
+ public String getInput() {
+ return INPUT_TEXT;
+ }
+
+ /**
+ * @param input the input to set
+ */
+ public void setInput(String input) {
+ if (input != null && input.equals(INPUT_TEXT)) {
+ setStatus(getStatus() + UPDATE_MODEL_STATUS);
+ }
+ //this.input = input;
+ }
+
+ /**
+ * @return the reRender
+ */
+ public String getReRender() {
+ return reRender;
+ }
+
+ /**
+ * @param reRender the reRender to set
+ */
+ public void setReRender(String reRender) {
+ this.reRender = reRender;
+ }
+
+ /**
+ * @return the limitToList
+ */
+ public Boolean getLimitToList() {
+ return limitToList;
+ }
+
+ /**
+ * @param limitToList the limitToList to set
+ */
+ public void setLimitToList(Boolean limitToList) {
+ this.limitToList = limitToList;
+ }
+
+ /**
+ * @return the ajaxSingle
+ */
+ public Boolean getAjaxSingle() {
+ return ajaxSingle;
+ }
+
+ /**
+ * @param ajaxSingle the ajaxSingle to set
+ */
+ public void setAjaxSingle(Boolean ajaxSingle) {
+ this.ajaxSingle = ajaxSingle;
+ }
+
+ /**
+ * @return the immediate
+ */
+ public Boolean getImmediate() {
+ return immediate;
+ }
+
+ /**
+ * @param immediate the immediate to set
+ */
+ public void setImmediate(Boolean immediate) {
+ this.immediate = immediate;
+ }
+
+ /**
+ * @return the bypassUpdate
+ */
+ public Boolean getBypassUpdate() {
+ return bypassUpdate;
+ }
+
+ /**
+ * @param bypassUpdate the bypassUpdate to set
+ */
+ public void setBypassUpdate(Boolean bypassUpdate) {
+ this.bypassUpdate = bypassUpdate;
+ }
+
+ /**
+ * @return the status
+ */
+ public String getStatus() {
+ if (status == null) {
+ status = "";
+ }
+ return status;
+ }
+
+ /**
+ * @param status the status to set
+ */
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ /**
+ * @return the rendered
+ */
+ public Boolean getRendered() {
+ return rendered;
+ }
+
+ /**
+ * @param rendered the rendered to set
+ */
+ public void setRendered(Boolean rendered) {
+ this.rendered = rendered;
+ }
+
+ /**
+ * @return the oncomplete
+ */
+ public String getOncomplete() {
+ return oncomplete;
+ }
+
+
+ /**
+ * @param oncomplete the oncomplete to set
+ */
+ public void setOncomplete(String oncomplete) {
+ this.oncomplete = oncomplete;
+ }
+
+
+ /**
+ * @return the validatorId
+ */
+ public String getValidatorId() {
+ return validatorId;
+ }
+
+
+ /**
+ * @param validatorId the validatorId to set
+ */
+ public void setValidatorId(String validatorId) {
+ this.validatorId = validatorId;
+ }
+
+
+
+}
Added:
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestDefaultValidator.java
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestDefaultValidator.java
(rev 0)
+++
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestDefaultValidator.java 2008-10-14
13:55:28 UTC (rev 10740)
@@ -0,0 +1,29 @@
+/*
+ * AutoTestValidatorValid.java Date created: 14.10.2008
+ * Last modified by: $Author$
+ * $Revision$ $Date$
+ */
+
+package org.ajax4jsf.autotest.bean;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.validator.Validator;
+import javax.faces.validator.ValidatorException;
+
+/**
+ * Validator for auto test
+ * @author Andrey
+ *
+ */
+public class AutoTestDefaultValidator implements Validator {
+
+ /* (non-Javadoc)
+ * @see javax.faces.validator.Validator#validate(javax.faces.context.FacesContext,
javax.faces.component.UIComponent, java.lang.Object)
+ */
+ public void validate(FacesContext context, UIComponent component,
+ Object value) throws ValidatorException {
+ // Do nothing.
+ }
+
+}
Added:
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestListener.java
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestListener.java
(rev 0)
+++
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestListener.java 2008-10-14
13:55:28 UTC (rev 10740)
@@ -0,0 +1,44 @@
+/*
+ * AutoTestListener.java Date created: 14.10.2008
+ * Last modified by: $Author$
+ * $Revision$ $Date$
+ */
+
+package org.ajax4jsf.autotest.bean;
+
+import javax.faces.context.FacesContext;
+import javax.faces.event.AbortProcessingException;
+import javax.faces.event.ActionEvent;
+import javax.faces.event.ActionListener;
+import javax.servlet.http.HttpSession;
+
+/**
+ * Listener for nested ajax listeners for automatic testing
+ * @author Andrey Markavtsov
+ *
+ */
+public class AutoTestListener implements ActionListener {
+
+ /* (non-Javadoc)
+ * @see javax.faces.event.ActionListener#processAction(javax.faces.event.ActionEvent)
+ */
+ public void processAction(ActionEvent event)
+ throws AbortProcessingException {
+ AutoTestBean bean = getAutoTestBean();
+ if (bean != null) {
+ bean.setStatus(bean.getStatus() + AutoTestBean.NESTED_ACTION_LISTENER_STATUS);
+ }
+
+ }
+
+ private AutoTestBean getAutoTestBean() {
+ FacesContext context = FacesContext.getCurrentInstance();
+ HttpSession session = (HttpSession) context.getExternalContext()
+ .getSession(false);
+ if (session != null) {
+ return (AutoTestBean) session.getAttribute("autoTestBean");
+ }
+ return null;
+ }
+
+}
Added:
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestValidator.java
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestValidator.java
(rev 0)
+++
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestValidator.java 2008-10-14
13:55:28 UTC (rev 10740)
@@ -0,0 +1,31 @@
+/*
+ * AutoTestValidator.java Date created: 14.10.2008
+ * Last modified by: $Author$
+ * $Revision$ $Date$
+ */
+
+package org.ajax4jsf.autotest.bean;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.validator.Validator;
+import javax.faces.validator.ValidatorException;
+
+/**
+ * Validator class for auto test
+ * @author Andrey Markavtsov
+ *
+ */
+public class AutoTestValidator implements Validator {
+
+ /* (non-Javadoc)
+ * @see javax.faces.validator.Validator#validate(javax.faces.context.FacesContext,
javax.faces.component.UIComponent, java.lang.Object)
+ */
+ public void validate(FacesContext context, UIComponent component,
+ Object value) throws ValidatorException {
+
+ throw new ValidatorException(new FacesMessage("Auto test validator is always
failed"));
+ }
+
+}
Deleted:
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/AutoTestBean.java
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/AutoTestBean.java 2008-10-14
13:48:24 UTC (rev 10739)
+++
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/AutoTestBean.java 2008-10-14
13:55:28 UTC (rev 10740)
@@ -1,241 +0,0 @@
-/*
- * AutoTestBean.java Date created: 13.10.2008
- * Last modified by: $Author$
- * $Revision$ $Date$
- */
-
-package org.ajax4jsf.bean;
-
-import java.util.Date;
-
-import javax.faces.event.ActionEvent;
-
-/**
- * Bean for auto test
- * @author Andrey Markavtsov
- *
- */
-public class AutoTestBean {
-
- public static final String INPUT_TEXT = "Text";
-
- public static final String UPDATE_MODEL_STATUS = "UpdateModel";
-
- public static final String ACTION_LISTENER_STATUS = "Listener";
-
- private static final String TIME_ID = "_auto_time";
-
- private static final String STATUS_ID = "_auto_status";
-
- private String input = null;
-
- private String reRender = STATUS_ID;
-
- private Boolean limitToList = false;
-
- private Boolean ajaxSingle = false;
-
- private Boolean immediate = false;
-
- private Boolean bypassUpdate= false;
-
- private Boolean rendered = true;
-
- private String status = null;
-
-
-
- public void actionListener(ActionEvent event) {
- setStatus(getStatus() + ACTION_LISTENER_STATUS);
- }
-
- public String testRendered() {
- reset();
- rendered = false;
- return null;
- }
-
- public String testReRender() {
- reset();
- reRender = TIME_ID + "," + STATUS_ID ;
- return null;
- }
-
- public String testListeners() {
- reset();
- return null;
- }
-
- public String testFalidation() {
- reset();
- return null;
- }
-
- public String testAjaxSingle() {
- reset();
- ajaxSingle = true;
- return null;
- }
-
- public String testImmdediate() {
- reset();
- immediate = true;
- return null;
- }
-
- public String testBypassUpdate() {
- reset();
- bypassUpdate = true;
- return null;
- }
-
- public String testLimitToList1() {
- reset();
- limitToList = true;
- return null;
- }
-
- public String testLimitToList2() {
- reset();
- limitToList = true;
- reRender = TIME_ID + "," + STATUS_ID;
- return null;
- }
-
- private void reset() {
- input = null;
- reRender = STATUS_ID;
- ajaxSingle = false;
- immediate = false;
- limitToList = false;
- bypassUpdate = false;
- status = null;
- rendered = true;
-
- }
-
- public String getText() {
- return String.valueOf(new Date().getTime());
- }
-
- /**
- * @return the input
- */
- public String getInput() {
- return input;
- }
-
- /**
- * @param input the input to set
- */
- public void setInput(String input) {
- if (input != null && input.equals(INPUT_TEXT)) {
- setStatus(getStatus() + UPDATE_MODEL_STATUS);
- }
- this.input = input;
- }
-
- /**
- * @return the reRender
- */
- public String getReRender() {
- return reRender;
- }
-
- /**
- * @param reRender the reRender to set
- */
- public void setReRender(String reRender) {
- this.reRender = reRender;
- }
-
- /**
- * @return the limitToList
- */
- public Boolean getLimitToList() {
- return limitToList;
- }
-
- /**
- * @param limitToList the limitToList to set
- */
- public void setLimitToList(Boolean limitToList) {
- this.limitToList = limitToList;
- }
-
- /**
- * @return the ajaxSingle
- */
- public Boolean getAjaxSingle() {
- return ajaxSingle;
- }
-
- /**
- * @param ajaxSingle the ajaxSingle to set
- */
- public void setAjaxSingle(Boolean ajaxSingle) {
- this.ajaxSingle = ajaxSingle;
- }
-
- /**
- * @return the immediate
- */
- public Boolean getImmediate() {
- return immediate;
- }
-
- /**
- * @param immediate the immediate to set
- */
- public void setImmediate(Boolean immediate) {
- this.immediate = immediate;
- }
-
- /**
- * @return the bypassUpdate
- */
- public Boolean getBypassUpdate() {
- return bypassUpdate;
- }
-
- /**
- * @param bypassUpdate the bypassUpdate to set
- */
- public void setBypassUpdate(Boolean bypassUpdate) {
- this.bypassUpdate = bypassUpdate;
- }
-
- /**
- * @return the status
- */
- public String getStatus() {
- if (status == null) {
- status = "";
- }
- return status;
- }
-
- /**
- * @param status the status to set
- */
- public void setStatus(String status) {
- this.status = status;
- }
-
- /**
- * @return the rendered
- */
- public Boolean getRendered() {
- return rendered;
- }
-
- /**
- * @param rendered the rendered to set
- */
- public void setRendered(Boolean rendered) {
- this.rendered = rendered;
- }
-
-
-
-}
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/DataScrollerBean.java
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/DataScrollerBean.java 2008-10-14
13:48:24 UTC (rev 10739)
+++
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/DataScrollerBean.java 2008-10-14
13:55:28 UTC (rev 10740)
@@ -12,8 +12,6 @@
import javax.faces.event.ActionEvent;
-import org.ajax4jsf.context.AjaxContext;
-
/**
* Bean class for dataScroller component testing
* @author Andrey Markavtsov
@@ -22,7 +20,6 @@
@SuppressWarnings("unchecked")
public class DataScrollerBean {
- private boolean rendered = true;
private List data;
@@ -34,22 +31,7 @@
private Integer page;
- private String reRender = null;
-
- private Boolean limitToList = false;
-
- private String input;
-
- private String onComplete = null;
-
- private Boolean bypassUpdates = false;
-
- private Boolean immediate;
-
- private Boolean ajaxSingle;
-
- private String status;
-
+
public DataScrollerBean() {
init();
}
@@ -59,61 +41,7 @@
return null;
}
- public String rendered() {
- rendered = false;
- return null;
- }
- public String testReRender() {
- reRender = "time";
- onComplete = "window.dataScrollerComplete = true";
- return null;
- }
-
- public String testByPassUpdates() {
- bypassUpdates = true;
- reRender = "input";
- return null;
- }
-
- public String testLimitToList1() {
- limitToList = true;
- return null;
- }
-
- public String testLimitToList2() {
- limitToList = true;
- reRender = "scroller, tbl";
- return null;
- }
-
- public String testImmediate() {
- page = null;
- status = null;
- immediate = true;
- return null;
- }
-
- public String testFalidationFailure() {
- page = null;
- status = null;
- return null;
- }
-
- public String testAjaxSingle() {
- page = null;
- status = null;
- ajaxSingle = true;
- return null;
- }
-
- public void actionListener(ActionEvent event) {
- if (status == null) {
- status = "";
- }
- status = status + "ActionListener";
- }
-
private void init() {
data = new ArrayList();
for (int i = 0; i < totalRows; i++) {
@@ -126,16 +54,8 @@
tableRows = 1;
totalRows = 10;
maxPages = 10;
- rendered = true;
page = null;
data = null;
- reRender = null;
- limitToList = false;
- onComplete = null;
- bypassUpdates = false;
- ajaxSingle = false;
- immediate = false;
- status = null;
}
public void apply(ActionEvent event) {
@@ -147,20 +67,6 @@
}
/**
- * @return the rendered
- */
- public boolean isRendered() {
- return rendered;
- }
-
- /**
- * @param rendered the rendered to set
- */
- public void setRendered(boolean rendered) {
- this.rendered = rendered;
- }
-
- /**
* @return the data
*/
public List getData() {
@@ -233,73 +139,5 @@
this.page = page;
}
- public String getReRender() {
- return reRender;
- }
-
- public void setReRender(String reRender) {
- this.reRender = reRender;
- }
-
- public Boolean getLimitToList() {
- return limitToList;
- }
-
- public void setLimitToList(Boolean limitToList) {
- this.limitToList = limitToList;
- }
-
- public String getInput() {
- return input;
- }
-
- public void setInput(String input) {
- if (status == null) {
- status = "";
- }
- if (input.equals("Text"))
- status = status + "UpdateModel ";
- this.input = input;
- }
-
- public String getOnComplete() {
- return onComplete;
- }
-
- public void setOnComplete(String onComplete) {
- this.onComplete = onComplete;
- }
-
- public Boolean getBypassUpdates() {
- return bypassUpdates;
- }
-
- public void setBypassUpdates(Boolean bypassUpdates) {
- this.bypassUpdates = bypassUpdates;
- }
-
- public Boolean getImmediate() {
- return immediate;
- }
-
- public void setImmediate(Boolean immediate) {
- this.immediate = immediate;
- }
-
- public Boolean getAjaxSingle() {
- return ajaxSingle;
- }
-
- public void setAjaxSingle(Boolean ajaxSingle) {
- this.ajaxSingle = ajaxSingle;
- }
-
- public String getStatus() {
- return status;
- }
-
- public void setStatus(String status) {
- this.status = status;
- }
}
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/WEB-INF/faces-config.xml 2008-10-14
13:48:24 UTC (rev 10739)
+++
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/WEB-INF/faces-config.xml 2008-10-14
13:55:28 UTC (rev 10740)
@@ -19,6 +19,16 @@
<converter-id>listShuttleconverter</converter-id>
<converter-class>org.ajax4jsf.model.ListShuttleConverter</converter-class>
</converter>
+
+ <validator>
+ <validator-id>autoTestValidator</validator-id>
+
<validator-class>org.ajax4jsf.autotest.bean.AutoTestValidator</validator-class>
+ </validator>
+
+ <validator>
+ <validator-id>autoTestDefaultValidator</validator-id>
+
<validator-class>org.ajax4jsf.autotest.bean.AutoTestDefaultValidator</validator-class>
+ </validator>
<managed-bean>
<managed-bean-name>configurator</managed-bean-name>
@@ -238,7 +248,7 @@
</managed-bean>
<managed-bean>
<managed-bean-name>autoTestBean</managed-bean-name>
- <managed-bean-class>org.ajax4jsf.bean.AutoTestBean</managed-bean-class>
+ <managed-bean-class>org.ajax4jsf.autotest.bean.AutoTestBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/autotest/autoTestControls.xhtml
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/autotest/autoTestControls.xhtml 2008-10-14
13:48:24 UTC (rev 10739)
+++
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/autotest/autoTestControls.xhtml 2008-10-14
13:55:28 UTC (rev 10740)
@@ -5,16 +5,58 @@
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:form id="autoTestControlForm">
- <div>
- <h:commandButton id="testRendered"
actionListener="#{templateBean.reset}"
action="#{autoTestBean.testRendered}"
value="testRendered"></h:commandButton>
- <h:commandButton id="testReRender"
actionListener="#{templateBean.reset}"
action="#{autoTestBean.testReRender}"
value="testReRender"></h:commandButton>
- <h:commandButton id="testListeners"
actionListener="#{templateBean.reset}"
action="#{autoTestBean.testListeners}"
value="testListeners"></h:commandButton>
- <h:commandButton id="testFalidation"
actionListener="#{templateBean.reset}"
action="#{autoTestBean.testFalidation}"
value="testFalidation"></h:commandButton>
- <h:commandButton id="testAjaxSingle"
actionListener="#{templateBean.reset}"
action="#{autoTestBean.testAjaxSingle}"
value="testAjaxSingle"></h:commandButton>
- <h:commandButton id="testImmdediate"
actionListener="#{templateBean.reset}"
action="#{autoTestBean.testImmdediate}"
value="testImmdediate"></h:commandButton>
- <h:commandButton id="testBypassUpdate"
actionListener="#{templateBean.reset}"
action="#{autoTestBean.testBypassUpdate}"
value="testBypassUpdate"></h:commandButton>
- <h:commandButton id="testLimitToList1"
actionListener="#{templateBean.reset}"
action="#{autoTestBean.testLimitToList1}"
value="testLimitToList1"></h:commandButton>
- <h:commandButton id="testLimitToList2"
actionListener="#{templateBean.reset}"
action="#{autoTestBean.testLimitToList2}"
value="testLimitToList2"></h:commandButton>
- </div>
+ <table>
+ <tr>
+ <td>ReRender:</td>
+ <td>
+ <h:inputText id="_auto_reRender"
value="#{autoTestBean.reRender}"></h:inputText>
+ </td>
+ </tr>
+ <tr>
+ <td>Oncomplete:</td>
+ <td>
+ <h:inputText id="_auto_oncomplete"
value="#{autoTestBean.oncomplete}"></h:inputText>
+ </td>
+ </tr>
+ <tr>
+ <td>ValidatorId:</td>
+ <td>
+ <h:inputText id="_auto_validatorId"
value="#{autoTestBean.validatorId}"></h:inputText>
+ </td>
+ </tr>
+ <tr>
+ <td>Rendered:</td>
+ <td>
+ <h:selectBooleanCheckbox id="_auto_rendered"
value="#{autoTestBean.rendered}"></h:selectBooleanCheckbox>
+ </td>
+ </tr>
+ <tr>
+ <td>AjaxSingle:</td>
+ <td>
+ <h:selectBooleanCheckbox id="_auto_ajaxSingle"
value="#{autoTestBean.ajaxSingle}"></h:selectBooleanCheckbox>
+ </td>
+ </tr>
+ <tr>
+ <td>Immediate:</td>
+ <td>
+ <h:selectBooleanCheckbox id="_auto_immediate"
value="#{autoTestBean.immediate}"></h:selectBooleanCheckbox>
+ </td>
+ </tr>
+ <tr>
+ <td>BypassUpdate:</td>
+ <td>
+ <h:selectBooleanCheckbox id="_auto_bypassUpdate"
value="#{autoTestBean.bypassUpdate}"></h:selectBooleanCheckbox>
+ </td>
+ </tr>
+ <tr>
+ <td>LimitToList:</td>
+ <td>
+ <h:selectBooleanCheckbox id="_auto_limitToList"
value="#{autoTestBean.limitToList}"></h:selectBooleanCheckbox>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2"><h:commandButton id="_auto_load"
actionListener="#{templateBean.reset}" action="#{autoTestBean.load}"
value="Load"></h:commandButton> </td>
+ </tr>
+ </table>
</h:form>
</html>
\ No newline at end of file
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-14
13:48:24 UTC (rev 10739)
+++
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/autotest/autoTestHiddens.xhtml 2008-10-14
13:55:28 UTC (rev 10740)
@@ -6,5 +6,5 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<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"
value="#{autoTestBean.text}"></h:outputText>
+ <h:outputText id="_auto_time" style="display: none;"
value="#{autoTestBean.text}"></h:outputText>
</html>
\ No newline at end of file
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/layout.xhtml
===================================================================
(Binary files differ)
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dataScroller/dataScroller.xhtml
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dataScroller/dataScroller.xhtml 2008-10-14
13:48:24 UTC (rev 10739)
+++
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dataScroller/dataScroller.xhtml 2008-10-14
13:55:28 UTC (rev 10740)
@@ -23,7 +23,6 @@
<br/>
<h:form id="_data">
<rich:datascroller id="scroller"
- rendered="#{dataScrollerBean.rendered}"
for="tbl"
align="left"
maxPages="#{dataScrollerBean.maxPages}"
@@ -34,10 +33,6 @@
onmouseout="EventQueue.fire('onmouseout')"
onmouseover="EventQueue.fire('onmouseover')"
onmouseup="EventQueue.fire('onmouseup')"
- limitToList="#{dataScrollerBean.limitToList}"
- reRender="#{dataScrollerBean.reRender}"
- oncomplete="#{dataScrollerBean.onComplete}"
- bypassUpdates="#{dataScrollerBean.bypassUpdates}"
/>
@@ -60,9 +55,7 @@
<br/><br/>
- <h:outputText id="time"
value="#{dataScrollerBean.time}"></h:outputText>
- <h:inputText id="input"
value="#{dataScrollerBean.input}"></h:inputText>
-
+
</h:form>
</ui:define>
</ui:composition>
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dataScroller/dataScrollerAjax.xhtml
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dataScroller/dataScrollerAjax.xhtml 2008-10-14
13:48:24 UTC (rev 10739)
+++
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dataScroller/dataScrollerAjax.xhtml 2008-10-14
13:55:28 UTC (rev 10740)
@@ -20,8 +20,11 @@
limitToList="#{autoTestBean.limitToList}"
bypassUpdates="#{autoTestBean.bypassUpdate}"
rendered="#{autoTestBean.rendered}"
- oncomplete="window._ajaxOncomplete = true;"
- />
+ oncomplete="#{autoTestBean.oncomplete}"
+ >
+ <f:param name="parameter1" value="value1" />
+ <f:actionListener type="org.ajax4jsf.autotest.bean.AutoTestListener"
/>
+ </rich:datascroller>
<br/>
<rich:dataTable id="tbl" value="#{dataScrollerBean.data}"
rows="#{dataScrollerBean.tableRows}" var="var">
<rich:column>
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-14
13:48:24 UTC (rev 10739)
+++
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/AutoTester.java 2008-10-14
13:55:28 UTC (rev 10740)
@@ -8,8 +8,9 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
-import org.ajax4jsf.bean.AutoTestBean;
+import org.ajax4jsf.autotest.bean.AutoTestBean;
import org.ajax4jsf.template.Template;
import org.testng.Assert;
@@ -26,12 +27,14 @@
private static final String INPUT_ID = "_auto_input";
- private static final String STATUS_ID = "_auto_status";
+ public static final String STATUS_ID = "_auto_status";
private static final String TIME_ID = "_auto_time";
public static final String COMPONENT_ID = "componentId";
+ private static final String PARAMS_MAP_VAR_NAME = "requestParamsMap";
+
// /private String componentName;
@@ -52,20 +55,22 @@
testAjaxSingle();
testImmediate();
testBypassUpdate();
- testFalidationFailure();
+ testExtrenalValidationFailure();
testLimitToList();
}
public void testRendered() {
- String commandId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID +
"testRendered";
- base.clickCommandAndWait(commandId);
+ reset();
+ setupControl(TestSetupEntry.rendered, Boolean.FALSE);
+ clickLoad();
+
base.AssertNotPresent(getClientId(COMPONENT_ID), "Rendered attribute does not
work");
}
public void testReRender() {
- String commandId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID +
"testReRender";
- base.clickCommandAndWait(commandId);
- setValidation(true);
+ reset();
+ setupControl(TestSetupEntry.reRender, STATUS_ID + "," + TIME_ID);
+ clickLoad();
String text = base.getTextById(base.getParentId() + AUTOTEST_FORM_ID + TIME_ID);
@@ -77,72 +82,74 @@
}
public void testActionListener() {
- String commandId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID +
"testListeners";
- base.clickCommandAndWait(commandId);
- setValidation(true);
+ reset();
+ clickLoad();
base.sendAjax();
- checkListener(true);
+ checkActionListener(true);
checkUpdateModel(true);
}
- public void testFalidationFailure() {
- String commandId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID +
"testFalidation";
- base.clickCommandAndWait(commandId);
- setValidation(false);
-
+ public void testExtrenalValidationFailure() {
+ reset();
+ clickLoad();
+
+ setExtrenalValidationFailed();
base.sendAjax();
- checkListener(false);
+ checkActionListener(false);
checkUpdateModel(false);
}
public void testAjaxSingle() {
- String commandId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID +
"testAjaxSingle";
- base.clickCommandAndWait(commandId);
- setValidation(false);
+ reset();
+ setupControl(TestSetupEntry.ajaxSingle, Boolean.TRUE);
+ clickLoad();
+ setExtrenalValidationFailed();
base.sendAjax();
- checkListener(true);
+ checkActionListener(true);
checkUpdateModel(false);
}
public void testImmediate() {
- String commandId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID +
"testImmdediate";
- base.clickCommandAndWait(commandId);
- setValidation(true);
+ reset();
+ setupControl(TestSetupEntry.immediate, Boolean.TRUE);
+ clickLoad();
base.sendAjax();
- checkListener(true);
+ checkActionListener(true);
checkUpdateModel(false);
}
public void testBypassUpdate() {
- String commandId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID +
"testBypassUpdate";
- base.clickCommandAndWait(commandId);
- setValidation(true);
+ reset();
+ setupControl(TestSetupEntry.bypassUpdate, Boolean.TRUE);
+ clickLoad();
base.sendAjax();
- checkListener(true);
+ checkActionListener(true);
checkUpdateModel(false);
}
public void testLimitToList() {
- String commandId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID +
"testLimitToList1";
- base.clickCommandAndWait(commandId);
- setValidation(true);
+ reset();
+ setupControl(TestSetupEntry.limitToList, Boolean.TRUE);
+ clickLoad();
checkComponentReRendered();
- commandId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID +
"testLimitToList2";
- base.clickCommandAndWait(commandId);
- setValidation(true);
+ reset();
+ setupControl(TestSetupEntry.limitToList, Boolean.TRUE);
+ setupControl(TestSetupEntry.reRender, STATUS_ID + "," + TIME_ID);
+ clickLoad();
+
String text = base.getTextById(base.getParentId() + AUTOTEST_FORM_ID + TIME_ID);
@@ -153,6 +160,43 @@
}
+
+ public void testRequestParameters(Map<String, String> params) {
+ reset();
+ clickLoad();
+
+ base.sendAjax();
+
+ for (String name : params.keySet()) {
+ String value = base.runScript(PARAMS_MAP_VAR_NAME + "." + name);
+ if (value == null) {
+ Assert.fail("Parameter [" + name + "] is not present in ajax
request");
+ }else if (!value.equals(params.get(name))) {
+ Assert.fail("Parameter [" + name + "] value is invalid. Expected
["+params.get(name)+"]. But was ["+value+"]");
+ }
+ }
+ }
+
+ public void testNestedActionListener() {
+ reset();
+ clickLoad();
+
+ base.sendAjax();
+
+ checkNestedActionListener(true);
+ }
+
+ public void testOncomplete() {
+ reset();
+ clickLoad();
+
+ base.sendAjax();
+
+ String oncomplete = base.runScript("window._ajaxOncomplete");
+ Assert.assertEquals("true", oncomplete, "Oncomplete attribute does not
work.");
+
+ }
+
private void checkComponentReRendered() {
List<String> htmlBefore = new ArrayList<String>();
List<String> htmlAfter = new ArrayList<String>();
@@ -187,21 +231,51 @@
return template.getPrefix() + AUTOTEST_FORM_ID + id;
}
+
+ private void reset() {
+ for (TestSetupEntry attr : TestSetupEntry.list) {
+ setupControl(attr, attr.defaultValue);
+ }
+ }
- private void setValidation(boolean passed) {
- base.setValueById(base.getParentId() + AUTOTEST_FORM_ID + INPUT_ID, (passed) ?
AutoTestBean.INPUT_TEXT : "");
+ private void clickLoad() {
+ String commandButtonId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID +
"_auto_load";
+ base.clickCommandAndWait(commandButtonId);
}
+ private void setExtrenalValidationFailed() {
+ base.setValueById(base.getParentId() + AUTOTEST_FORM_ID + INPUT_ID, "");
+ }
- private void checkListener(boolean passed) {
+ private void setupControl(TestSetupEntry attr, Object o) {
+ final String idPrefix = "_auto_";
+ String controlId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID + idPrefix +
attr.name;
+ if (attr.type.equals(String.class)) {
+ base.runScript("document.getElementById('" + controlId +
"').value = '" + o.toString() + "'");
+ }else if (attr.type.equals(Boolean.class)) {
+ base.runScript("document.getElementById('" + controlId +
"').checked = " + o.toString());
+ }
+ }
+
+
+ private void checkActionListener(boolean passed) {
String status = getStatus();
if (passed && status != null &&
status.indexOf(AutoTestBean.ACTION_LISTENER_STATUS) == -1) {
Assert.fail("ActionListener has been skipped");
}else if (!passed && status != null &&
status.indexOf(AutoTestBean.ACTION_LISTENER_STATUS) != -1) {
- Assert.fail("ActionListener should be skipped");
+ Assert.fail(status);
}
}
+ private void checkNestedActionListener(boolean passed) {
+ String status = getStatus();
+ if (passed && status != null &&
status.indexOf(AutoTestBean.NESTED_ACTION_LISTENER_STATUS) == -1) {
+ Assert.fail("Nested actionListener has been skipped");
+ }else if (!passed && status != null &&
status.indexOf(AutoTestBean.NESTED_ACTION_LISTENER_STATUS) != -1) {
+ Assert.fail("Nested actionListener should be skipped");
+ }
+ }
+
private void checkUpdateModel(boolean passed) {
String status = getStatus();
if (passed && status != null &&
status.indexOf(AutoTestBean.UPDATE_MODEL_STATUS) == -1) {
@@ -215,3 +289,45 @@
return base.getTextById(base.getParentId() + AUTOTEST_FORM_ID + STATUS_ID);
}
}
+
+
+
+class TestSetupEntry {
+
+ String name;
+
+ Class<?> type;
+
+ Object defaultValue;
+
+ public TestSetupEntry(String name, Class<?> type, Object defaultValue) {
+ super();
+ this.name = name;
+ this.type = type;
+ this.defaultValue = defaultValue;
+ }
+
+
+ public static final TestSetupEntry reRender = new TestSetupEntry("reRender",
String.class, AutoTester.STATUS_ID);
+ public static final TestSetupEntry validatorId = new
TestSetupEntry("validatorId", String.class, AutoTestBean.VALIDATOR_DEFAULT_ID);
+ public static final TestSetupEntry oncomplete = new
TestSetupEntry("oncomplete", String.class, AutoTestBean.ONCOMPLETE);
+ public static final TestSetupEntry rendered = new TestSetupEntry("rendered",
Boolean.class, Boolean.TRUE);
+ public static final TestSetupEntry ajaxSingle = new
TestSetupEntry("ajaxSingle", Boolean.class, Boolean.FALSE);
+ public static final TestSetupEntry immediate = new TestSetupEntry("immediate",
Boolean.class, Boolean.FALSE);
+ public static final TestSetupEntry bypassUpdate = new
TestSetupEntry("bypassUpdate", Boolean.class, Boolean.FALSE);
+ public static final TestSetupEntry limitToList = new
TestSetupEntry("limitToList", Boolean.class, Boolean.FALSE);
+
+ public static final List<TestSetupEntry> list = new
ArrayList<TestSetupEntry>();
+ static {
+ list.add(reRender);
+ list.add(validatorId);
+ list.add(rendered);
+ list.add(ajaxSingle);
+ list.add(immediate);
+ list.add(bypassUpdate);
+ list.add(limitToList);
+ list.add(oncomplete);
+
+ }
+
+}
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-14
13:48:24 UTC (rev 10739)
+++
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/SeleniumTestBase.java 2008-10-14
13:55:28 UTC (rev 10740)
@@ -82,6 +82,15 @@
private Template template;
+ private AutoTester autoTester;
+
+ public AutoTester getAutoTester(SeleniumTestBase base) {
+ if (autoTester == null) {
+ autoTester = new AutoTester(base);
+ }
+ return autoTester;
+ }
+
/**
* Returns current template
* */
Modified:
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/DataScrollerTest.java
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/DataScrollerTest.java 2008-10-14
13:48:24 UTC (rev 10739)
+++
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/DataScrollerTest.java 2008-10-14
13:55:28 UTC (rev 10740)
@@ -53,12 +53,13 @@
@Test
public void testAutoAjaxAttributes(Template template) {
- AutoTester autoTester = new AutoTester(this);
+ AutoTester autoTester = getAutoTester(this);
+
dataScrollerTableId = autoTester.getClientId(AutoTester.COMPONENT_ID +
"_table", template);
autoTester.renderPage(template, RESET_METHOD_ME);
autoTester.testAllAjaxAttributes();
-
+
}
@Override
@@ -78,8 +79,8 @@
return "pages/dataScroller/dataScrollerAjax.xhtml";
}
-
+
@Test
public void testDataScrollerRendering(Template template) {
@@ -326,7 +327,7 @@
selenium.getEval(b.toString());
waitForAjaxCompletion();
}
-
+
/* (non-Javadoc)
* @see org.richfaces.SeleniumTestBase#getTestUrl()
*/