[richfaces-svn-commits] JBoss Rich Faces SVN: r9043 - in trunk/test-applications/seleniumTest/src: main/java/org/ajax4jsf/template and 5 other directories.
richfaces-svn-commits at lists.jboss.org
richfaces-svn-commits at lists.jboss.org
Fri Jun 13 13:22:09 EDT 2008
Author: vmolotkov
Date: 2008-06-13 13:22:09 -0400 (Fri, 13 Jun 2008)
New Revision: 9043
Added:
trunk/test-applications/seleniumTest/src/main/java/org/ajax4jsf/bean/A4JFormTestBean.java
trunk/test-applications/seleniumTest/src/main/webapp/pages/ajaxForm/
trunk/test-applications/seleniumTest/src/main/webapp/pages/ajaxForm/ajaxFormTest.xhtml
trunk/test-applications/seleniumTest/src/test/java/org/richfaces/testng/AjaxFormTest.java
Modified:
trunk/test-applications/seleniumTest/src/main/java/org/ajax4jsf/template/TestConstants.java
trunk/test-applications/seleniumTest/src/main/webapp/WEB-INF/faces-config.xml
trunk/test-applications/seleniumTest/src/test/java/org/richfaces/SeleniumTestBase.java
Log:
a4j:form tests
Added: trunk/test-applications/seleniumTest/src/main/java/org/ajax4jsf/bean/A4JFormTestBean.java
===================================================================
--- trunk/test-applications/seleniumTest/src/main/java/org/ajax4jsf/bean/A4JFormTestBean.java (rev 0)
+++ trunk/test-applications/seleniumTest/src/main/java/org/ajax4jsf/bean/A4JFormTestBean.java 2008-06-13 17:22:09 UTC (rev 9043)
@@ -0,0 +1,69 @@
+package org.ajax4jsf.bean;
+
+public class A4JFormTestBean {
+
+ private String name = "before submit";
+
+ private Boolean ajaxSubmit;
+
+ private Boolean ignoreDupResponses;
+
+ private Boolean prependId;
+
+ private String rerender = "";
+
+ private Boolean rendered = false;
+
+ public String getRerender() {
+ return rerender;
+ }
+
+ public void setRerender(String rerender) {
+ this.rerender = rerender;
+ }
+
+ public Boolean getAjaxSubmit() {
+ return ajaxSubmit;
+ }
+
+ public void setAjaxSubmit(Boolean ajaxSubmit) {
+ this.ajaxSubmit = ajaxSubmit;
+ }
+
+ public Boolean getIgnoreDupResponses() {
+ return ignoreDupResponses;
+ }
+
+ public void setIgnoreDupResponses(Boolean ignoreDupResponses) {
+ this.ignoreDupResponses = ignoreDupResponses;
+ }
+
+ public Boolean getPrependId() {
+ return prependId;
+ }
+
+ public void setPrependId(Boolean prependId) {
+ this.prependId = prependId;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Boolean getRendered() {
+ return rendered;
+ }
+
+ public void setRendered(Boolean rendered) {
+ this.rendered = rendered;
+ }
+
+ public void changeName() {
+ this.name = "after submit";
+ }
+
+}
Modified: trunk/test-applications/seleniumTest/src/main/java/org/ajax4jsf/template/TestConstants.java
===================================================================
--- trunk/test-applications/seleniumTest/src/main/java/org/ajax4jsf/template/TestConstants.java 2008-06-13 17:20:29 UTC (rev 9042)
+++ trunk/test-applications/seleniumTest/src/main/java/org/ajax4jsf/template/TestConstants.java 2008-06-13 17:22:09 UTC (rev 9043)
@@ -15,5 +15,9 @@
public static final String SIMPLE_TEMPLATE_DESC = "Simple";
public static final String DATA_TABLE_TEMPLATE_DESC = "DataTable";
public static final String MODAL_PANEL_TEMPLATE_DESC = "Modal Panel";
+
+ /* Constants of test configuration */
+ public final static String HOST = "localhost";
+ public final static String PROTOCOL = "http";
}
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-06-13 17:20:29 UTC (rev 9042)
+++ trunk/test-applications/seleniumTest/src/main/webapp/WEB-INF/faces-config.xml 2008-06-13 17:22:09 UTC (rev 9043)
@@ -135,4 +135,9 @@
<managed-bean-class>org.ajax4jsf.bean.CalendarTestBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
+ <managed-bean>
+ <managed-bean-name>formBean</managed-bean-name>
+ <managed-bean-class>org.ajax4jsf.bean.A4JFormTestBean</managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+ </managed-bean>
</faces-config>
\ No newline at end of file
Added: trunk/test-applications/seleniumTest/src/main/webapp/pages/ajaxForm/ajaxFormTest.xhtml
===================================================================
--- trunk/test-applications/seleniumTest/src/main/webapp/pages/ajaxForm/ajaxFormTest.xhtml (rev 0)
+++ trunk/test-applications/seleniumTest/src/main/webapp/pages/ajaxForm/ajaxFormTest.xhtml 2008-06-13 17:22:09 UTC (rev 9043)
@@ -0,0 +1,63 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:a4j="http://richfaces.org/a4j"
+ xmlns:rich="http://richfaces.org/rich"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets">
+
+<ui:composition template="#{templateBean.template}">
+ <ui:define name="component">
+ <h:panelGroup id="content" style="border: 2px solid black; width:400px;" layout="block">
+ <a4j:form id="a4j_form" ajaxSubmit="true" prependId="false">
+ <h:inputText id="inner_name" value="#{formBean.name}"/>
+ <a4j:outputPanel ajaxRendered="true">
+ <h:outputText id="test_field_name" value="#{formBean.name}" style="border: 1px solid black;"/>
+ </a4j:outputPanel>
+ <!--
+ <h:panelGrid columns="2">
+ <h:outputText value="ajaxSubmit: "/>
+ <h:selectBooleanCheckbox id="ajaxSubmit" value="#{formBean.ajaxSubmit}"/>
+
+ <h:outputText value="ignoreDupResponses: "/>
+ <h:selectBooleanCheckbox id="ignoreDupResponses" value="#{formBean.ignoreDupResponses}"/>
+
+ <h:outputText value="prependId: "/>
+ <h:selectBooleanCheckbox id="prependId" value="#{formBean.prependId}"/>
+
+ <h:outputText value="rerender : "/>
+ <h:inputText id="rerender" value="#{formBean.rerender}"/>
+ </h:panelGrid>
+ -->
+ <a4j:commandButton id= "submit" value="Submit"/>
+ </a4j:form>
+ <h:form id="staticForm">
+ <h:inputText id="outer_name" value="#{formBean.name}"/>
+ </h:form>
+ </h:panelGroup>
+
+ <h:panelGroup id="content1" style="border: 2px solid black; width:400px;" layout="block">
+ <a4j:form id="a4j_form1" prependId="true">
+ <h:inputText id="inner_name1" value="#{formBean.name}"/>
+ <a4j:commandButton id="submit1" value="Submit"/>
+ </a4j:form>
+ <h:form id="staticForm1">
+ <h:inputText id="outer_name1" value="#{formBean.name}"/>
+ </h:form>
+ </h:panelGroup>
+
+ <h:panelGroup id="content2" style="border: 2px solid black; width:400px;" layout="block">
+ <a4j:form id="a4j_form2" prependId="false">
+ <h:panelGroup id="group2">
+ <a4j:commandLink id="link2" value="A4J Form" action="#{formBean.changeName}" rendered="#{formBean.rendered}"/>
+ </h:panelGroup>
+ <h:selectBooleanCheckbox id="rendered2" value="#{formBean.rendered}"/>
+ <a4j:outputPanel ajaxRendered="true">
+ <h:outputText id="test_field_name2" value="#{formBean.name}" style="border: 1px solid black;"/>
+ </a4j:outputPanel>
+ <a4j:commandButton id= "submit2" value="Submit" reRender="group2"/>
+ </a4j:form>
+ </h:panelGroup>
+ </ui:define>
+</ui:composition>
+</html>
\ No newline at end of file
Modified: trunk/test-applications/seleniumTest/src/test/java/org/richfaces/SeleniumTestBase.java
===================================================================
--- trunk/test-applications/seleniumTest/src/test/java/org/richfaces/SeleniumTestBase.java 2008-06-13 17:20:29 UTC (rev 9042)
+++ trunk/test-applications/seleniumTest/src/test/java/org/richfaces/SeleniumTestBase.java 2008-06-13 17:22:09 UTC (rev 9043)
@@ -163,6 +163,7 @@
}
private static final Object MUTEX = new Object();
+
/**
* Renders page
Added: trunk/test-applications/seleniumTest/src/test/java/org/richfaces/testng/AjaxFormTest.java
===================================================================
--- trunk/test-applications/seleniumTest/src/test/java/org/richfaces/testng/AjaxFormTest.java (rev 0)
+++ trunk/test-applications/seleniumTest/src/test/java/org/richfaces/testng/AjaxFormTest.java 2008-06-13 17:22:09 UTC (rev 9043)
@@ -0,0 +1,149 @@
+package org.richfaces.testng;
+
+import org.ajax4jsf.template.Template;
+import org.ajax4jsf.template.TestConstants;
+import org.richfaces.RichSeleniumTest;
+import org.richfaces.SeleniumTestBase;
+import org.testng.Assert;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Parameters;
+import org.testng.annotations.Test;
+
+public class AjaxFormTest extends SeleniumTestBase implements RichSeleniumTest {
+
+ private final static String TEST_URL = "pages/ajaxForm/ajaxFormTest.xhtml";
+
+ private final static String FORM_ID = "a4j_form";
+
+ private static final String STANDART_FORM = "staticForm";
+
+ private final static String INNER_INPUT_ID = "inner_name";
+
+ private final static String OUTER_INPUT_ID = "outer_name";
+
+ private final static String TEST_FIELD_ID = "test_field_name";
+
+ private final static String BUTTON_ID = "submit";
+
+ private final static String PREV_TEXT = "before submit";
+
+ private final static String NEXT_TEXT = "after submit";
+
+ private final static String CHECK_ID_AJAXSUBMIT = "ajaxSubmit";
+
+ private final static String CHECK_ID_IGNOREDUPRESPONSES = "ignoreDupResponses";
+
+ private final static String CHECK_ID_PREPENDID = "prependId";
+
+ private final static String CHECK_ID_RENDERED = "rendered";
+
+ private final static String PANEL_GROUP = "content";
+
+ private final static String RERENDER_ID = "rerender";
+
+ private final static String LINK_ID = "link";
+
+ @Test
+ public void testAttrAjaxSubmit() throws Exception {
+ renderPage(Template.SIMPLE);
+
+ //clickOnCheckbox(CHECK_ID_AJAXSUBMIT, BUTTON_ID);
+ test(BUTTON_ID, INNER_INPUT_ID, STANDART_FORM.concat(":").concat(OUTER_INPUT_ID), TEST_FIELD_ID, true, null, null, null, "testAttrAjaxSubmit");
+ }
+
+ @Test
+ public void testAttrPrependId() {
+ renderPage(Template.SIMPLE);
+
+ if (!PREV_TEXT.equals(getValueById(getFullComponentId(INNER_INPUT_ID, "1")))) {
+ assertFail(null, null, true, null, "testAttrPrependId");
+ }
+ }
+
+ /*@Test
+ public void testAttrIgnoreDupResponses() {
+ //TODO: will be implemented in future
+ }*/
+
+ /*@Test
+ public void testAttrTimeout() {
+ //TODO: will be implemented in future
+ }*/
+
+ @Test
+ public void testProcessingLinks() {
+ renderPage(Template.SIMPLE);
+
+ clickOnCheckbox(CHECK_ID_RENDERED, BUTTON_ID, "2");
+ clickById(LINK_ID.concat("2"));
+ waitForAjaxCompletion();
+ if (!NEXT_TEXT.equals(getTextById(TEST_FIELD_ID.concat("2")))) {
+ assertFail(null, null, null, null, "testProcessingLinks");
+ }
+
+ }
+
+ public AjaxFormTest() {
+ super(TestConstants.PROTOCOL, TestConstants.HOST, serverPort);
+ }
+
+ @BeforeMethod
+ @Parameters({"browser", "filterPrefix"})
+ public void startSelenium(String browser, String filterPrefix) {
+ super.startSelenium(browser, filterPrefix);
+ }
+
+
+ @BeforeMethod
+ @Parameters({"loadStyleStrategy", "loadScriptStrategy"})
+ protected void loadConfiguration(String loadStyleStrategy, String loadScriptStrategy) throws Exception {
+ super.loadConfiguration(loadStyleStrategy, loadScriptStrategy);
+ }
+
+ @AfterMethod(alwaysRun=true)
+ public void stopSelenium() {
+ super.stopSelenium();
+ }
+
+ private String getFullComponentId(String componentId, String index) {
+ return FORM_ID.concat(index).concat(":").concat(componentId.concat(index));
+ }
+
+ private boolean isAjaxSubmitSuccessfull(String innerInputId, String outerInputId) {
+ String innerText = getTextById(innerInputId);
+ String outerText = getValueById(outerInputId);
+ return (NEXT_TEXT.equals(innerText) && (PREV_TEXT.equals(outerText)));
+ }
+
+ private void submitForm(String buttonId) {
+ clickById(buttonId);
+ waitForAjaxCompletion();
+ }
+
+ private void test(String buttonId, String innerInputId, String outerInputId, String testInputId,
+ Boolean ajaxSubmit, Boolean ignoreDupResponses,
+ Integer timeout, Boolean prependId, String testName) {
+ setValueById(innerInputId, NEXT_TEXT);
+ submitForm(buttonId);
+ if (!isAjaxSubmitSuccessfull(testInputId, outerInputId)) {
+ assertFail(ajaxSubmit, ignoreDupResponses, prependId, timeout, testName);
+ }
+ }
+
+ private void assertFail(Boolean ajaxSubmit, Boolean ignoreDupResponses, Boolean prependId, Integer timeout, String testName) {
+ Assert.fail("<a4j:form> [ajaxSubmit=" + ajaxSubmit + " ; ignoreDupResponses="
+ + ignoreDupResponses + " ; timeout=" + timeout
+ + " ; prependId=" + prependId + "] test '" + testName + "' failure.");
+ }
+
+ private void clickOnCheckbox(String checkId, String bottonId, String index) {
+ clickById(checkId.concat(index));
+ clickById(bottonId.concat(index));
+ waitForAjaxCompletion();
+ }
+
+ public String getTestUrl() {
+ return TEST_URL;
+ }
+}
More information about the richfaces-svn-commits
mailing list