[richfaces-svn-commits] JBoss Rich Faces SVN: r11976 - trunk/ui/suggestionbox/src/test/java/org/richfaces/component.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Mon Dec 22 10:59:21 EST 2008


Author: alevkovsky
Date: 2008-12-22 10:59:20 -0500 (Mon, 22 Dec 2008)
New Revision: 11976

Modified:
   trunk/ui/suggestionbox/src/test/java/org/richfaces/component/SuggestionBoxComponentTest.java
Log:
Add JUnits for suggestionBox

Modified: trunk/ui/suggestionbox/src/test/java/org/richfaces/component/SuggestionBoxComponentTest.java
===================================================================
--- trunk/ui/suggestionbox/src/test/java/org/richfaces/component/SuggestionBoxComponentTest.java	2008-12-22 15:38:13 UTC (rev 11975)
+++ trunk/ui/suggestionbox/src/test/java/org/richfaces/component/SuggestionBoxComponentTest.java	2008-12-22 15:59:20 UTC (rev 11976)
@@ -21,14 +21,24 @@
 
 package org.richfaces.component;
 
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
+import javax.el.ELContext;
+import javax.el.ELException;
+import javax.el.MethodExpression;
+import javax.el.MethodInfo;
+import javax.el.PropertyNotFoundException;
 import javax.faces.component.UIForm;
 import javax.faces.component.UIInput;
 import javax.faces.component.html.HtmlForm;
+import javax.faces.el.MethodNotFoundException;
 
+import org.ajax4jsf.context.AjaxContext;
+import org.ajax4jsf.event.AjaxEvent;
 import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
 
 import com.gargoylesoftware.htmlunit.html.HtmlElement;
@@ -40,6 +50,7 @@
 public class SuggestionBoxComponentTest extends AbstractAjax4JsfTestCase {
     private static Set javaScripts = new HashSet();
     private static final boolean IS_PAGE_AVAILABILITY_CHECK = true;
+    private static String[] SUGGESTION = new String[]{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
 
     static {
         javaScripts.add("org.ajax4jsf.javascript.AjaxScript");
@@ -81,6 +92,8 @@
         sb = (UISuggestionBox)application.createComponent("org.richfaces.SuggestionBox");
         sb.setId("suggestionBox");
         sb.setFor(input.getId());
+        sb.setUsingSuggestObjects(true);
+        sb.setSuggestionAction(action);
 
         form.getChildren().add(sb);
     }
@@ -146,4 +159,69 @@
         //System.out.println(page.asXml());
         assertEquals(getCountValidScripts(page, javaScripts, IS_PAGE_AVAILABILITY_CHECK).intValue(), javaScripts.size());
     }
+    
+    public void testBroadcast() throws Exception {
+        HtmlPage page = renderView();
+        assertNotNull(page);
+        sb.setFetchValue("1");
+        sb.setSubmitedValue(null, new String[]{"1"});
+        
+        sb.broadcast(new AjaxEvent(sb));
+        AjaxContext ajaxContext = AjaxContext.getCurrentInstance(facesContext); 
+        assertFalse(ajaxContext.getAjaxAreasToRender().isEmpty());
+        assertTrue(ajaxContext.getAjaxAreasToRender().iterator().next().contains(sb.getClientId(facesContext)));
+        Map<String, Object> ajaxResponseData = ajaxContext.getResponseDataMap();
+        Map<String, Object>  data = (Map<String, Object>) ajaxResponseData.get("_ajax:data");
+        Object suggestinObjects = data.get("suggestionObjects");
+        assertNotNull(suggestinObjects);
+        assertEquals(Arrays.asList(SUGGESTION), suggestinObjects);
+        Map requestedObjectsObjects = (Map)data.get("requestedObjects");
+        assertNotNull(requestedObjectsObjects);
+        assertEquals(requestedObjectsObjects.get("1"), "1");
+    }
+    
+    public void testDecode() throws Exception {
+		HtmlPage page = renderView();
+		assertNotNull(page);
+		sb.setFetchValue("1");
+		sb.setSubmitedValue(Arrays.asList(SUGGESTION), new String[] { "1" });
+		facesContext.getExternalContext().getRequestParameterMap().put(
+				sb.getClientId(facesContext) + "_selection", "1");
+
+		sb.processDecodes(facesContext);
+		assertEquals(1, sb.getRowNumber());
+	}
+    
+    MethodExpression action = new MethodExpression(){
+		
+		public Object invoke(ELContext context, Object[] params) throws PropertyNotFoundException, MethodNotFoundException,
+        ELException  {
+			return Arrays.asList(SUGGESTION); 
+		}
+		
+		public MethodInfo getMethodInfo(ELContext context) {
+		
+			return null;
+		}
+
+		public boolean equals(Object obj) {
+			 return (obj instanceof MethodExpression && obj.hashCode() == this.hashCode());
+		}
+
+		
+		public String getExpressionString() {
+			return null;
+		}
+
+		public int hashCode() {
+			 return 0;
+		}
+
+		public boolean isLiteralText() {
+			return false;
+		}
+		
+	};
+
+    
 }




More information about the richfaces-svn-commits mailing list