Package org.jboss.seam.test.unit.web

Source Code of org.jboss.seam.test.unit.web.MultipartRequestTest

package org.jboss.seam.test.unit.web;

import java.io.IOException;
import java.io.InputStream;
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);
    }

}
TOP

Related Classes of org.jboss.seam.test.unit.web.MultipartRequestTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.