[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