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

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

Introduction

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

Prototype

public void addHeader(String name, Object value) 

Source Link

Document

Add an HTTP header entry for the given name.

Usage

From source file:org.apache.struts2.interceptor.FileUploadInterceptorTest.java

public void testInvalidContentTypeMultipartRequest() throws Exception {
    MockHttpServletRequest req = new MockHttpServletRequest();

    req.setCharacterEncoding("text/html");
    req.setContentType("text/xml"); // not a multipart contentype
    req.addHeader("Content-type", "multipart/form-data");

    MyFileupAction action = new MyFileupAction();
    MockActionInvocation mai = new MockActionInvocation();
    mai.setAction(action);//w  w w  . ja va 2  s .  co  m
    mai.setResultCode("success");
    mai.setInvocationContext(ActionContext.getContext());

    Map param = new HashMap();
    ActionContext.getContext().setParameters(param);
    ActionContext.getContext().put(ServletActionContext.HTTP_REQUEST, createMultipartRequest(req, 2000));

    interceptor.intercept(mai);

    assertTrue(action.hasErrors());
}

From source file:org.apache.struts2.interceptor.FileUploadInterceptorTest.java

public void testSuccessUploadOfATextFileMultipartRequest() throws Exception {
    MockHttpServletRequest req = new MockHttpServletRequest();
    req.setCharacterEncoding("text/html");
    req.setContentType("multipart/form-data; boundary=---1234");
    req.addHeader("Content-type", "multipart/form-data");

    // inspired by the unit tests for jakarta commons fileupload
    String content = ("-----1234\r\n"
            + "Content-Disposition: form-data; name=\"file\"; filename=\"deleteme.txt\"\r\n"
            + "Content-Type: text/html\r\n" + "\r\n" + "Unit test of FileUploadInterceptor" + "\r\n"
            + "-----1234--\r\n");
    req.setContent(content.getBytes("US-ASCII"));

    MyFileupAction action = new MyFileupAction();

    MockActionInvocation mai = new MockActionInvocation();
    mai.setAction(action);//from w  w  w  .  j  a v a 2  s. c  o  m
    mai.setResultCode("success");
    mai.setInvocationContext(ActionContext.getContext());
    Map<String, Object> param = new HashMap<String, Object>();
    ActionContext.getContext().setParameters(param);
    ActionContext.getContext().put(ServletActionContext.HTTP_REQUEST, createMultipartRequest(req, 2000));

    interceptor.intercept(mai);

    assertTrue(!action.hasErrors());

    assertTrue(param.size() == 3);
    File[] files = (File[]) param.get("file");
    String[] fileContentTypes = (String[]) param.get("fileContentType");
    String[] fileRealFilenames = (String[]) param.get("fileFileName");

    assertNotNull(files);
    assertNotNull(fileContentTypes);
    assertNotNull(fileRealFilenames);
    assertTrue(files.length == 1);
    assertTrue(fileContentTypes.length == 1);
    assertTrue(fileRealFilenames.length == 1);
    assertEquals("text/html", fileContentTypes[0]);
    assertNotNull("deleteme.txt", fileRealFilenames[0]);
}

From source file:org.apache.struts2.interceptor.FileUploadInterceptorTest.java

/**
 * tests whether with multiple files sent with the same name, the ones with forbiddenTypes (see
 * FileUploadInterceptor.setAllowedTypes(...) ) are sorted out.
 *
 * @throws Exception/*w w  w  .  j  ava  2s  .  c  o  m*/
 */
