List of usage examples for org.springframework.mock.web MockHttpServletRequest addHeader
public void addHeader(String name, Object value)
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()); }