[jboss-cvs] jboss-seam/src/main/org/jboss/seam/mock ...
Gavin King
gavin.king at jboss.com
Mon Jul 16 11:15:01 EDT 2007
User: gavin
Date: 07/07/16 11:15:01
Modified: src/main/org/jboss/seam/mock BaseSeamTest.java
MockHttpServletRequest.java
Added: src/main/org/jboss/seam/mock MockFilterConfig.java
Log:
wrap seam filters around seamtest requests
Revision Changes Path
1.23 +40 -9 jboss-seam/src/main/org/jboss/seam/mock/BaseSeamTest.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: BaseSeamTest.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/mock/BaseSeamTest.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- BaseSeamTest.java 15 Jul 2007 21:32:01 -0000 1.22
+++ BaseSeamTest.java 16 Jul 2007 15:15:01 -0000 1.23
@@ -19,8 +19,14 @@
import javax.faces.event.PhaseId;
import javax.naming.InitialContext;
import javax.naming.NamingException;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.transaction.UserTransaction;
@@ -43,6 +49,7 @@
import org.jboss.seam.jsf.SeamApplication;
import org.jboss.seam.jsf.SeamPhaseListener;
import org.jboss.seam.pageflow.Pageflow;
+import org.jboss.seam.servlet.SeamFilter;
import org.jboss.seam.servlet.ServletSessionMap;
import org.jboss.seam.transaction.Transaction;
import org.jboss.seam.util.Naming;
@@ -64,6 +71,7 @@
private SeamPhaseListener phases;
private MockHttpSession session;
private Map<String, Map> conversationViewRootAttributes;
+ private Filter seamFilter;
protected boolean isSessionInvalid()
{
@@ -183,6 +191,7 @@
private boolean invokeApplicationComplete;
private HttpServletRequest request;
+ private HttpServletResponse response;
private MockFacesContext facesContext;
private MockExternalContext externalContext;
private Map<String, Object> pageParameters = new HashMap<String, Object>();
@@ -485,10 +494,23 @@
init();
beforeRequest();
setStandardJspVariables();
+ seamFilter.doFilter(request, response, new FilterChain() {
+ public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException
+ {
+ try
+ {
if ( emulateJsfLifecycle() )
{
saveConversationViewRoot();
}
+ }
+ catch (Exception e)
+ {
+ throw new ServletException(e);
+ }
+ }
+ } );
+ seamFilter.destroy();
afterRequest();
return conversationId;
}
@@ -516,8 +538,9 @@
protected void init()
{
Cookie[] cookieArray = getCookies().toArray( new Cookie[]{} );
- request = new MockHttpServletRequest(session, getPrincipalName(), getPrincipalRoles(), cookieArray);
- externalContext = new MockExternalContext(servletContext, request);
+ request = new MockHttpServletRequest(session, getPrincipalName(), getPrincipalRoles(), cookieArray, isGetRequest() ? "GET" : "POST");
+ response = new MockHttpServletResponse();
+ externalContext = new MockExternalContext(servletContext, request, response);
facesContext = new MockFacesContext(externalContext, application);
facesContext.setCurrent();
}
@@ -865,20 +888,28 @@
new Initialization(servletContext).create().init();
( (Init) servletContext.getAttribute( Seam.getComponentName(Init.class) ) ).setDebug(false);
conversationViewRootAttributes = new HashMap<String, Map>();
+ seamFilter = createSeamFilter();
+
}
public void cleanup() throws Exception
{
+ seamFilter.destroy();
ServletLifecycle.endApplication();
conversationViewRootAttributes = null;
}
+ protected Filter createSeamFilter() throws ServletException
+ {
+ SeamFilter seamFilter = new SeamFilter();
+ seamFilter.init( new MockFilterConfig(servletContext) );
+ return seamFilter;
+ }
+
/**
* Override to set up any servlet context attributes.
*/
- public void initServletContext(Map initParams)
- {
- }
+ public void initServletContext(Map initParams) {}
protected InitialContext getInitialContext() throws NamingException
{
1.19 +5 -5 jboss-seam/src/main/org/jboss/seam/mock/MockHttpServletRequest.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: MockHttpServletRequest.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/mock/MockHttpServletRequest.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- MockHttpServletRequest.java 29 Jun 2007 00:41:37 -0000 1.18
+++ MockHttpServletRequest.java 16 Jul 2007 15:15:01 -0000 1.19
@@ -29,7 +29,6 @@
/**
* @author Gavin King
* @author <a href="mailto:theute at jboss.org">Thomas Heute</a>
- * @version $Revision: 1.18 $
*/
public class MockHttpServletRequest implements HttpServletRequest
{
@@ -41,6 +40,7 @@
private String principalName;
private Set<String> principalRoles;
private Cookie[] cookies;
+ private String method;
public MockHttpServletRequest(HttpSession session)
{
@@ -49,15 +49,16 @@
public MockHttpServletRequest(HttpSession session, String principalName, Set<String> principalRoles)
{
- this(session, principalName, principalRoles, new Cookie[] {});
+ this(session, principalName, principalRoles, new Cookie[] {}, null);
}
- public MockHttpServletRequest(HttpSession session, String principalName, Set<String> principalRoles, Cookie[] cookies)
+ public MockHttpServletRequest(HttpSession session, String principalName, Set<String> principalRoles, Cookie[] cookies, String method)
{
this.session = session;
this.principalName = principalName;
this.principalRoles = principalRoles;
this.cookies = cookies;
+ this.method = method;
// The 1.2 RI NPEs if this header isn't present
headers.put("Accept", new String[0]);
}
@@ -111,8 +112,7 @@
public String getMethod()
{
- //TODO
- return null;
+ return method;
}
public String getPathInfo()
1.1 date: 2007/07/16 15:15:01; author: gavin; state: Exp;jboss-seam/src/main/org/jboss/seam/mock/MockFilterConfig.java
Index: MockFilterConfig.java
===================================================================
package org.jboss.seam.mock;
import java.util.Collections;
import java.util.Enumeration;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import org.jboss.seam.util.IteratorEnumeration;
/**
* @author Gavin King
*/
public class MockFilterConfig implements FilterConfig
{
private ServletContext servletContext;
public MockFilterConfig(ServletContext servletContext)
{
this.servletContext = servletContext;
}
public String getFilterName()
{
return "Seam Filter";
}
public ServletContext getServletContext()
{
return servletContext;
}
public String getInitParameter(String name)
{
return null;
}
public Enumeration getInitParameterNames()
{
return new IteratorEnumeration( Collections.EMPTY_LIST.iterator() );
}
}
More information about the jboss-cvs-commits
mailing list