public void testMultipleAccept() throws Exception {
    final String htmlContent = "<html><head></head><body>html content</body></html>";
    final String plainContent = "plain content";
    final String bondary = "simple boundary";
    final String endline = "\r\n";

    MockHttpServletRequest req = new MockHttpServletRequest();
    req.setCharacterEncoding("text/html");
    req.setMethod("POST");
    req.setContentType("multipart/form-data; boundary=" + bondary);
    req.addHeader("Content-type", "multipart/form-data");
    StringBuilder content = new StringBuilder(128);
    content.append(encodeTextFile(bondary, endline, "file", "test.html", "text/plain", plainContent));
    content.append(encodeTextFile(bondary, endline, "file", "test1.html", "text/html", htmlContent));
    content.append(encodeTextFile(bondary, endline, "file", "test2.html", "text/html", htmlContent));
    content.append(endline);
    content.append(endline);
    content.append(endline);
    content.append("--");
    content.append(bondary);
    content.append("--");
    content.append(endline);
    req.setContent(content.toString().getBytes());

    assertTrue(ServletFileUpload.isMultipartContent(req));

    MyFileupAction action = new MyFileupAction();
    MockActionInvocation mai = new MockActionInvocation();
    mai.setAction(action);
    mai.setResultCode("success");
    mai.setInvocationContext(ActionContext.getContext());
    Map<String, Object> param = new HashMap<String, Object>();
    ActionContext.getContext().setParameters(param);
    ActionContext.getContext().put(ServletActionContext.HTTP_REQUEST, createMultipartRequest(req, 2000));

    interceptor.setAllowedTypes("text/html");
    interceptor.intercept(mai);

    assertEquals(3, param.size());
    File[] files = (File[]) param.get("file");
    String[] fileContentTypes = (String[]) param.get("fileContentType");
    String[] fileRealFilenames = (String[]) param.get("fileFileName");

    assertNotNull(files);
    assertNotNull(fileContentTypes);
    assertNotNull(fileRealFilenames);
    assertEquals("files accepted ", 2, files.length);
    assertEquals(2, fileContentTypes.length);
    assertEquals(2, fileRealFilenames.length);
    assertEquals("text/html", fileContentTypes[0]);
    assertNotNull("test1.html", fileRealFilenames[0]);
}

From source file:org.artifactory.util.HttpUtilsTest.java

public void getServletContextUrlWithBaseUrlAndOverridingHeader() throws EncoderException {
    String requestUrl = "http://lala.land.com";
    setBaseUrl("https://custombaseurl.net");
    MockHttpServletRequest request = new MockHttpServletRequest("GET", requestUrl);
    request.setServerName("lala.land.com");
    request.addHeader(ArtifactoryRequest.ARTIFACTORY_OVERRIDE_BASE_URL, "http://originartifactory.net");
    String servletContextUrl = HttpUtils.getServletContextUrl(request);
    assertEquals(servletContextUrl, "http://originartifactory.net");
}

From source file:org.finra.dm.app.AbstractAppTest.java

protected MockHttpServletRequest getRequestWithHeaders(String userId, String firstName, String lastName,
        String email, String memberOf, String sessionInitTime) {
    MockHttpServletRequest request = new MockHttpServletRequest();

    if (StringUtils.isNotBlank(userId)) {
        request.addHeader("userId", userId);
    }/*from  w  w  w . j  a v a  2s. com*/
    if (StringUtils.isNotBlank(firstName)) {
        request.addHeader("firstName", firstName);
    }
    if (StringUtils.isNotBlank(lastName)) {
        request.addHeader("lastName", lastName);
    }
    if (StringUtils.isNotBlank(email)) {
        request.addHeader("email", email);
    }
    if (StringUtils.isNotBlank(memberOf)) {
        request.addHeader("roles", memberOf);
    }
    if (StringUtils.isNotBlank(sessionInitTime)) {
        request.addHeader("sessionInitTime", sessionInitTime);
    }

    return request;
}

From source file:org.geogig.geoserver.functional.GeoServerTestSupport.java

/**
 * Issue a POST request to the provided URL with the given file passed as form data.
 *
 * @param resourceUri the url to issue the request to
 * @param formFieldName the form field name for the file to be posted
 * @param file the file to post/*from  w  w  w.  java 2  s. co m*/
 *
 * @return the response to the request
 */
