@Test public void setContentTypeUTF8() { String contentType = "test/plain;charset=UTF-8"; response.setContentType(contentType); assertEquals("UTF-8", response.getCharacterEncoding()); assertEquals(contentType, response.getContentType()); assertEquals(contentType, response.getHeader("Content-Type")); }
/** * Retries the request result as a BufferedImage, checking the mime type is the expected one * * @param path * @param mime */ protected BufferedImage getAsImage(String path, String mime) throws Exception { MockHttpServletResponse resp = getAsServletResponse(path); assertEquals(mime, resp.getContentType()); InputStream is = getBinaryInputStream(resp); return ImageIO.read(is); }
@Test public void testGetMethod_unencodedParams() throws Exception { EasyMock.expect(mockService.testMethod("Whir?inaki")).andReturn("For?est"); EasyMock.replay(mockService); MockHttpServletRequest request = new MockHttpServletRequest("GET", "/test-get"); MockHttpServletResponse response = new MockHttpServletResponse(); request.addParameter("id", Integer.toString(123)); request.addParameter("method", "testMethod"); request.addParameter("params", "[\"Whir?inaki\"]"); jsonRpcServer.handle(request, response); assertTrue("application/json-rpc".equals(response.getContentType())); checkSuccessfulResponse(response); }
@Test public void testCoverageTrimmingBorders() throws Exception { final File xml = new File("./src/test/resources/trimming/requestGetCoverageTrimmingBorders.xml"); final String request = FileUtils.readFileToString(xml); MockHttpServletResponse response = postAsServletResponse("wcs", request); // make sure we are not getting a service exception assertEquals("image/tiff", response.getContentType()); }
@Test public void testIndexedBlackBG() throws Exception { MockHttpServletResponse response = getAsServletResponse( "wms?bgcolor=0x000000&LAYERS=sf:indexed&STYLES=&FORMAT=image/png&SERVICE=WMS&VERSION=1.1.1" + "&REQUEST=GetMap&SRS=EPSG:4326&BBOX=100,78,104,80&WIDTH=300&HEIGHT=150&transparent=false"); assertEquals("image/png", response.getContentType()); RenderedImage image = ImageIO.read(getBinaryInputStream(response)); ImageAssert.assertEquals( new File("src/test/resources/org/geoserver/wms/map/indexed-bg-expected.png"), image, 0); }
@Test public void testGetCoverageNativeFormat() throws Exception { MockHttpServletResponse response = getAsServletResponse( "wcs?request=GetCoverage&service=WCS&version=2.0.1" + "&coverageId=sf__rain"); // we got back an ArcGrid response assertEquals("text/plain", response.getContentType()); }
private void assertOriginPixelColor(MockHttpServletResponse response, int[] expected) throws DataSourceException, IOException { assertEquals("image/tiff", response.getContentType()); byte[] bytes = response.getContentAsByteArray(); GeoTiffReader reader = new GeoTiffReader(new ByteArrayInputStream(bytes)); GridCoverage2D coverage = reader.read(null); Raster raster = coverage.getRenderedImage().getData(); int[] pixel = new int[3]; raster.getPixel(0, 0, pixel); assertThat(pixel, equalTo(expected)); } }
@Test public void testCoverageTrimmingDuplicatedNativeCRSXML() throws Exception { final File xml = new File( "./src/test/resources/trimming/requestGetCoverageTrimmingDuplicatedNativeCRSXML.xml"); final String request = FileUtils.readFileToString(xml); MockHttpServletResponse response = postAsServletResponse("wcs", request); assertEquals("application/xml", response.getContentType()); // checkOws20Exception(response, 404, "InvalidAxisLabel", "coverageId"); }
@Test public void setContentType() { String contentType = "test/plain"; response.setContentType(contentType); assertEquals(contentType, response.getContentType()); assertEquals(contentType, response.getHeader("Content-Type")); assertEquals(WebUtils.DEFAULT_CHARACTER_ENCODING, response.getCharacterEncoding()); }
@Test public void testRequestCoverageView() throws Exception { // http response from the request inside the string MockHttpServletResponse response = getAsServletResponse( "ows?request=GetCoverage&service=WCS&version=2.0.1" + "&coverageId=wcs__dummyView&format=application/x-netcdf&subset=http://www.opengis.net/def/axis/OGC/0/time(\"2013-01-08T00:00:00.000Z\")"); assertNotNull(response); assertEquals("application/x-netcdf", response.getContentType()); byte[] netcdfOut = getBinary(response); File file = File.createTempFile("netcdf", "out.nc", new File("./target")); try { FileUtils.writeByteArrayToFile(file, netcdfOut); NetcdfDataset dataset = NetcdfDataset.openDataset(file.getAbsolutePath()); assertNotNull(dataset); dataset.close(); } finally { FileUtils.deleteQuietly(file); } }
@Test public void testGetCoverageLocalWs() throws Exception { MockHttpServletResponse response = getAsServletResponse( "wcs/wcs?request=GetCoverage&service=WCS&version=2.0.1" + "&coverageId=BlueMarble&&Format=image/tiff"); assertEquals("image/tiff", response.getContentType()); }
@Test public void testGetMethod_base64Params() throws Exception { EasyMock.expect(mockService.testMethod("Whir?inaki")).andReturn("For?est"); EasyMock.replay(mockService); MockHttpServletRequest request = new MockHttpServletRequest("GET", "/test-get"); MockHttpServletResponse response = new MockHttpServletResponse(); request.addParameter("id", Integer.toString(123)); request.addParameter("method", "testMethod"); request.addParameter("params", net.iharder.Base64.encodeBytes("[\"Whir?inaki\"]".getBytes(StandardCharsets.UTF_8))); jsonRpcServer.handle(request, response); assertTrue("application/json-rpc".equals(response.getContentType())); checkSuccessfulResponse(response); }
throws Exception { assertEquals("application/xml", response.getContentType()); if (status != null) { assertEquals(status.intValue(), response.getStatus()); assertEquals("ows:ExceptionReport", root.getNodeName()); assertEquals("2.0.0", root.getAttribute("version")); assertEquals("http://www.opengis.net/ows/2.0", root.getAttribute("xmlns:ows"));
/** Trimming only on Longitude */ @Test public void testCoverageTrimmingLatitudeNativeCRSXML() throws Exception { final File xml = new File( "./src/test/resources/trimming/requestGetCoverageTrimmingLatitudeNativeCRSXML.xml"); final String request = FileUtils.readFileToString(xml); MockHttpServletResponse response = postAsServletResponse("wcs", request); assertEquals("image/tiff", response.getContentType()); byte[] tiffContents = getBinary(response); checkCoverageTrimmingLatitudeNativeCRS(tiffContents); }
@Test public void setContentTypeThenCharacterEncoding() { response.setContentType("test/plain"); response.setCharacterEncoding("UTF-8"); assertEquals("test/plain", response.getContentType()); assertEquals("test/plain;charset=UTF-8", response.getHeader("Content-Type")); assertEquals("UTF-8", response.getCharacterEncoding()); }
@Test public void testTriangleFillOptimization() throws Exception { MockHttpServletResponse response = getAsServletResponse( requestBase + "&styles=triangle-fill&featureId=BasicPolygons.1107531493630"); assertEquals("application/pdf", response.getContentType()); File file = new File("./target/test.pdf"); org.apache.commons.io.FileUtils.writeByteArrayToFile( file, response.getContentAsByteArray()); PDTilingPattern tilingPattern = getTilingPattern(response.getContentAsByteArray()); assertNotNull(tilingPattern); assertEquals(20, tilingPattern.getXStep(), 0d); assertEquals(20, tilingPattern.getYStep(), 0d); }
@Test public void testGetCoverageNoWs() throws Exception { MockHttpServletResponse response = getAsServletResponse( "wcs?request=GetCoverage&service=WCS&version=2.0.1" + "&coverageId=BlueMarble&Format=image/tiff"); assertEquals("image/tiff", response.getContentType()); }
@Test public void test_contentType() throws Exception { EasyMock.expect(mockService.testMethod("Whir?inaki")).andReturn("For?est"); EasyMock.replay(mockService); MockHttpServletRequest request = new MockHttpServletRequest("POST", "/test-post"); MockHttpServletResponse response = new MockHttpServletResponse(); request.setContentType("application/json"); request.setContent("{\"jsonrpc\":\"2.0\",\"id\":123,\"method\":\"testMethod\",\"params\":[\"Whir?inaki\"]}".getBytes(StandardCharsets.UTF_8)); jsonRpcServer.setContentType("flip/flop"); jsonRpcServer.handle(request, response); assertTrue("flip/flop".equals(response.getContentType())); checkSuccessfulResponse(response); }
/** * Retrieves the request result as a list of BufferedImages from an animated format (works with * GIF, other formats are not tested so far). */ protected List<BufferedImage> getAsAnimation(String path, String mime) throws Exception { MockHttpServletResponse resp = getAsServletResponse(path); assertEquals(mime, resp.getContentType()); try (ImageInputStream is = ImageIO.createImageInputStream(getBinaryInputStream(resp))) { ImageReader reader = ImageIO.getImageReaders(is).next(); reader.setInput(is); final int numImages = reader.getNumImages(true); List<BufferedImage> result = new ArrayList<>(numImages); for (int i = 0; i < numImages; i++) { result.add(reader.read(i)); } return result; } }
@Test public void testInputLimits() throws Exception { final File xml = new File("./src/test/resources/requestGetFullCoverage.xml"); final String request = FileUtils.readFileToString(xml); // set limits setInputLimit(1); MockHttpServletResponse response = postAsServletResponse("wcs", request); System.out.println(new String(this.getBinary(response))); assertEquals("application/xml", response.getContentType()); // reset imits setInputLimit(-1); }