[richfaces-svn-commits] JBoss Rich Faces SVN: r12135 - in trunk/test-applications/seleniumTest/richfaces/src: main/java/org/ajax4jsf/bean and 5 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Tue Jan 6 11:29:14 EST 2009


Author: andrei_exadel
Date: 2009-01-06 11:29:13 -0500 (Tue, 06 Jan 2009)
New Revision: 12135

Added:
   trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/converter/
   trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/converter/ActionParamConverter.java
   trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/model/ActionParamObject.java
   trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/actionParam/testConverterAttribute.xhtml
Modified:
   trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/A4JActionParam.java
   trunk/test-applications/seleniumTest/richfaces/src/main/webapp/WEB-INF/faces-config.xml
   trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/AjaxActionParameterTest.java
Log:
 	 RF-5535

Modified: trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/A4JActionParam.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/A4JActionParam.java	2009-01-06 15:58:26 UTC (rev 12134)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/A4JActionParam.java	2009-01-06 16:29:13 UTC (rev 12135)
@@ -25,6 +25,8 @@
 import javax.faces.context.FacesContext;
 import javax.faces.event.ActionEvent;
 
+import org.ajax4jsf.model.ActionParamObject;
+
 import com.sun.faces.context.FacesContextImpl;
 
 public class A4JActionParam {
@@ -47,6 +49,8 @@
 	
 	private String errorMessage = null;
 	
+	private ActionParamObject object = new ActionParamObject("actionParamName");
+	
 	public void listener(ActionEvent event) {
 		FacesContext context = FacesContextImpl.getCurrentInstance();
 		Map<String, String> p = context.getExternalContext().getRequestParameterMap();
@@ -89,6 +93,14 @@
 	public void setParameterValue(String parameterValue) {
 		this.parameterValue = parameterValue;
 	}
+
+	public ActionParamObject getObject() {
+		return object;
+	}
+
+	public void setObject(ActionParamObject object) {
+		this.object = object;
+	}
 	
 	
 

Added: trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/converter/ActionParamConverter.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/converter/ActionParamConverter.java	                        (rev 0)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/converter/ActionParamConverter.java	2009-01-06 16:29:13 UTC (rev 12135)
@@ -0,0 +1,44 @@
+/**
+ * 
+ */
+package org.ajax4jsf.converter;
+
+import java.util.Date;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+
+import org.ajax4jsf.model.ActionParamObject;
+
+/**
+ * @author Andrey Markavtsov
+ *
+ */
+public class ActionParamConverter implements Converter {
+
+	/* (non-Javadoc)
+	 * @see javax.faces.convert.Converter#getAsObject(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.String)
+	 */
+	public Object getAsObject(FacesContext context, UIComponent component,
+			String value) {
+		String [] s = value.split(",");
+		ActionParamObject object = null;
+		if (s != null && s.length == 2) {
+			object = new ActionParamObject(s[0]);
+			object.setDate(String.valueOf(new Date().getTime()));
+		}
+		
+		return object;
+	}
+
+	/* (non-Javadoc)
+	 * @see javax.faces.convert.Converter#getAsString(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
+	 */
+	public String getAsString(FacesContext context, UIComponent component,
+			Object value) {
+		ActionParamObject o = (ActionParamObject)value;
+		return o.getName() + "," + o.getDate();
+	}
+
+}

Added: trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/model/ActionParamObject.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/model/ActionParamObject.java	                        (rev 0)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/model/ActionParamObject.java	2009-01-06 16:29:13 UTC (rev 12135)
@@ -0,0 +1,46 @@
+/**
+ * 
+ */
+package org.ajax4jsf.model;
+
+/**
+ * @author Andrey Markavtsov
+ *
+ */
+public class ActionParamObject {
+	String name;
+	String date;
+	
+	public ActionParamObject(String name) {
+		super();
+		this.name = name;
+	}
+	
+	@Override
+	public boolean equals(Object obj) {
+		if (!(obj instanceof ActionParamObject)) {
+			return false;
+		}
+		
+		ActionParamObject o = (ActionParamObject)obj;
+		return o.name.equals(this.name) && o.date.equals(this.date);
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getDate() {
+		return date;
+	}
+
+	public void setDate(String date) {
+		this.date = date;
+	}
+	
+	
+}

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	2009-01-06 15:58:26 UTC (rev 12134)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/webapp/WEB-INF/faces-config.xml	2009-01-06 16:29:13 UTC (rev 12135)
@@ -20,6 +20,11 @@
   		<converter-class>org.ajax4jsf.model.ListShuttleConverter</converter-class>
  	</converter>
  	
+ 	<converter>
+ 		<converter-id>actionParamConverter</converter-id>
+ 		<converter-class>org.ajax4jsf.converter.ActionParamConverter</converter-class>
+ 	</converter>
+ 	
  	<validator>
  		<validator-id>validatorWithAttribute</validator-id>
  		<validator-class>org.ajax4jsf.validators.ValidatorWithAttribute</validator-class>

Added: trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/actionParam/testConverterAttribute.xhtml
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/actionParam/testConverterAttribute.xhtml	                        (rev 0)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/actionParam/testConverterAttribute.xhtml	2009-01-06 16:29:13 UTC (rev 12135)
@@ -0,0 +1,30 @@
+<!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="style">
+		
+	</ui:define>
+	<ui:define name="component">
+	
+	
+		<h:form id="form1">
+			<a4j:commandLink value="Ajax Submit" id="ajaxSubmit" reRender="out, ajaxSubmit">
+				<a4j:actionparam name="param" assignTo="#{actionParam.object}" converter="actionParamConverter" value="#{actionParam.object}"></a4j:actionparam>
+			</a4j:commandLink>
+		</h:form>
+		
+		<h:panelGrid columns="2" id="out">
+			<h:outputText value="Name:"></h:outputText>
+			<h:outputText id="name" value="#{actionParam.object.name}"></h:outputText>
+			<h:outputText value="Value"></h:outputText>
+			<h:outputText id="value" value="#{actionParam.object.date}"></h:outputText>
+		</h:panelGrid>
+	</ui:define>
+</ui:composition>
+</html>
\ No newline at end of file

Modified: trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/AjaxActionParameterTest.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/AjaxActionParameterTest.java	2009-01-06 15:58:26 UTC (rev 12134)
+++ trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/AjaxActionParameterTest.java	2009-01-06 16:29:13 UTC (rev 12135)
@@ -27,13 +27,50 @@
 import org.testng.annotations.Test;
 
 public class AjaxActionParameterTest extends SeleniumTestBase {
+	
+	static final String TEST_CONVERTER_ATTRIBUTE = "/pages/actionParam/testConverterAttribute.xhtml";
+	
+	@Test
+	public void testConverterAttribute(Template template) {
+		renderPage(TEST_CONVERTER_ATTRIBUTE, template, null);
+		String ajaxLinkId = getParentId() + "form1:ajaxSubmit";
+		String paramNameId = getParentId() + "name";
+		String paramValueId = getParentId() + "value";
+		
+		String onclick = selenium.getAttribute("//*[@id='"+ajaxLinkId+"']/@onclick");
+		if (!onclick.contains("actionParamName,")) {
+			Assert.fail("Object has not been converted to string properly But was: " + onclick);
+		}
+		
+		AssertTextEquals(paramNameId, "actionParamName");
+		AssertTextEquals(paramValueId, "", "Value should be empty. It should be filled while parameter converting");
+		
+		clickAjaxCommandAndWait(ajaxLinkId);
+		
+			
+		String text = getTextById(paramValueId);
+		if (text == null || text.length() == 0) {
+			Assert.fail("Converter has not been performed. Value should not be empty.");
+		}
+		
+		onclick = selenium.getAttribute("//*[@id='"+ajaxLinkId+"']/@onclick");
+		if (!onclick.contains("actionParamName," + text)) {
+			Assert.fail("Object has not been converted to string properly. It should consist from 'actionParamName,' + current date time. But was: " + onclick);
+		}
 
+		
+		clickAjaxCommandAndWait(ajaxLinkId);
+		
+		AssertTextNotEquals(paramValueId, text, "Value should be changed after each submit");
+		
+	}
+
     /**
      * Tests ajax action parameter component
      * 
      * @param template
      */
-    @Test
+   // @Test
     public void testAjaxActionParameterComponent(Template template) {
         renderPage(template);
         String parentId = getParentId();




More information about the richfaces-svn-commits mailing list