public MockHttpServletResponse postFile(String resourceUri, String formFieldName, File file) throws Exception {

    try (FileInputStream fis = new FileInputStream(file)) {
        MockMultipartFile mFile = new MockMultipartFile(formFieldName, fis);
        MockMultipartHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders
                .fileUpload(new URI(resourceUri)).file(mFile);

        MockHttpServletRequest request = requestBuilder.buildRequest(applicationContext.getServletContext());

        /**
         * Duplicated from GeoServerSystemTestSupport#createRequest to do the same work on the
         * MockMultipartHttpServletRequest
         */
        request.setScheme("http");
        request.setServerName("localhost");
        request.setServerPort(8080);
        request.setContextPath("/geoserver");
        request.setRequestURI(
                ResponseUtils.stripQueryString(ResponseUtils.appendPath("/geoserver/", resourceUri)));
        // request.setRequestURL(ResponseUtils.appendPath("http://localhost:8080/geoserver",
        // path ) );
        request.setQueryString(ResponseUtils.getQueryString(resourceUri));
        request.setRemoteAddr("127.0.0.1");
        request.setServletPath(ResponseUtils.makePathAbsolute(ResponseUtils.stripRemainingPath(resourceUri)));
        request.setPathInfo(ResponseUtils.makePathAbsolute(
                ResponseUtils.stripBeginningPath(ResponseUtils.stripQueryString(resourceUri))));
        request.addHeader("Host", "localhost:8080");

        // deal with authentication
        if (username != null) {
            String token = username + ":";
            if (password != null) {
                token += password;
            }
            request.addHeader("Authorization", "Basic " + new String(Base64.encodeBase64(token.getBytes())));
        }

        kvp(request, resourceUri);

        request.setUserPrincipal(null);
        /**
         * End duplication
         */

        return dispatch(request);
    }
}

From source file:org.geogig.geoserver.functional.GeoServerTestSupport.java

/**
 * Issue a POST request to the provided URL with the given content.
 *
 * @param contentType the content type of the data
 * @param resourceUri the url to issue the request to
 * @param postContent the content to be posted
 *
 * @return the response to the request//from w ww.  ja  v a 2s  .com
 */
public MockHttpServletResponse postContent(String contentType, String resourceUri, String postContent)
        throws Exception {

    MockHttpServletRequest req = createRequest(resourceUri);

    req.setContentType(contentType);
    req.addHeader("Content-Type", contentType);
    req.setMethod("POST");
    req.setContent(postContent == null ? null : postContent.getBytes());

    return dispatch(req);
}

From source file:org.geoserver.importer.rest.ImportTaskControllerTest.java

private Integer putZip(String path) throws Exception {
    File file = new File(path);
    InputStream stream;/*from www  .j a v  a 2  s  .co  m*/
    if (file.exists()) {
        stream = new FileInputStream(file);
    } else {
        stream = ImporterTestSupport.class.getResourceAsStream("../test-data/" + path);
    }
    MockHttpServletResponse resp = postAsServletResponse(RestBaseController.ROOT_PATH + "/imports", "");
    assertEquals(201, resp.getStatus());
    assertNotNull(resp.getHeader("Location"));

    String[] split = resp.getHeader("Location").split("/");
    Integer id = Integer.parseInt(split[split.length - 1]);
    ImportContext context = importer.getContext(id);

    MockHttpServletRequest req = createRequest(
            RestBaseController.ROOT_PATH + "/imports/" + id + "/tasks/" + file.getName());
    req.setContentType("application/zip");
    req.addHeader("Content-Type", "application/zip");
    req.setMethod("PUT");
    req.setContent(org.apache.commons.io.IOUtils.toByteArray(stream));
    resp = dispatch(req);

    assertEquals(201, resp.getStatus());

    context = importer.getContext(context.getId());
    assertNull(context.getData());
    assertEquals(1, context.getTasks().size());

    ImportTask task = context.getTasks().get(0);
    assertTrue(task.getData() instanceof SpatialFile);

    return id;
}

