List of usage examples for org.springframework.mock.web MockHttpServletResponse getHeader
@Override
@Nullable
public String getHeader(String name)
From source file:org.geoserver.opensearch.rest.ProductsControllerTest.java
@Test public void testDeleteProduct() throws Exception { // create the product MockHttpServletResponse response = postAsServletResponse("rest/oseo/collections/SENTINEL2/products", getTestData("/product.json"), MediaType.APPLICATION_JSON_VALUE); assertEquals(201, response.getStatus()); assertEquals(//w ww .ja v a 2s .c o m "http://localhost:8080/geoserver/rest/oseo/collections/SENTINEL2/products/S2A_OPER_MSI_L1C_TL_SGS__20180101T000000_A006640_T32TPP_N02.04", response.getHeader("location")); // it's there getAsJSONPath( "rest/oseo/collections/SENTINEL2/products/S2A_OPER_MSI_L1C_TL_SGS__20180101T000000_A006640_T32TPP_N02.04", 200); // and now kill the poor beast response = deleteAsServletResponse( "rest/oseo/collections/SENTINEL2/products/S2A_OPER_MSI_L1C_TL_SGS__20180101T000000_A006640_T32TPP_N02.04"); assertEquals(200, response.getStatus()); // no more there response = getAsServletResponse( "rest/oseo/collections/SENTINEL2/products/S2A_OPER_MSI_L1C_TL_SGS__20180101T000000_A006640_T32TPP_N02.04"); assertEquals(404, response.getStatus()); }
From source file:org.geoserver.opensearch.rest.ProductsControllerTest.java
private void testCreateProductAsZip(Set<ProductPart> parts) throws Exception { LOGGER.info("Testing: " + parts); byte[] zip = null; try (final ByteArrayOutputStream bos = new ByteArrayOutputStream(); ZipOutputStream zos = new ZipOutputStream(bos)) { for (ProductPart part : parts) { String resource, name; switch (part) { case Product: resource = "/product.json"; name = "product.json"; break; case Description: resource = "/product-description.html"; name = "description.html"; break; case Metadata: resource = "/product-metadata.xml"; name = "metadata.xml"; break; case Thumbnail: resource = "/product-thumb.jpeg"; name = "thumbnail.jpeg"; break; case OwsLinks: resource = "/product-links.json"; name = "owsLinks.json"; break; case Granules: resource = "/product-granules.json"; name = "granules.json"; break; default: throw new RuntimeException("Unexpected part " + part); }//from www. j av a 2 s. co m ZipEntry entry = new ZipEntry(name); zos.putNextEntry(entry); IOUtils.copy(getClass().getResourceAsStream(resource), zos); zos.flush(); zos.closeEntry(); } zip = bos.toByteArray(); } MockHttpServletResponse response = postAsServletResponse("rest/oseo/collections/SENTINEL2/products", zip, MediaTypeExtensions.APPLICATION_ZIP_VALUE); if (parts.contains(ProductPart.Product)) { assertEquals(201, response.getStatus()); assertEquals( "http://localhost:8080/geoserver/rest/oseo/collections/SENTINEL2/products/S2A_OPER_MSI_L1C_TL_SGS__20180101T000000_A006640_T32TPP_N02.04", response.getHeader("location")); assertProductCreated(); } else { assertEquals(400, response.getStatus()); assertThat(response.getContentAsString(), containsString("product.json")); // failed, nothing else to check return; } if (parts.contains(ProductPart.Description)) { assertProductDescription(); } if (parts.contains(ProductPart.Metadata)) { assertProductMetadata(); } if (parts.contains(ProductPart.Thumbnail)) { assertProductThumbnail(); } if (parts.contains(ProductPart.OwsLinks)) { assertProductLinks(); } if (parts.contains(ProductPart.Granules)) { assertProductGranules(); } }
From source file:org.geoserver.ows.StylePublisherTest.java
@Test public void testLastModified() throws Exception { for (String[] path : paths) { MockHttpServletResponse response = request(path, null); String lastModified = response.getHeader("Last-Modified"); assertNotNull(lastModified);//from www. ja v a2 s.c o m response = request(path, lastModified); assertEquals(304, response.getStatus()); long timeStamp = AbstractURLPublisher.lastModified(lastModified) + 10000; response = request(path, AbstractURLPublisher.lastModified(timeStamp)); assertEquals(304, response.getStatus()); timeStamp -= 20000; response = request(path, AbstractURLPublisher.lastModified(timeStamp)); assertEquals(200, response.getStatus()); assertArrayEquals( IOUtils.toByteArray(this.getClass().getClassLoader() .getResourceAsStream("org/geoserver/ows/" + path[path.length - 1])), response.getContentAsByteArray()); } }
From source file:org.geoserver.rest.catalog.CoverageControllerTest.java
@Test public void testPostAsXML() throws Exception { removeStore("gs", "usaWorldImage"); String req = "wcs?service=wcs&request=getcoverage&version=1.1.1&identifier=gs:usa" + "&boundingbox=-100,30,-80,44,EPSG:4326&format=image/tiff" + "&gridbasecrs=EPSG:4326&store=true"; Document dom = getAsDOM(req); assertEquals("ows:ExceptionReport", dom.getDocumentElement().getNodeName()); addCoverageStore(false);/*from ww w. ja v a 2 s .co m*/ dom = getAsDOM(RestBaseController.ROOT_PATH + "/workspaces/gs/coveragestores/usaWorldImage/coverages.xml"); assertEquals(0, dom.getElementsByTagName("coverage").getLength()); String xml = "<coverage>" + "<name>usa</name>" + "<title>usa is a A raster file accompanied by a spatial data file</title>" + "<description>Generated from WorldImage</description>" + "<srs>EPSG:4326</srs>" + /*"<latLonBoundingBox>"+ "<minx>-130.85168</minx>"+ "<maxx>-62.0054</maxx>"+ "<miny>20.7052</miny>"+ "<maxy>54.1141</maxy>"+ "</latLonBoundingBox>"+ "<nativeBoundingBox>"+ "<minx>-130.85168</minx>"+ "<maxx>-62.0054</maxx>"+ "<miny>20.7052</miny>"+ "<maxy>54.1141</maxy>"+ "<crs>EPSG:4326</crs>"+ "</nativeBoundingBox>"+ "<grid dimension=\"2\">"+ "<range>"+ "<low>0 0</low>"+ "<high>983 598</high>"+ "</range>"+ "<transform>"+ "<scaleX>0.07003690742624616</scaleX>"+ "<scaleY>-0.05586772575250837</scaleY>"+ "<shearX>0.0</shearX>"+ "<shearX>0.0</shearX>"+ "<translateX>-130.81666154628687</translateX>"+ "<translateY>54.08616613712375</translateY>"+ "</transform>"+ "<crs>EPSG:4326</crs>"+ "</grid>"+*/ "<supportedFormats>" + "<string>PNG</string>" + "<string>GEOTIFF</string>" + "</supportedFormats>" + "<requestSRS>" + "<string>EPSG:4326</string>" + "</requestSRS>" + "<responseSRS>" + "<string>EPSG:4326</string>" + "</responseSRS>" + "<store>usaWorldImage</store>" + "<namespace>gs</namespace>" + "</coverage>"; MockHttpServletResponse response = postAsServletResponse( RestBaseController.ROOT_PATH + "/workspaces/gs/coveragestores/usaWorldImage/coverages/", xml, "text/xml"); assertEquals(201, response.getStatus()); assertNotNull(response.getHeader("Location")); assertTrue(response.getHeader("Location") .endsWith("/workspaces/gs/coveragestores/usaWorldImage/coverages/usa")); dom = getAsDOM(req); assertEquals("wcs:Coverages", dom.getDocumentElement().getNodeName()); dom = getAsDOM( RestBaseController.ROOT_PATH + "/workspaces/gs/coveragestores/usaWorldImage/coverages/usa.xml"); assertXpathEvaluatesTo("-130.85168", "/coverage/latLonBoundingBox/minx", dom); assertXpathEvaluatesTo("983 598", "/coverage/grid/range/high", dom); dom = getAsDOM(RestBaseController.ROOT_PATH + "/workspaces/gs/coveragestores/usaWorldImage/coverages.xml"); assertEquals(1, dom.getElementsByTagName("coverage").getLength()); }
From source file:org.geoserver.rest.catalog.CoverageControllerTest.java
@Test public void testPostAsJSON() throws Exception { // remove the test store and test that the layer is not available removeStore("gs", "usaWorldImage"); String request = "wcs?service=wcs&request=getcoverage&version=1.1.1&identifier=gs:usa" + "&boundingbox=-100,30,-80,44,EPSG:4326&format=image/tiff&gridbasecrs=EPSG:4326&store=true"; Document document = getAsDOM(request); assertEquals("ows:ExceptionReport", document.getDocumentElement().getNodeName()); // add the test store, no coverages should be available addCoverageStore(false);/*from w w w .ja v a2 s. c o m*/ JSONObject json = (JSONObject) getAsJSON( RestBaseController.ROOT_PATH + "/workspaces/gs/coveragestores/usaWorldImage/coverages.json"); assertThat(json.getString("coverages").isEmpty(), is(true)); // content for the POST request String content = "{" + " \"coverage\": {" + " \"description\": \"Generated from WorldImage\"," + " \"name\": \"usa\"," + " \"namespace\": \"gs\"," + " \"requestSRS\": {" + " \"string\": [" + " \"EPSG:4326\"" + " ]" + " }," + " \"responseSRS\": {" + " \"string\": [" + " \"EPSG:4326\"" + " ]" + " }," + " \"srs\": \"EPSG:4326\"," + " \"store\": \"usaWorldImage\"," + " \"supportedFormats\": {" + " \"string\": [" + " \"PNG\"," + " \"GEOTIFF\"" + " ]" + " }," + " \"title\": \"usa is a A raster file accompanied by a spatial data file\"" + " }" + "}"; // perform the POST request that will create the USA coverage MockHttpServletResponse response = postAsServletResponse( RestBaseController.ROOT_PATH + "/workspaces/gs/coveragestores/usaWorldImage/coverages/", content, "application/json"); assertEquals(201, response.getStatus()); assertNotNull(response.getHeader("Location")); assertTrue(response.getHeader("Location") .endsWith("/workspaces/gs/coveragestores/usaWorldImage/coverages/usa")); // check that the coverage exists using the WCS service document = getAsDOM(request); assertEquals("wcs:Coverages", document.getDocumentElement().getNodeName()); // check create coverage attributes json = (JSONObject) getAsJSON( RestBaseController.ROOT_PATH + "/workspaces/gs/coveragestores/usaWorldImage/coverages/usa.json"); assertThat(json.getJSONObject("coverage").getString("name"), is("usa")); assertThat(json.getJSONObject("coverage").getJSONObject("latLonBoundingBox").getString("minx"), is("-130.85168")); assertThat(json.getJSONObject("coverage").getJSONObject("grid").getJSONObject("range").getString("high"), is("983 598")); // check that the coverage is listed json = (JSONObject) getAsJSON( RestBaseController.ROOT_PATH + "/workspaces/gs/coveragestores/usaWorldImage/coverages.json"); JSONArray coverages = json.getJSONObject("coverages").getJSONArray("coverage"); assertThat(coverages.size(), is(1)); assertThat(coverages.getJSONObject(0).getString("name"), is("usa")); }
From source file:org.geoserver.rest.catalog.CoverageControllerTest.java
@Test public void testPostAsXMLWithNativeName() throws Exception { removeStore("gs", "usaWorldImage"); String req = "wcs?service=wcs&request=getcoverage&version=1.1.1&identifier=gs:differentName" + "&boundingbox=-100,30,-80,44,EPSG:4326&format=image/tiff" + "&gridbasecrs=EPSG:4326&store=true"; Document dom = getAsDOM(req); assertEquals("ows:ExceptionReport", dom.getDocumentElement().getNodeName()); addCoverageStore(false);/*from w w w. j a va 2 s . c o m*/ dom = getAsDOM(RestBaseController.ROOT_PATH + "/workspaces/gs/coveragestores/usaWorldImage/coverages.xml"); assertEquals(0, dom.getElementsByTagName("coverage").getLength()); String xml = "<coverage>" + "<name>differentName</name>" + "<title>usa is a A raster file accompanied by a spatial data file</title>" + "<description>Generated from WorldImage</description>" + "<srs>EPSG:4326</srs>" + "<supportedFormats>" + "<string>PNG</string>" + "<string>GEOTIFF</string>" + "</supportedFormats>" + "<requestSRS>" + "<string>EPSG:4326</string>" + "</requestSRS>" + "<responseSRS>" + "<string>EPSG:4326</string>" + "</responseSRS>" + "<store>usaWorldImage</store>" + "<namespace>gs</namespace>" + "<nativeCoverageName>usa</nativeCoverageName>" + "</coverage>"; MockHttpServletResponse response = postAsServletResponse( RestBaseController.ROOT_PATH + "/workspaces/gs/coveragestores/usaWorldImage/coverages/", xml, "text/xml"); assertEquals(201, response.getStatus()); assertNotNull(response.getHeader("Location")); assertTrue(response.getHeader("Location") .endsWith("/workspaces/gs/coveragestores/usaWorldImage/coverages/differentName")); dom = getAsDOM(req); assertEquals("wcs:Coverages", dom.getDocumentElement().getNodeName()); dom = getAsDOM(RestBaseController.ROOT_PATH + "/workspaces/gs/coveragestores/usaWorldImage/coverages/differentName.xml"); assertXpathEvaluatesTo("-130.85168", "/coverage/latLonBoundingBox/minx", dom); assertXpathEvaluatesTo("983 598", "/coverage/grid/range/high", dom); }
From source file:org.geoserver.rest.catalog.CoverageControllerTest.java
@Test public void testPostNewAsXMLWithNativeCoverageName() throws Exception { removeStore("gs", "usaWorldImage"); String req = "wcs?service=wcs&request=getcoverage&version=1.1.1&identifier=gs:differentName" + "&boundingbox=-100,30,-80,44,EPSG:4326&format=image/tiff" + "&gridbasecrs=EPSG:4326&store=true"; Document dom = getAsDOM(req); assertEquals("ows:ExceptionReport", dom.getDocumentElement().getNodeName()); addCoverageStore(false);/*from w w w.ja v a 2 s. c o m*/ dom = getAsDOM(RestBaseController.ROOT_PATH + "/workspaces/gs/coveragestores/usaWorldImage/coverages.xml"); assertEquals(0, dom.getElementsByTagName("coverage").getLength()); String xml = "<coverage>" + "<name>differentName</name>" + "<nativeCoverageName>usa</nativeCoverageName>" + "</coverage>"; MockHttpServletResponse response = postAsServletResponse( RestBaseController.ROOT_PATH + "/workspaces/gs/coveragestores/usaWorldImage/coverages/", xml, "text/xml"); assertEquals(201, response.getStatus()); assertNotNull(response.getHeader("Location")); assertTrue(response.getHeader("Location") .endsWith("/workspaces/gs/coveragestores/usaWorldImage/coverages/differentName")); dom = getAsDOM(req); assertEquals("wcs:Coverages", dom.getDocumentElement().getNodeName()); dom = getAsDOM(RestBaseController.ROOT_PATH + "/workspaces/gs/coveragestores/usaWorldImage/coverages/differentName.xml"); assertXpathEvaluatesTo("differentName", "/coverage/name", dom); assertXpathEvaluatesTo("differentName", "/coverage/title", dom); assertXpathEvaluatesTo("usa", "/coverage/nativeCoverageName", dom); }
From source file:org.geoserver.rest.catalog.CoverageControllerTest.java
@Test public void testPostNewAsXMLWithNativeNameFallback() throws Exception { removeStore("gs", "usaWorldImage"); String req = "wcs?service=wcs&request=getcoverage&version=1.1.1&identifier=gs:differentName" + "&boundingbox=-100,30,-80,44,EPSG:4326&format=image/tiff" + "&gridbasecrs=EPSG:4326&store=true"; Document dom = getAsDOM(req); assertEquals("ows:ExceptionReport", dom.getDocumentElement().getNodeName()); addCoverageStore(false);//w ww .java2s . com dom = getAsDOM(RestBaseController.ROOT_PATH + "/workspaces/gs/coveragestores/usaWorldImage/coverages.xml"); assertEquals(0, dom.getElementsByTagName("coverage").getLength()); String xml = "<coverage>" + "<name>differentName</name>" + "<nativeName>usa</nativeName>" + "</coverage>"; MockHttpServletResponse response = postAsServletResponse( RestBaseController.ROOT_PATH + "/workspaces/gs/coveragestores/usaWorldImage/coverages/", xml, "text/xml"); assertEquals(201, response.getStatus()); assertNotNull(response.getHeader("Location")); assertTrue(response.getHeader("Location") .endsWith("/workspaces/gs/coveragestores/usaWorldImage/coverages/differentName")); dom = getAsDOM(req); assertEquals("wcs:Coverages", dom.getDocumentElement().getNodeName()); dom = getAsDOM(RestBaseController.ROOT_PATH + "/workspaces/gs/coveragestores/usaWorldImage/coverages/differentName.xml"); assertXpathEvaluatesTo("differentName", "/coverage/name", dom); assertXpathEvaluatesTo("differentName", "/coverage/title", dom); assertXpathEvaluatesTo("usa", "/coverage/nativeCoverageName", dom); }
From source file:org.geoserver.rest.catalog.CoverageStoreControllerTest.java
@Test public void testPostAsXML() throws Exception { removeStore("wcs", "newCoverageStore"); File f = setupNewCoverageStore(); String xml = "<coverageStore>" + "<name>newCoverageStore</name>" + "<type>WorldImage</type>" + "<url>file://" + f.getAbsolutePath() + "</url>" + "<workspace>wcs</workspace>" + "</coverageStore>"; MockHttpServletResponse response = postAsServletResponse( RestBaseController.ROOT_PATH + "/workspaces/wcs/coveragestores", xml, "text/xml"); assertEquals(201, response.getStatus()); assertNotNull(response.getHeader("Location")); assertTrue(response.getHeader("Location").endsWith("/workspaces/wcs/coveragestores/newCoverageStore")); CoverageStoreInfo newCoverageStore = catalog.getCoverageStoreByName("newCoverageStore"); assertNotNull(newCoverageStore);//from w w w . jav a 2 s .c om assertNotNull(newCoverageStore.getFormat()); }
From source file:org.geoserver.rest.catalog.CoverageStoreControllerTest.java
@Test public void testPostAsJSON() throws Exception { removeStore("wcs", "newCoverageStore"); File f = setupNewCoverageStore(); String json = "{'coverageStore':{" + "'name':'newCoverageStore'," + "'type': 'WorldImage'," + "'url':'" + f.getAbsolutePath().replace('\\', '/') + "'," + "'workspace':'wcs'," + "}" + "}"; MockHttpServletResponse response = postAsServletResponse( RestBaseController.ROOT_PATH + "/workspaces/wcs/coveragestores", json, "text/json"); assertEquals(201, response.getStatus()); assertNotNull(response.getHeader("Location")); assertTrue(response.getHeader("Location").endsWith("/workspaces/wcs/coveragestores/newCoverageStore")); CoverageStoreInfo newCoverageStore = catalog.getCoverageStoreByName("newCoverageStore"); assertNotNull(newCoverageStore);//from w w w . java2 s.c o m assertNotNull(newCoverageStore.getFormat()); }