List of usage examples for org.springframework.mock.web MockHttpServletRequest setContent
public void setContent(@Nullable byte[] content)
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()); }