Example usage for org.springframework.mock.web MockHttpServletRequest setContent

List of usage examples for org.springframework.mock.web MockHttpServletRequest setContent

Introduction

In this page you can find the example usage for org.springframework.mock.web MockHttpServletRequest setContent.

Prototype

public void setContent(@Nullable byte[] content) 

Source Link

Document

Set the content of the request body as a byte array.

Usage

From source file:com.boundlessgeo.geoserver.AppIntegrationTest.java

void createMultiPartFormContent(MockHttpServletRequest request, String contentDisposition, String contentType,
        byte[] content) throws Exception {
    MimeMultipart body = new MimeMultipart();
    request.setContentType(body.getContentType());
    InternetHeaders headers = new InternetHeaders();
    headers.setHeader("Content-Disposition", contentDisposition);
    headers.setHeader("Content-Type", contentType);
    body.addBodyPart(new MimeBodyPart(headers, content));

    ByteArrayOutputStream bout = new ByteArrayOutputStream();
    body.writeTo(bout);/*w  ww .j a va  2 s .c o m*/
    request.setContent(bout.toByteArray());
}

From source file:org.n52.sos.service.it.MockHttpClient.java

private MockHttpServletRequest build() {
    try {//w  w w.j  av a2  s .c o m
        final MockHttpServletRequest req = new MockHttpServletRequest(context);
        req.setMethod(method);
        for (String header : headers.keySet()) {
            for (String value : headers.get(header)) {
                req.addHeader(header, value);
            }
        }
        final StringBuilder queryString = new StringBuilder();
        if (query != null && !query.isEmpty()) {
            boolean first = true;
            for (String key : query.keySet()) {
                final Set<String> values = query.get(key);
                req.addParameter(key, values.toArray(new String[values.size()]));
                if (first) {
                    queryString.append("?");
                    first = false;
                } else {
                    queryString.append("&");
                }
                queryString.append(key).append("=");
                Iterator<String> i = values.iterator();
                queryString.append(i.next());
                while (i.hasNext()) {
                    queryString.append(",").append(i.next());
                }
            }
            req.setQueryString(queryString.toString());
        }
        req.setRequestURI(path + queryString.toString());
        if (path == null) {
            path = "/";
        }
        req.setPathInfo(path);
        if (content != null) {
            req.setContent(content.getBytes(MockHttpExecutor.ENCODING));
        }
        return req;
    } catch (UnsupportedEncodingException ex) {
        throw new RuntimeException(ex);
    }
}

From source file:com.alexshabanov.springrestapi.restapitest.RestOperationsTestClient.java

private MockHttpServletRequest toMockHttpServletRequest(URI url, HttpMethod method,
        ClientHttpRequest clientHttpRequest) throws IOException {
    final MockHttpServletRequest mockHttpServletRequest = new MockHttpServletRequest(method.name(),
            url.getPath());/*ww  w .  j  a v a2 s .c o m*/

    // copy headers
    final HttpHeaders headers = clientHttpRequest.getHeaders();
    for (final String headerKey : headers.toSingleValueMap().keySet()) {
        final List<String> headerValues = headers.get(headerKey);
        for (final String headerValue : headerValues) {
            mockHttpServletRequest.addHeader(headerKey, headerValue);
        }
    }

    // copy query parameters
    final String query = clientHttpRequest.getURI().getQuery();
    if (query != null) {
        mockHttpServletRequest.setQueryString(query);
        final String[] queryParameters = query.split("&");
        for (String keyValueParam : queryParameters) {
            final String[] components = keyValueParam.split("=");
            if (components.length == 1) {
                continue; // optional parameter
            }

            Assert.isTrue(components.length == 2,
                    "Can't split query parameters " + keyValueParam + " by key-value pair");
            mockHttpServletRequest.setParameter(components[0], components[1]);
        }
    }

    // copy request body
    // TODO: another byte copying approach here
    // TODO: for now we rely to the fact that request body is always presented as byte array output stream
    final OutputStream requestBodyStream = clientHttpRequest.getBody();
    if (requestBodyStream instanceof ByteArrayOutputStream) {
        mockHttpServletRequest.setContent(((ByteArrayOutputStream) requestBodyStream).toByteArray());
    } else {
        throw new AssertionError("Ooops, client http request has non-ByteArrayOutputStream body");
    }

    return mockHttpServletRequest;
}

From source file:com.liferay.document.library.webdav.test.BaseWebDAVTestCase.java

