List of usage examples for org.springframework.mock.web MockHttpServletRequest addHeader
public void addHeader(String name, Object value)
From source file:org.geoserver.rest.catalog.StyleControllerTest.java
/** * TODO I had to put this here BECAUSE:/*from w w w. j a v a2s.com*/ * * - The testPutSLDPackage test uses a *.zip URL * - BUT, put style does not support ZIP responses * - Spring interprets the .zip extension on the path as being a request for a zip response * - This fails, because there is no actual handler for a zip response on a style endpoint * - Unfortunately Spring only considers one of the Accept header or the path * - So the handler is never found * * this leaves us with a few options * * 1) Configure spring to prefer the accept header over the path. This would: * * - Force future clients who depended on put/posting to zip endpoints to make sure their * Accept header is correct. * - Maybe more importantly it could potentially break other end points that depend on preferring * the path extension. * * 2) Continue letting Spring prefer the path (which is really the right behavior for a REST api) * * - Future clients would not be able to use an endpoint like .zip * - But this is more REST-y * * 3) Write our own content negotiation strategy that allows for both. * * - This is a pain in the ass. * - Potentially difficult to recreate all default behavior + behavior needed to fix this test * case * * @param path * @param body * @param contentType * @return * @throws Exception */ protected MockHttpServletResponse putAsServletResponse(String path, byte[] body, String contentType, String accepts) throws Exception { MockHttpServletRequest request = createRequest(path); request.setMethod("PUT"); request.setContentType(contentType); request.setContent(body); request.addHeader("Accept", accepts); request.addHeader("Content-type", contentType); return dispatch(request); }
From source file:org.geoserver.restupload.ResumableUploadTest.java
@Test public void testUploadFull() throws Exception { String uploadId = sendPostRequest(); File uploadedFile = getTempPath(uploadId); assertTrue(uploadedFile.exists());/*from w ww . j av a2 s. c om*/ MockHttpServletRequest request = createRequest("/rest/resumableupload/" + uploadId); request.setMethod("PUT"); request.setContentType("application/octet-stream"); byte[] bigFile = generateFileAsBytes(); request.setContent(bigFile); request.addHeader("Content-type", "application/octet-stream"); request.addHeader("Content-Length", String.valueOf(bigFile.length)); MockHttpServletResponse response = dispatch(request); assertEquals(Status.SUCCESS_OK.getCode(), response.getStatus()); assertFalse(uploadedFile.exists()); File destinationFile = new File(FilenameUtils.concat(root, fileName.replaceAll("^/", ""))); assertTrue(destinationFile.exists()); assertEquals(bigFile.length, destinationFile.length()); // Check uploaded file byte by byte boolean checkBytes = Arrays.equals(bigFile, toBytes(new FileInputStream(destinationFile))); assertTrue(checkBytes); // Check response content String restUrl = response.getContentAsString(); assertEquals(fileName.replaceAll("^/", ""), restUrl); }
From source file:org.geoserver.restupload.ResumableUploadTest.java
@Test public void testPartialUpload() throws Exception { String uploadId = sendPostRequest(); MockHttpServletRequest request = createRequest("/rest/resumableupload/" + uploadId); request.setMethod("PUT"); request.setContentType("application/octet-stream"); byte[] bigFile = generateFileAsBytes(); byte[] partialFile = ArrayUtils.subarray(bigFile, 0, (int) partialSize); request.setContent(partialFile);//from w w w . j a v a 2 s. c o m request.addHeader("Content-type", "application/octet-stream"); request.addHeader("Content-Length", String.valueOf(bigFile.length)); MockHttpServletResponse response = dispatch(request); assertEquals(ResumableUploadCatalogResource.RESUME_INCOMPLETE.getCode(), response.getStatus()); assertEquals(null, response.getHeader("Content-Length")); assertEquals("0-" + (partialSize - 1), response.getHeader("Range")); File uploadedFile = getTempPath(uploadId); assertTrue(uploadedFile.exists()); assertEquals(partialSize, uploadedFile.length()); boolean checkBytes = Arrays.equals(partialFile, toBytes(new FileInputStream(uploadedFile))); assertTrue(checkBytes); }
From source file:org.geoserver.restupload.ResumableUploadTest.java
@Test public void testUploadPartialResume() throws Exception { String uploadId = sendPostRequest(); byte[] bigFile = generateFileAsBytes(); byte[] partialFile1 = ArrayUtils.subarray(bigFile, 0, (int) partialSize); // First upload MockHttpServletRequest request = createRequest("/rest/resumableupload/" + uploadId); request.setMethod("PUT"); request.setContentType("application/octet-stream"); request.setContent(partialFile1);/* w ww .j av a 2 s. c om*/ request.addHeader("Content-type", "application/octet-stream"); request.addHeader("Content-Length", String.valueOf(bigFile.length)); dispatch(request); // Resume upload request = createRequest("/rest/resumableupload/" + uploadId); request.setMethod("PUT"); request.setContentType("application/octet-stream"); byte[] partialFile2 = ArrayUtils.subarray(bigFile, (int) partialSize, (int) partialSize * 2); request.setContent(partialFile2); request.addHeader("Content-type", "application/octet-stream"); request.addHeader("Content-Length", String.valueOf(partialFile2.length)); request.addHeader("Content-Range", "bytes " + partialSize + "-" + partialSize * 2 + "/" + bigFile.length); MockHttpServletResponse response = dispatch(request); assertEquals(ResumableUploadCatalogResource.RESUME_INCOMPLETE.getCode(), response.getStatus()); assertEquals(null, response.getHeader("Content-Length")); assertEquals("0-" + (partialSize * 2 - 1), response.getHeader("Range")); File uploadedFile = getTempPath(uploadId); assertTrue(uploadedFile.exists()); assertEquals(partialSize * 2, uploadedFile.length()); // Check uploaded file byte by byte boolean checkBytes = Arrays.equals(ArrayUtils.addAll(partialFile1, partialFile2), toBytes(new FileInputStream(uploadedFile))); assertTrue(checkBytes); }
From source file:org.geoserver.restupload.ResumableUploadTest.java
@Test public void testUploadFullResume() throws Exception { String uploadId = sendPostRequest(); byte[] bigFile = generateFileAsBytes(); byte[] partialFile1 = ArrayUtils.subarray(bigFile, 0, (int) partialSize); // First upload MockHttpServletRequest request = createRequest("/rest/resumableupload/" + uploadId); request.setMethod("PUT"); request.setContentType("application/octet-stream"); request.setContent(partialFile1);/*from w w w. j av a 2 s. com*/ request.addHeader("Content-type", "application/octet-stream"); request.addHeader("Content-Length", String.valueOf(bigFile.length)); dispatch(request); // Resume upload request = createRequest("/rest/resumableupload/" + uploadId); request.setMethod("PUT"); request.setContentType("application/octet-stream"); byte[] partialFile2 = ArrayUtils.subarray(bigFile, (int) partialSize, bigFile.length); request.setContent(partialFile2); request.addHeader("Content-type", "application/octet-stream"); request.addHeader("Content-Length", String.valueOf(partialFile2.length)); request.addHeader("Content-Range", "bytes " + partialSize + "-" + bigFile.length + "/" + bigFile.length); MockHttpServletResponse response = dispatch(request); assertEquals(Status.SUCCESS_OK.getCode(), response.getStatus()); File uploadedFile = getTempPath(uploadId); assertFalse(uploadedFile.exists()); File destinationFile = new File(FilenameUtils.concat(root, fileName.replaceAll("^/", ""))); assertTrue(destinationFile.exists()); assertEquals(bigFile.length, destinationFile.length()); // Check uploaded file byte by byte boolean checkBytes = Arrays.equals(bigFile, toBytes(new FileInputStream(destinationFile))); assertTrue(checkBytes); // Check response content String restUrl = response.getContentAsString(); assertEquals(fileName.replaceAll("^/", ""), restUrl); }
From source file:org.geoserver.restupload.ResumableUploadTest.java
@Test public void testPartialCleanup() throws Exception { // Change cleanup expirationDelay ResumableUploadResourceCleaner cleaner = (ResumableUploadResourceCleaner) applicationContext .getBean("resumableUploadStorageCleaner"); cleaner.setExpirationDelay(1000);//from w ww.ja va2 s. c o m // Upload file String uploadId = sendPostRequest(); byte[] bigFile = generateFileAsBytes(); byte[] partialFile = ArrayUtils.subarray(bigFile, 0, (int) partialSize); MockHttpServletRequest request = createRequest("/rest/resumableupload/" + uploadId); request.setMethod("PUT"); request.setContentType("application/octet-stream"); request.setContent(partialFile); request.addHeader("Content-type", "application/octet-stream"); request.addHeader("Content-Length", String.valueOf(bigFile.length)); dispatch(request); File uploadedFile = getTempPath(uploadId); assertTrue(uploadedFile.exists()); // Wait to cleanup, max 2 minutes long startTime = new Date().getTime(); while (uploadedFile.exists() && (new Date().getTime() - startTime) < 120000) { Thread.sleep(1000); } assertTrue(!uploadedFile.exists()); cleaner.setExpirationDelay(300000); }
From source file:org.geoserver.restupload.ResumableUploadTest.java
@Test public void testSidecarCleanup() throws Exception { // Change cleanup expirationDelay ResumableUploadResourceCleaner cleaner = (ResumableUploadResourceCleaner) applicationContext .getBean("resumableUploadStorageCleaner"); cleaner.setExpirationDelay(1000);/* w w w . j a v a 2 s . c o m*/ // Upload file String uploadId = sendPostRequest(); byte[] bigFile = generateFileAsBytes(); MockHttpServletRequest request = createRequest("/rest/resumableupload/" + uploadId); request.setMethod("PUT"); request.setContentType("application/octet-stream"); request.setContent(bigFile); request.addHeader("Content-type", "application/octet-stream"); request.addHeader("Content-Length", String.valueOf(bigFile.length)); dispatch(request); File uploadedFile = getTempPath(uploadId); assertFalse(uploadedFile.exists()); File sidecarFile = new File( FilenameUtils.concat(tmpUploadFolder.dir().getCanonicalPath(), uploadId + ".sidecar")); assertTrue(sidecarFile.exists()); // Wait to cleanup, max 2 minutes long startTime = new Date().getTime(); while (sidecarFile.exists() && (new Date().getTime() - startTime) < 120000) { Thread.sleep(1000); } assertFalse(sidecarFile.exists()); // Test GET after sidecar cleanup MockHttpServletResponse response = getAsServletResponse("/rest/resumableupload/" + uploadId, "text/plain"); assertEquals(Status.CLIENT_ERROR_NOT_FOUND.getCode(), response.getStatus()); cleaner.setExpirationDelay(300000); }
From source file:org.geoserver.restupload.ResumableUploadTest.java
@Test public void testGetAfterPartial() throws Exception { String uploadId = sendPostRequest(); byte[] bigFile = generateFileAsBytes(); byte[] partialFile = ArrayUtils.subarray(bigFile, 0, (int) partialSize); // First upload MockHttpServletRequest request = createRequest("/rest/resumableupload/" + uploadId); request.setMethod("PUT"); request.setContentType("application/octet-stream"); request.setContent(partialFile);//from w w w . ja va 2 s . c o m request.addHeader("Content-type", "application/octet-stream"); request.addHeader("Content-Length", String.valueOf(bigFile.length)); dispatch(request); File uploadedFile = getTempPath(uploadId); assertTrue(uploadedFile.exists()); MockHttpServletResponse response = getAsServletResponse("/rest/resumableupload/" + uploadId, "text/plain"); assertEquals(ResumableUploadCatalogResource.RESUME_INCOMPLETE.getCode(), response.getStatus()); assertEquals(null, response.getHeader("Content-Length")); assertEquals("0-" + (partialSize - 1), response.getHeader("Range")); }
From source file:org.geoserver.restupload.ResumableUploadTest.java
@Test public void testGetAfterFull() throws Exception { String uploadId = sendPostRequest(); File uploadedFile = getTempPath(uploadId); assertTrue(uploadedFile.exists());//from w ww . j av a 2s. c o m MockHttpServletRequest request = createRequest("/rest/resumableupload/" + uploadId); request.setMethod("PUT"); request.setContentType("application/octet-stream"); byte[] bigFile = generateFileAsBytes(); request.setContent(bigFile); request.addHeader("Content-type", "application/octet-stream"); request.addHeader("Content-Length", String.valueOf(bigFile.length)); MockHttpServletResponse response = dispatch(request); assertEquals(Status.SUCCESS_OK.getCode(), response.getStatus()); File sidecarFile = new File( FilenameUtils.concat(tmpUploadFolder.dir().getCanonicalPath(), uploadId + ".sidecar")); assertTrue(sidecarFile.exists()); }
From source file:org.geoserver.restupload.ResumableUploadTest.java
private String sendPostRequest() throws Exception { MockHttpServletRequest request = createRequest("/rest/resumableupload/"); request.setMethod("POST"); request.setContentType("text/plain"); request.setContent(fileName.getBytes("UTF-8")); request.addHeader("Content-type", "text/plain"); MockHttpServletResponse response = dispatch(request); assertEquals(Status.SUCCESS_CREATED.getCode(), response.getStatus()); String responseBody = response.getContentAsString(); String url = responseBody.split("\\r?\\n")[1]; String uploadId = FilenameUtils.getBaseName(url); return uploadId; }