[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