public Tuple service(String method, String path, Map<String, String> headers, byte[] data) {

    WebDAVServlet webDAVServlet = new WebDAVServlet();

    String requestURI = _CONTEXT_PATH + _SERVLET_PATH + _PATH_INFO_PREFACE + path;

    MockHttpServletRequest mockHttpServletRequest = new MockHttpServletRequest(method, requestURI);

    mockHttpServletRequest.setContextPath(_CONTEXT_PATH);
    mockHttpServletRequest.setServletPath(_SERVLET_PATH);
    mockHttpServletRequest.setPathInfo(_PATH_INFO_PREFACE + path);

    try {/*from   w w w. j  a  v a  2 s  .c o m*/
        mockHttpServletRequest.setRemoteUser(String.valueOf(TestPropsValues.getUserId()));
    } catch (Exception e) {
        Assert.fail("User ID cannot be initialized");
    }

    if (headers == null) {
        headers = new HashMap<>();
    }

    headers.put(HttpHeaders.USER_AGENT, getUserAgent());

    try {
        throw new Exception();
    } catch (Exception e) {
        StackTraceElement[] stackTraceElements = e.getStackTrace();

        for (StackTraceElement stackTraceElement : stackTraceElements) {
            String methodName = stackTraceElement.getMethodName();

            if (methodName.equals("setUp") || methodName.equals("tearDown") || methodName.startsWith("test")) {

                String testName = StringUtil.extractLast(stackTraceElement.getClassName(), CharPool.PERIOD);

                testName = StringUtil.removeSubstrings(testName, "WebDAV", "Test");

                headers.put("X-Litmus", testName + ": (" + stackTraceElement.getMethodName() + ":"
                        + stackTraceElement.getLineNumber() + ")");

                break;
            }
        }
    }

    if (data != null) {
        mockHttpServletRequest.setContent(data);

        String contentType = headers.remove(HttpHeaders.CONTENT_TYPE);

        if (contentType != null) {
            mockHttpServletRequest.setContentType(contentType);
        } else {
            mockHttpServletRequest.setContentType(ContentTypes.TEXT_PLAIN);
        }
    }

    for (Map.Entry<String, String> entry : headers.entrySet()) {
        String key = entry.getKey();
        String value = entry.getValue();

        mockHttpServletRequest.addHeader(key, value);
    }

    try {
        MockHttpServletResponse mockHttpServletResponse = new MockHttpServletResponse();

        webDAVServlet.service(mockHttpServletRequest, mockHttpServletResponse);

        int statusCode = mockHttpServletResponse.getStatus();
        byte[] responseBody = mockHttpServletResponse.getContentAsByteArray();

        Map<String, String> responseHeaders = new HashMap<>();

        for (String name : mockHttpServletResponse.getHeaderNames()) {
            responseHeaders.put(name, mockHttpServletResponse.getHeader(name));
        }

        return new Tuple(statusCode, responseBody, responseHeaders);
    } catch (Exception e) {
        e.printStackTrace();
    }

    return null;
}

From source file:org.pentaho.platform.dataaccess.datasource.wizard.csv.FileUploadServiceTest.java

