[richfaces-svn-commits] JBoss Rich Faces SVN: r5202 - trunk/framework/test/src/main/java/org/ajax4jsf/tests.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Tue Jan 8 14:10:56 EST 2008


Author: sergeyhalipov
Date: 2008-01-08 14:10:56 -0500 (Tue, 08 Jan 2008)
New Revision: 5202

Added:
   trunk/framework/test/src/main/java/org/ajax4jsf/tests/MockExternalContext.java
Modified:
   trunk/framework/test/src/main/java/org/ajax4jsf/tests/AbstractAjax4JsfTestCase.java
Log:
Fixed tests for listShuttle component.

Modified: trunk/framework/test/src/main/java/org/ajax4jsf/tests/AbstractAjax4JsfTestCase.java
===================================================================
--- trunk/framework/test/src/main/java/org/ajax4jsf/tests/AbstractAjax4JsfTestCase.java	2008-01-08 18:55:45 UTC (rev 5201)
+++ trunk/framework/test/src/main/java/org/ajax4jsf/tests/AbstractAjax4JsfTestCase.java	2008-01-08 19:10:56 UTC (rev 5202)
@@ -179,6 +179,9 @@
 		while (resources.hasMoreElements()) {
 			parser.parse((URL) resources.nextElement());
 		}
+		
+		externalContext = new MockExternalContext(externalContext);
+		facesContext.setExternalContext(externalContext);
 	}
 
 	protected WebClient createWebClient() {

Added: trunk/framework/test/src/main/java/org/ajax4jsf/tests/MockExternalContext.java
===================================================================
--- trunk/framework/test/src/main/java/org/ajax4jsf/tests/MockExternalContext.java	                        (rev 0)
+++ trunk/framework/test/src/main/java/org/ajax4jsf/tests/MockExternalContext.java	2008-01-08 19:10:56 UTC (rev 5202)
@@ -0,0 +1,156 @@
+/**
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+package org.ajax4jsf.tests;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+
+import javax.faces.FacesException;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.collections.EnumerationUtils;
+import org.apache.shale.test.mock.MockExternalContext12;
+
+/**
+ * @author Siarhej Chalipau
+ *
+ */
+public class MockExternalContext extends MockExternalContext12 {
+	/*
+	 * Realizes methods unimplemented by org.apache.shale.test.mock.MockExternalContext operations.
+	 *  
+	 */
+	
+	private Map requestParameterValuesMap = null;
+	private Map requestHeaderMap = null;
+	private Map requestHeaderValuesMap = null;
+	private Iterator requestParameterNamesIterator = null;
+	private Set resourcePathsSet = null;
+	
+	public MockExternalContext(org.apache.shale.test.mock.MockExternalContext baseContext) {
+		super((ServletContext)baseContext.getContext(), 
+				(HttpServletRequest)baseContext.getRequest(), (HttpServletResponse)baseContext.getResponse());
+	}
+	
+	public Map getRequestParameterValuesMap() {
+		if (null == requestParameterValuesMap) {
+			requestParameterValuesMap = new HashMap();
+			HttpServletRequest request = (HttpServletRequest)getRequest();
+			for ( Enumeration e = request.getParameterNames(); e.hasMoreElements(); ) {
+				String name = (String) e.nextElement();
+				requestParameterValuesMap.put(name, request.getParameterValues(name));
+			}
+		}
+		return Collections.unmodifiableMap(requestParameterValuesMap);
+	}
+	
+	public void dispatch(String requestURI) 
+		throws IOException, FacesException {
+		//TODO hans, should be implemented
+		super.dispatch(requestURI);
+	}
+	
+	 public Map getRequestHeaderMap() {
+		 if (null == requestHeaderMap) {
+			 requestHeaderMap = new TreeMap(CASE_INSENSITIVE_COMPARATOR);
+			 
+			 HttpServletRequest request = (HttpServletRequest)getRequest();
+			 for ( Enumeration e = request.getHeaderNames(); e.hasMoreElements(); ) {
+				 String name = (String) e.nextElement();
+				 requestHeaderMap.put(name, request.getHeader(name));
+			 }
+		 }
+		 return Collections.unmodifiableMap(requestHeaderMap);
+	 }
+	 
+	 public Map getRequestHeaderValuesMap() {
+		 if (null == requestHeaderValuesMap) {
+			 requestHeaderValuesMap = new TreeMap(CASE_INSENSITIVE_COMPARATOR);
+			 
+			 HttpServletRequest request = (HttpServletRequest)getRequest();
+			 for ( Enumeration e = request.getHeaderNames(); e.hasMoreElements(); ) {
+				 String name = (String) e.nextElement();
+				 requestHeaderValuesMap.put(name, EnumerationUtils.toList(request.getHeaders(name)).toArray());
+			 }
+		 }
+		 return Collections.unmodifiableMap(requestHeaderValuesMap);
+	 }
+	 
+	 public Iterator getRequestParameterNames() {
+		 if (null == requestParameterNamesIterator) {
+			 requestParameterNamesIterator = getRequestParameterValuesMap().keySet().iterator();
+		 }
+		 return requestParameterNamesIterator;
+	 }
+	 
+	 /**
+	 * <p>Add the specified request parameter for this request.</p>
+	 *
+	 * @param key Parameter name
+	 * @param value Parameter value
+	 */
+	public void addRequestParameterMap(String key, String value) {
+		super.addRequestParameterMap(key, value);
+		
+		String [] currentValue = (String[]) getRequestParameterValuesMap().get(key);
+		if (null == currentValue) {
+			requestParameterValuesMap.put(key, new String[] { value });
+		} else {
+			String [] newArray = new String [currentValue.length + 1];
+			System.arraycopy(currentValue, 0, newArray, 0, currentValue.length);
+			newArray[currentValue.length] = value;
+			requestParameterValuesMap.put(key, newArray);
+		}
+	}
+	 
+	 public Set getResourcePaths(String path) {
+		 // TODO hans, should be implemented
+		 if (null == resourcePathsSet) {
+			 resourcePathsSet = new HashSet();			 
+		 }
+		 return resourcePathsSet;
+	 }
+	 
+	 public void redirect(String requestURI) throws IOException {
+		 // TODO hans, should be implemented
+		 super.redirect(requestURI);
+	 }
+	 
+	 protected final static Comparator CASE_INSENSITIVE_COMPARATOR = new Comparator() {
+		 public int compare(Object arg0, Object arg1) {
+			String s0 =  ( String ) arg0; 
+		    String s1 =  ( String ) arg1; 
+		    return s0.toUpperCase().compareTo(s1.toUpperCase()); 
+		}
+	 };
+	 
+}




More information about the richfaces-svn-commits mailing list