/** * Creates the {@link com.mockrunner.mock.web.MockHttpServletResponse} using <code>new</code>. * This method can be overridden to return a subclass of {@link com.mockrunner.mock.web.MockHttpServletResponse}. * @return the {@link com.mockrunner.mock.web.MockHttpServletResponse} */ public MockHttpServletResponse createMockResponse() { return new MockHttpServletResponse(); }
@Test public void testGetSingle() throws Exception { MockHttpServletResponse response = getAsServletResponse(BASEPATH + "?service=csw&version=2.0.2&request=GetRepositoryItem&id=urn:uuid:19887a8a-f6b0-4a63-ae56-7fba0e17801f"); String content = response.getOutputStreamContent(); // System.out.println(content); assertEquals(200, response.getStatusCode()); assertEquals("application/xml", response.getContentType()); String expected = "This is a random comment that will show up only when fetching the repository item"; assertTrue(content.contains(expected)); }
public String getContentType() { return getHeader("Content-Type"); }
public void addDateHeader(String key, long date) { addHeader(key, getDateString(date)); }
public String getOutput() { try { factory.getMockResponse().getWriter().flush(); } catch(Exception exc) { } return factory.getMockResponse().getOutputStreamContent(); } }
@Test public void testSort() throws Exception { // property data store does not support sorting MockHttpServletResponse response = getAsServletResponse(root() + "data/cite:Buildings?order_by=ADDRESS"); assertEquals(500, response.getStatusCode()); assertEquals(MediaType.TEXT_PLAIN.getName(), response.getContentType()); }
/** * If direct WMS integration is enabled, a GetMap requests that hits the regular WMS but matches * a gwc tile should return with the proper {@code geowebcache-tile-index} HTTP response header. */ public void testDirectWMSIntegration() throws Exception { final GWC gwc = GWC.get(); gwc.getConfig().setDirectWMSIntegrationEnabled(true); final String layerName = BASIC_POLYGONS.getPrefix() + ":" + BASIC_POLYGONS.getLocalPart(); String request; MockHttpServletResponse response; request = buildGetMap(true, layerName, "EPSG:4326", null); response = getAsServletResponse(request); assertEquals(200, response.getStatusCode()); assertEquals("image/png", response.getContentType()); assertNull(response.getHeader("geowebcache-tile-index")); request = request + "&tiled=true"; response = getAsServletResponse(request); assertEquals(200, response.getErrorCode()); assertEquals("image/png", response.getContentType()); }
/** * Test basic extension functionality: mime/type, headers, * not empty output generation. * @param resp * @param featureName * @return * @throws Exception */ public String testBasicResult(MockHttpServletResponse resp, String featureName) throws Exception { // check mime type assertEquals("application/dxf", resp.getContentType()); // check the content disposition assertEquals("attachment; filename=" + featureName + ".dxf", resp .getHeader("Content-Disposition")); // check for content (without checking in detail) String sResponse = resp.getOutputStreamContent(); assertNotNull(sResponse); return sResponse; }
MockHttpServletResponse response = new MockHttpServletResponse(); MockFilterChain chain = new MockFilterChain(); loginUsingTicket(helper, request, response, chain); assertEquals(HttpServletResponse.SC_OK, response.getErrorCode()); assertFalse(response.wasRedirectSent()); response = new MockHttpServletResponse(); chain = new MockFilterChain(); (GeoServerLogoutFilter) getSecurityManager().loadFilter(GeoServerSecurityFilterChain.FORM_LOGOUT_FILTER); logoutFilter.doFilter(request, response, chain); assertEquals(HttpServletResponse.SC_OK, response.getErrorCode()); assertTrue(response.wasRedirectSent()); String redirectUrl = response.getHeader("Location"); assertNotNull(redirectUrl); assertTrue(redirectUrl.contains(GeoServerCasConstants.LOGOUT_URI)); response = new MockHttpServletResponse(); chain = new MockFilterChain(); String ticket = loginUsingTicket(helper, request, response, chain); assertEquals(HttpServletResponse.SC_OK, response.getErrorCode()); assertFalse(response.wasRedirectSent()); request.setMethod("POST"); request.setSession(session); response = new MockHttpServletResponse(); chain = new MockFilterChain(); request.setupAddParameter("logoutRequest", getBodyForLogoutRequest(ticket));
/** * PUT creates a new layer, shall fail if the layer id is not provided, the layer name is, but * no such layer is found in the {@link Catalog} */ public void testPutNoIdBadLayerName() throws Exception { final String url = "gwc/rest/layers/badLayerName.xml"; MockHttpServletResponse response = putLayer(url, "", "badLayerName"); assertEquals(HttpServletResponse.SC_NOT_FOUND, response.getStatusCode()); // See GWCGeoServerRESTConfigurationProvider$RESTConverterHelper.unmarshal String expected = "GeoServer Layer or LayerGroup 'badLayerName' not found"; assertEquals(expected, response.getOutputStreamContent()); }
@Test public void testPercentSymbolInUriDoesNotThrowExceptionAndReturnsError400() throws Exception { // GIVEN String uri = "http://example.com/page~foo=bar%~.html"; state.setCurrentURI(uri); MockHttpServletResponse response = new MockHttpServletResponse(); // WHEN filter.doFilter(request, response, new FilterChain() { @Override public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { } }); // THEN assertThat("URL is malformed and we expect that error 400 Bad request is send back in response.", response.getErrorCode(), equalTo(400)); }
public void testDirectWMSIntegrationResponseHeaders() throws Exception { final GWC gwc = GWC.get(); gwc.getConfig().setDirectWMSIntegrationEnabled(true); final String layerName = BASIC_POLYGONS.getPrefix() + ":" + BASIC_POLYGONS.getLocalPart(); String request = buildGetMap(true, layerName, "EPSG:4326", null) + "&tiled=true"; MockHttpServletResponse response = getAsServletResponse(request); assertEquals(200, response.getStatusCode()); assertEquals("image/png", response.getContentType()); assertEquals(layerName, response.getHeader("geowebcache-layer")); assertEquals("[0, 0, 0]", response.getHeader("geowebcache-tile-index")); assertEquals("-180.0,-90.0,0.0,90.0", response.getHeader("geowebcache-tile-bounds")); assertEquals("EPSG:4326", response.getHeader("geowebcache-gridset")); assertEquals("EPSG:4326", response.getHeader("geowebcache-crs")); }
public void testExcel97OutputFormat() throws Exception { // grab the real binary stream, avoiding mangling to due char conversion MockHttpServletResponse resp = getAsServletResponse("wfs?request=GetFeature&version=1.0.0&typeName=sf:PrimitiveGeoFeature&outputFormat=excel"); InputStream in = getBinaryInputStream(resp); // check the mime type assertEquals("application/msexcel", resp.getContentType()); // check the content disposition assertEquals("attachment; filename=PrimitiveGeoFeature.xls", resp.getHeader("Content-Disposition")); HSSFWorkbook wb = new HSSFWorkbook(in); testExcelOutputFormat( wb ); }
public void testProcessChainingKVP() throws Exception { String nested = "http://geoserver/wps?service=WPS&version=1.0.0&request=Execute&Identifier=JTS:buffer" + "&DataInputs=" + urlEncode("geom=POINT(0 0)@mimetype=application/wkt;distance=10") + "&RawDataOutput=result"; String request = "wps?service=WPS&version=1.0.0&request=Execute&Identifier=JTS:area" + "&DataInputs=" + urlEncode("geom=@href=" + nested) + "&RawDataOutput=result"; MockHttpServletResponse resp = getAsServletResponse(request); assertEquals("text/plain", resp.getContentType()); // the result is inaccurate since the buffer is just a poor approximation of a circle assertTrue(resp.getOutputStreamContent().matches("312\\..*")); }
public void testPngIntegration() throws Exception { String layerId = getLayerId(MockData.BASIC_POLYGONS); MockHttpServletResponse sr = getAsServletResponse("gwc/service/wmts?request=GetTile&layer=" + layerId + "&format=image/png&tilematrixset=EPSG:4326&tilematrix=EPSG:4326:0&tilerow=0&tilecol=0"); assertEquals(200, sr.getErrorCode()); assertEquals("image/png", sr.getContentType()); }
@Test public void contentTypeIsNotSetIfAlreadySetDeeperInFilterChain() throws Exception { // GIVEN when(request.getRequestURI()).thenReturn("/requestURI.foo"); MockHttpServletResponse response = new MockHttpServletResponse(); // WHEN filter.doFilter(request, response, new FilterChain() { @Override public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { response.setContentType("mime/deeperInFilterChain"); } }); // THEN assertEquals("mime/deeperInFilterChain", response.getContentType()); }
@Test public void eTagDoesNotContainJSessionIdNorFilename() throws IOException, ServletException { // GIVEN final String filename = "dummy.txt"; final RangeSupportFilter filter = new RangeSupportFilter(); final FilterChain chain = new FilterChain() { @Override public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { response.getOutputStream().println("dummy string"); } }; final MockHttpServletRequest request = new MockHttpServletRequest(); request.setMethod("GET"); request.setRequestURI(String.format("/some/path/%s;JSESSIONID=EE3DB6042B1B57AD55C2633428F44496", filename)); request.setHeader("Range", "bytes=0-56000"); final MockHttpServletResponse response = new MockHttpServletResponse(); // WHEN filter.doFilter(request, response, chain); // THEN assertThat(response.getHeader("ETag"), not(containsString("JSESSIONID"))); assertThat(response.getHeader("ETag"), not(containsString(filename))); }
/** * Test DXF-ZIP format. * @throws Exception */ @Test public void testZipOutput() throws Exception { MockHttpServletResponse resp = getAsServletResponse("wfs?request=GetFeature&version=1.1.0&typeName=Points&outputFormat=dxf-zip"); // check mime type assertEquals("application/zip", resp.getContentType()); }
public int getStatus() { return getStatusCode(); }
/** * Checks the bounds process returned the expected envelope * @param request * @param id * @throws Exception */ void executeState1BoundsTest(String request, String id) throws Exception { if (!RemoteOWSTestSupport.isRemoteWMSStatesAvailable(LOGGER)) { LOGGER.warning("Remote OWS tests disabled, skipping test with " + id + " reference source"); return; } MockHttpServletResponse resp = postAsServletResponse(root(), request); ReferencedEnvelope re = toEnvelope(resp.getOutputStreamContent()); assertEquals(-91.516129, re.getMinX(), 0.001); assertEquals(36.986771, re.getMinY(), 0.001); assertEquals(-87.507889, re.getMaxX(), 0.001); assertEquals(42.509361, re.getMaxY(), 0.001); }