@Test
public void testUpload() throws Exception {

    PentahoSystemHelper.init();/*from   ww  w  . j a v a  2 s  .  c om*/
    StandaloneSession pSession = new StandaloneSession("12345678901234567890");
    PentahoSessionHolder.setSession(pSession);

    UUID uuid = UUIDUtil.getUUID();
    String fileName = uuid.toString();
    MockHttpSession session = new MockHttpSession(null, "12345678901234567890"); //$NON-NLS-1$
    MockHttpServletRequest request = new MockHttpServletRequest("POST", ""); //$NON-NLS-1$ //$NON-NLS-2$
    request.setSession(session);
    request.addParameter("file_name", fileName); //$NON-NLS-1$
    request.addParameter("mark_temporary", "true"); //$NON-NLS-1$ //$NON-NLS-2$
    request.setContentType("multipart/form-data; boundary=boundary"); //$NON-NLS-1$
    StringBuffer content = new StringBuffer();
    content.append("--boundary\r\n"); //$NON-NLS-1$
    content.append(
            "Content-Disposition: form-data; name=uploadFormElement; filename=test_file.csv\r\nContent-Type: multipart/form-data\r\n\r\n"); //$NON-NLS-1$ 

    content.append("REGIONC,NWEIGHT,HD65,xdate,Location,charlen,xfactor,Flag\r\n"); //$NON-NLS-1$
    content.append("3,25677.96525,1231,1/1/10,Afghanistan,11,111.9090909,0\r\n"); //$NON-NLS-1$
    content.append("4,24261.81026,1663,1/2/10,Albania,7,237.5714286,0\r\n"); //$NON-NLS-1$
    content.append("2,31806.29502,5221,1/3/10,Algeria,7,745.8571429,1\r\n");//$NON-NLS-1$
    content.append("4,22345.39749,5261,1/4/10,American Samoa,14,375.7857143,1\r\n");//$NON-NLS-1$
    content.append("4,22345.39749,5261,1/4/10,American Samoa,14,375.7857143,1\r\n");//$NON-NLS-1$
    content.append("3,25677.96525,1231,1/1/10,Afghanistan,11,111.9090909,0\r\n");//$NON-NLS-1$
    content.append("4,24261.81026,1663,1/2/10,Albania,7,237.5714286,0\r\n");//$NON-NLS-1$
    content.append("2,31806.29502,5221,1/3/10,Algeria,7,745.8571429,1\r\n");//$NON-NLS-1$
    content.append("4,22345.39749,5261,1/4/10,American Samoa,14,375.7857143,1\r\n");//$NON-NLS-1$

    content.append("--boundary--\r\n"); //$NON-NLS-1$
    request.setContent(content.toString().getBytes());
    UploadFileDebugServlet uploadServlet = new UploadFileDebugServlet();
    MockHttpServletResponse response = new MockHttpServletResponse();
    uploadServlet.service(request, response);

    response.getWriter().flush();
    response.getWriter().close();
    fileName = response.getContentAsString();
    String path = PentahoSystem.getApplicationContext().getSolutionPath(TMP_FILE_PATH);

    String filenameWithPath = path + File.separatorChar + fileName;
    File file = new File(filenameWithPath);
    assertTrue(file.exists());
    if (file.exists()) {
        file.delete();
    }
}

From source file:org.alfresco.rest.framework.tests.core.SerializeTests.java

@Test
public void testInvokeMultiPartEntity() throws IOException {
    ResourceWithMetadata entityResource = locator.locateEntityResource(api, "multiparttest", HttpMethod.POST);
    assertNotNull(entityResource);// www .ja v  a 2  s  . co  m
    MultiPartResourceAction.Create<?> resource = (MultiPartResourceAction.Create<?>) entityResource
            .getResource();

    File file = TempFileProvider.createTempFile("ParamsExtractorTests-", ".txt");
    PrintWriter writer = new PrintWriter(file);
    writer.println("Multipart Mock test2.");
    writer.close();

    MultiPartRequest reqBody = MultiPartBuilder.create()
            .setFileData(new FileData(file.getName(), file, MimetypeMap.MIMETYPE_TEXT_PLAIN)).build();

    MockHttpServletRequest mockRequest = new MockHttpServletRequest("POST", "");
    mockRequest.setContent(reqBody.getBody());
    mockRequest.setContentType(reqBody.getContentType());

    String out = writeResponse(helper.processAdditionsToTheResponse(mock(WebScriptResponse.class), api, null,
            NOT_USED, resource.create(new FormData(mockRequest), NOT_USED, callBack)));
    assertTrue("There must be json output", StringUtils.startsWith(out, "{\"entry\":"));
}

From source file:org.apache.archiva.webdav.AbstractRepositoryServletTestCase.java

protected WebResponse getWebResponse(WebRequest webRequest) //, boolean followRedirect )
        throws Exception {

    MockHttpServletRequest request = new MockHttpServletRequest();
    request.setRequestURI(webRequest.getUrl().getPath());
    request.addHeader("User-Agent", "Apache Archiva unit test");

    request.setMethod(webRequest.getHttpMethod().name());

    if (webRequest.getHttpMethod() == HttpMethod.PUT) {
        PutMethodWebRequest putRequest = PutMethodWebRequest.class.cast(webRequest);
        request.setContentType(putRequest.contentType);
        request.setContent(IOUtils.toByteArray(putRequest.inputStream));
    }/*from ww  w  .  j  av  a  2  s.  c om*/

    if (webRequest instanceof MkColMethodWebRequest) {
        request.setMethod("MKCOL");
    }

    final MockHttpServletResponse response = execute(request);

    if (response.getStatus() == HttpServletResponse.SC_MOVED_PERMANENTLY
            || response.getStatus() == HttpServletResponse.SC_MOVED_TEMPORARILY) {
        String location = response.getHeader("Location");
        log.debug("follow redirect to {}", location);
        return getWebResponse(new GetMethodWebRequest(location));
    }

    return new WebResponse(null, null, 1) {
        @Override
        public String getContentAsString() {
            try {
                return response.getContentAsString();
            } catch (UnsupportedEncodingException e) {
                throw new RuntimeException(e.getMessage(), e);
            }
        }

        @Override
        public int getStatusCode() {
            return response.getStatus();
        }

        @Override
        public String getResponseHeaderValue(String headerName) {
            return response.getHeader(headerName);
        }
    };
}

