[jboss-cvs] jboss-seam/src/test/unit/org/jboss/seam/test/unit/web ...

Peter Muir peter at bleepbleep.org.uk
Mon Oct 15 07:02:48 EDT 2007


  User: pmuir   
  Date: 07/10/15 07:02:48

  Added:       src/test/unit/org/jboss/seam/test/unit/web 
                        MultipartRequestTest.java
  Log:
  Start of a test for multipart requests
  
  Revision  Changes    Path
  1.1      date: 2007/10/15 11:02:48;  author: pmuir;  state: Exp;jboss-seam/src/test/unit/org/jboss/seam/test/unit/web/MultipartRequestTest.java
  
  Index: MultipartRequestTest.java
  ===================================================================
  package org.jboss.seam.test.unit.web;
  
  import java.io.IOException;
  import java.io.InputStream;
  import java.util.Enumeration;
  import java.util.HashSet;
  
  import javax.servlet.FilterChain;
  import javax.servlet.ServletContext;
  import javax.servlet.ServletException;
  import javax.servlet.ServletInputStream;
  import javax.servlet.ServletRequest;
  import javax.servlet.ServletResponse;
  import javax.servlet.http.Cookie;
  import javax.servlet.http.HttpSession;
  
  import org.jboss.seam.mock.MockHttpServletRequest;
  import org.jboss.seam.mock.MockHttpServletResponse;
  import org.jboss.seam.mock.MockHttpSession;
  import org.jboss.seam.mock.MockServletContext;
  import org.jboss.seam.util.Resources;
  import org.jboss.seam.web.MultipartFilter;
  import org.jboss.seam.web.MultipartRequest;
  import org.testng.annotations.Test;
  
  /**
   * @author Pete Muir
   *
   */
  public class MultipartRequestTest
  {
      
      @Test
      public void testMultipartRequest() throws IOException, ServletException
      {
          MultipartFilter filter = new MultipartFilter();
          ServletContext context = new MockServletContext();
          HttpSession session = new MockHttpSession(context);
          MockHttpServletRequest request = new MockHttpServletRequest(session, "Pete", new HashSet<String>(), new Cookie[0], "post") 
          {
              
              private final InputStream is = Resources.getResourceAsStream("/META-INF/seam.properties", null);
              
              @Override
              public String getContentType()
              {
                  return "multipart/test; boundary=foo";
              }
              
              @Override
              public ServletInputStream getInputStream() throws IOException
              {
                  return new ServletInputStream() {
  
                      @Override
                      public int read() throws IOException
                      {
                          return is.read();
                      }
                      
                      @Override
                      public int read(byte[] b) throws IOException
                      {
                          return is.read(b);
                      }
                      
                  };
              }
              
          };
          // Add some parameters to test passthrough
          String [] fooParams = {"bar"}; 
          request.getParameterMap().put("foo", fooParams);
          ServletResponse response = new MockHttpServletResponse();
          FilterChain chain = new FilterChain() 
          {
  
              public void doFilter(ServletRequest request, ServletResponse response)
                      throws IOException, ServletException
              {
                  assert request instanceof MultipartRequest;
                  MultipartRequest multipartRequest = (MultipartRequest) request;
                  assert multipartRequest.getParameterMap().containsKey("foo");
  				// Test passthrough parameters
                  assert multipartRequest.getParameterValues("foo").length == 1;
                  assert "bar".equals(multipartRequest.getParameterValues("foo")[0]);
                  
                  // TODO Test a multipart request
              }
              
          };
          filter.doFilter(request, response, chain);
      }
  
  }
  
  
  



More information about the jboss-cvs-commits mailing list