From source file:org.geoserver.importer.rest.ImportTaskControllerTest.java

private Integer putZipAsURL(String zip) throws Exception {
    MockHttpServletResponse resp = postAsServletResponse(RestBaseController.ROOT_PATH + "/imports", "");
    assertEquals(201, resp.getStatus());
    assertNotNull(resp.getHeader("Location"));

    String[] split = resp.getHeader("Location").split("/");
    Integer id = Integer.parseInt(split[split.length - 1]);
    ImportContext context = importer.getContext(id);

    MockHttpServletRequest req = createRequest(RestBaseController.ROOT_PATH + "/imports/" + id + "/tasks/");
    MultiValueMap<String, Object> form = new LinkedMultiValueMap<String, Object>(1);
    form.add("url", new File(zip).getAbsoluteFile().toURI().toString());
    final ByteArrayOutputStream stream = new ByteArrayOutputStream();
    final HttpHeaders headers = new HttpHeaders();
    new FormHttpMessageConverter().write(form, MediaType.APPLICATION_FORM_URLENCODED, new HttpOutputMessage() {
        @Override//  ww  w  .j a  v a  2 s . com
        public OutputStream getBody() throws IOException {
            return stream;
        }

        @Override
        public HttpHeaders getHeaders() {
            return headers;
        }
    });
    req.setContent(stream.toByteArray());
    req.setMethod("POST");
    req.setContentType(MediaType.APPLICATION_FORM_URLENCODED_VALUE);
    req.addHeader("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE);
    resp = dispatch(req);

    assertEquals(201, resp.getStatus());

    context = importer.getContext(context.getId());
    assertNull(context.getData());
    assertEquals(1, context.getTasks().size());

    ImportTask task = context.getTasks().get(0);
    assertTrue(task.getData() instanceof SpatialFile);

    return id;
}

From source file:org.geoserver.importer.rest.ImportTaskControllerTest.java

@Test
public void testDeleteTask() throws Exception {
    MockHttpServletResponse resp = postAsServletResponse(RestBaseController.ROOT_PATH + "/imports", "");
    assertEquals(201, resp.getStatus());
    assertNotNull(resp.getHeader("Location"));

    String[] split = resp.getHeader("Location").split("/");
    Integer id = Integer.parseInt(split[split.length - 1]);

    ImportContext context = importer.getContext(id);

    File dir = unpack("shape/archsites_epsg_prj.zip");
    unpack("shape/bugsites_esri_prj.tar.gz", dir);

    new File(dir, "extra.file").createNewFile();
    File[] files = dir.listFiles();
    Part[] parts = new Part[files.length];
    for (int i = 0; i < files.length; i++) {
        parts[i] = new FilePart(files[i].getName(), files[i]);
    }/*w  w w. ja  v a2  s .co m*/

    MultipartRequestEntity multipart = new MultipartRequestEntity(parts, new PostMethod().getParams());

    ByteArrayOutputStream bout = new ByteArrayOutputStream();
    multipart.writeRequest(bout);

    MockHttpServletRequest req = createRequest(RestBaseController.ROOT_PATH + "/imports/" + id + "/tasks");
    req.setContentType(multipart.getContentType());
    req.addHeader("Content-Type", multipart.getContentType());
    req.setMethod("POST");
    req.setContent(bout.toByteArray());
    resp = dispatch(req);

    context = importer.getContext(context.getId());
    assertEquals(2, context.getTasks().size());

    req = createRequest(RestBaseController.ROOT_PATH + "/imports/" + id + "/tasks/1");
    req.setMethod("DELETE");
    resp = dispatch(req);
    assertEquals(204, resp.getStatus());

    context = importer.getContext(context.getId());
    assertEquals(1, context.getTasks().size());
}