From source file:org.apache.archiva.webdav.RepositoryServletSecurityTest.java

@Test
public void testPutWithInvalidUserAndGuestHasNoWriteAccess() throws Exception {

    InputStream is = getClass().getResourceAsStream("/artifact.jar");
    assertNotNull("artifact.jar inputstream", is);

    servlet.setDavSessionProvider(davSessionProvider);

    AuthenticationResult result = new AuthenticationResult();

    EasyMock.expect(httpAuth.getAuthenticationResult(anyObject(HttpServletRequest.class),
            anyObject(HttpServletResponse.class))).andReturn(result);

    servletAuth.isAuthenticated(EasyMock.anyObject(HttpServletRequest.class),
            EasyMock.anyObject(AuthenticationResult.class));
    EasyMock.expectLastCall().andThrow(new AuthenticationException("Authentication error"));

    servletAuth.isAuthorized("guest", "internal", ArchivaRoleConstants.OPERATION_REPOSITORY_UPLOAD);

    EasyMock.expectLastCall().andThrow(new UnauthorizedException("'guest' has no write access to repository"));

    httpAuthControl.replay();//  w  ww .j  a v a2s  .c  o m
    servletAuthControl.replay();
    MockHttpServletRequest mockHttpServletRequest = new MockHttpServletRequest();
    mockHttpServletRequest.addHeader("User-Agent", "foo");
    mockHttpServletRequest.setMethod("PUT");
    mockHttpServletRequest.setRequestURI("/repository/internal/path/to/artifact.jar");
    mockHttpServletRequest.setContent(IOUtils.toByteArray(is));
    mockHttpServletRequest.setContentType("application/octet-stream");

    MockHttpServletResponse mockHttpServletResponse = new MockHttpServletResponse();

    servlet.service(mockHttpServletRequest, mockHttpServletResponse);

    httpAuthControl.verify();
    servletAuthControl.verify();

    assertEquals(HttpServletResponse.SC_UNAUTHORIZED, mockHttpServletResponse.getStatus());
}

From source file:org.apache.archiva.webdav.RepositoryServletSecurityTest.java

@Test
public void testPutWithInvalidUserAndGuestHasWriteAccess() throws Exception {

    servlet.setDavSessionProvider(davSessionProvider);

    ArchivaDavResourceFactory archivaDavResourceFactory = (ArchivaDavResourceFactory) servlet
            .getResourceFactory();//from w w w.ja v a 2  s  .  c o m
    archivaDavResourceFactory.setHttpAuth(httpAuth);
    archivaDavResourceFactory.setServletAuth(servletAuth);

    servlet.setResourceFactory(archivaDavResourceFactory);

    AuthenticationResult result = new AuthenticationResult();

    EasyMock.expect(httpAuth.getAuthenticationResult(anyObject(HttpServletRequest.class),
            anyObject(HttpServletResponse.class))).andReturn(result);

    EasyMock.expect(servletAuth.isAuthenticated(anyObject(HttpServletRequest.class),
            anyObject(AuthenticationResult.class)))
            .andThrow(new AuthenticationException("Authentication error"));

    EasyMock.expect(
            servletAuth.isAuthorized("guest", "internal", ArchivaRoleConstants.OPERATION_REPOSITORY_UPLOAD))
            .andReturn(true);

    // ArchivaDavResourceFactory#isAuthorized()
    SecuritySession session = new DefaultSecuritySession();

    EasyMock.expect(httpAuth.getAuthenticationResult(anyObject(HttpServletRequest.class),
            anyObject(HttpServletResponse.class))).andReturn(result);

    EasyMock.expect(httpAuth.getSecuritySession(anyObject(HttpSession.class))).andReturn(session);

    EasyMock.expect(servletAuth.isAuthenticated(anyObject(HttpServletRequest.class), eq(result)))
            .andThrow(new AuthenticationException("Authentication error"));

    EasyMock.expect(httpAuth.getSessionUser(anyObject(HttpSession.class))).andReturn(null);

    // check if guest has write access
    EasyMock.expect(
            servletAuth.isAuthorized("guest", "internal", ArchivaRoleConstants.OPERATION_REPOSITORY_UPLOAD))
            .andReturn(true);

    httpAuthControl.replay();
    servletAuthControl.replay();

    InputStream is = getClass().getResourceAsStream("/artifact.jar");
    assertNotNull("artifact.jar inputstream", is);

    MockHttpServletRequest mockHttpServletRequest = new MockHttpServletRequest();
    mockHttpServletRequest.addHeader("User-Agent", "foo");
    mockHttpServletRequest.setMethod("PUT");
    mockHttpServletRequest.setRequestURI("/repository/internal/path/to/artifact.jar");
    mockHttpServletRequest.setContent(IOUtils.toByteArray(is));
    mockHttpServletRequest.setContentType("application/octet-stream");

    MockHttpServletResponse mockHttpServletResponse = new MockHttpServletResponse();

    servlet.service(mockHttpServletRequest, mockHttpServletResponse);

    httpAuthControl.verify();
    servletAuthControl.verify();

    assertEquals(HttpServletResponse.SC_CREATED, mockHttpServletResponse.getStatus());
}

From source file:org.apache.archiva.webdav.RepositoryServletSecurityTest.java

@Test
public void testPutWithValidUserWithNoWriteAccess() throws Exception {

    servlet.setDavSessionProvider(davSessionProvider);

    ArchivaDavResourceFactory archivaDavResourceFactory = (ArchivaDavResourceFactory) servlet
            .getResourceFactory();// w  w  w .j a  v  a  2s  .  co  m
    archivaDavResourceFactory.setHttpAuth(httpAuth);
    archivaDavResourceFactory.setServletAuth(servletAuth);
    servlet.setResourceFactory(archivaDavResourceFactory);

    AuthenticationResult result = new AuthenticationResult();

    EasyMock.expect(httpAuth.getAuthenticationResult(anyObject(HttpServletRequest.class),
            anyObject(HttpServletResponse.class))).andReturn(result);

    EasyMock.expect(servletAuth.isAuthenticated(anyObject(HttpServletRequest.class),
            anyObject(AuthenticationResult.class))).andReturn(true);

    // ArchivaDavResourceFactory#isAuthorized()
    SecuritySession session = new DefaultSecuritySession();

    EasyMock.expect(httpAuth.getAuthenticationResult(anyObject(HttpServletRequest.class),
            anyObject(HttpServletResponse.class))).andReturn(result);

    MockHttpServletRequest mockHttpServletRequest = new MockHttpServletRequest();

    EasyMock.expect(httpAuth.getSecuritySession(mockHttpServletRequest.getSession(true))).andReturn(session);

    EasyMock.expect(httpAuth.getSessionUser(mockHttpServletRequest.getSession())).andReturn(new SimpleUser());

    EasyMock.expect(servletAuth.isAuthenticated(anyObject(HttpServletRequest.class), eq(result)))
            .andReturn(true);

    EasyMock.expect(servletAuth.isAuthorized(anyObject(HttpServletRequest.class), eq(session), eq("internal"),
            eq(ArchivaRoleConstants.OPERATION_REPOSITORY_UPLOAD)))
            .andThrow(new UnauthorizedException("User not authorized"));
    httpAuthControl.replay();
    servletAuthControl.replay();

    InputStream is = getClass().getResourceAsStream("/artifact.jar");
    assertNotNull("artifact.jar inputstream", is);

    mockHttpServletRequest.addHeader("User-Agent", "foo");
    mockHttpServletRequest.setMethod("PUT");
    mockHttpServletRequest.setRequestURI("/repository/internal/path/to/artifact.jar");
    mockHttpServletRequest.setContent(IOUtils.toByteArray(is));
    mockHttpServletRequest.setContentType("application/octet-stream");

    MockHttpServletResponse mockHttpServletResponse = new MockHttpServletResponse();

    servlet.service(mockHttpServletRequest, mockHttpServletResponse);

    httpAuthControl.verify();
    servletAuthControl.verify();

    assertEquals(HttpServletResponse.SC_UNAUTHORIZED, mockHttpServletResponse.getStatus());
}