Example usage for org.springframework.mock.web MockHttpServletResponse getHeader

List of usage examples for org.springframework.mock.web MockHttpServletResponse getHeader

Introduction

In this page you can find the example usage for org.springframework.mock.web MockHttpServletResponse getHeader.

Prototype

@Override
@Nullable
public String getHeader(String name) 

Source Link

Document

Return the primary value for the given header as a String, if any.

Usage

From source file:org.geoserver.rest.resources.ResourceControllerTest.java

@Test
public void testDirectoryHeaders() throws Exception {
    MockHttpServletResponse response = getAsServletResponse(
            RestBaseController.ROOT_PATH + "/resource/mydir?format=xml");
    Assert.assertEquals(FORMAT_HEADER.format(myRes.parent().lastmodified()),
            response.getHeader("Last-Modified"));
    Assert.assertEquals("http://localhost:8080/geoserver" + RestBaseController.ROOT_PATH + "/resource/",
            response.getHeader("Resource-Parent"));
    Assert.assertEquals("directory", response.getHeader("Resource-Type"));
    assertContentType("application/xml", response);
}

From source file:org.geoserver.rest.resources.ResourceControllerTest.java

@Test
public void testDirectoryHead() throws Exception {
    MockHttpServletResponse response = headAsServletResponse(
            RestBaseController.ROOT_PATH + "/resource/mydir?format=xml");
    Assert.assertEquals(FORMAT_HEADER.format(myRes.parent().lastmodified()),
            response.getHeader("Last-Modified"));
    Assert.assertEquals("http://localhost:8080/geoserver" + RestBaseController.ROOT_PATH + "/resource/",
            response.getHeader("Resource-Parent"));
    Assert.assertEquals("directory", response.getHeader("Resource-Type"));
    assertContentType("application/xml", response);
}

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);//  ww  w .  j a v  a2s. 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 w w.  j a  v  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 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);/* w w w.j  av  a 2  s  . co 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.wcs.responses.GHRSSTWCSTest.java

/**
 * Test NetCDF output from a coverage view having the required GHRSST bands/variables
 *//*from  w ww.jav a2  s  .  c o  m*/
@Test
public void testGHRSST() throws Exception {
    MockHttpServletResponse response = getAsServletResponse("ows?request=GetCoverage&service=WCS&version=2.0.1"
            + "&coverageid=" + getLayerId(SST).replace(":", "__") + "&format=application/x-netcdf");
    assertEquals(200, response.getStatus());
    assertEquals("application/x-netcdf", response.getContentType());

    // hope the file name structure is correct, not 100% sure 
    String contentDispostion = response.getHeader("Content-disposition");
    assertEquals("inline; filename=19121213214553-EUR-L3U_GHRSST-SSTint-AVHRR_METOP_A-v02.0-fv01.0.nc",
            contentDispostion);
    byte[] responseBytes = getBinary(response);
    File file = File.createTempFile("ghrsst", ".nc", new File("./target"));
    FileUtils.writeByteArrayToFile(file, responseBytes);
    try (NetcdfDataset dataset = NetcdfDataset.openDataset(file.getAbsolutePath(), true, null)) {
        assertNotNull(dataset);

        // check global attributes
        Map<String, Attribute> globalAttributes = getGlobalAttributeMap(dataset);
        assertNotNull(globalAttributes.get("uuid"));
        UUID.fromString(globalAttributes.get("uuid").getStringValue());
        assertNotNull(globalAttributes.get("date_created"));
        assertNotNull(globalAttributes.get("spatial_resolution"));
        // input test file is a freak that really has this resolution, as verified with gdalinfo
        // e.g. gdalinfo NETCDF:"sst-orbit053.nc":"sea_surface_temperature"
        assertEquals("179.9499969482422 degrees", globalAttributes.get("spatial_resolution").getStringValue());
        // likewise, it really has time time
        assertNotNull(globalAttributes.get("start_time"));
        assertNotNull(globalAttributes.get("time_coverage_start"));
        assertEquals("19121213T204553Z", globalAttributes.get("start_time").getStringValue());
        assertEquals("19121213T204553Z", globalAttributes.get("time_coverage_start").getStringValue());
        assertNotNull(globalAttributes.get("stop_time"));
        assertNotNull(globalAttributes.get("time_coverage_end"));
        assertEquals("19121213T204553Z", globalAttributes.get("stop_time").getStringValue());
        assertEquals("19121213T204553Z", globalAttributes.get("time_coverage_end").getStringValue());
        // and these bounds
        double EPS = 1e-3;
        assertNotNull(globalAttributes.get("northernmost_latitude"));
        assertNotNull(globalAttributes.get("southernmost_latitude"));
        assertNotNull(globalAttributes.get("westernmost_longitude"));
        assertNotNull(globalAttributes.get("easternmost_longitude"));
        assertEquals(119.925, globalAttributes.get("northernmost_latitude").getNumericValue().doubleValue(),
                EPS);
        assertEquals(-119.925, globalAttributes.get("southernmost_latitude").getNumericValue().doubleValue(),
                EPS);
        assertEquals(-269.925, globalAttributes.get("westernmost_longitude").getNumericValue().doubleValue(),
                EPS);
        assertEquals(269.925, globalAttributes.get("easternmost_longitude").getNumericValue().doubleValue(),
                EPS);
        // resolution, take 2
        assertNotNull(globalAttributes.get("geospatial_lat_units"));
        assertNotNull(globalAttributes.get("geospatial_lon_units"));
        assertEquals("degrees", globalAttributes.get("geospatial_lat_units").getStringValue());
        assertEquals("degrees", globalAttributes.get("geospatial_lon_units").getStringValue());

        // sea surface temperature
        Variable sst = dataset.findVariable("sea_surface_temperature");
        assertNotNull(sst);
        assertEquals(DataType.SHORT, sst.getDataType());
        assertNotNull(sst.findAttribute("scale_factor"));
        assertNotNull(sst.findAttribute("add_offset"));
        assertAttributeValue(sst, "comment", "Marine skin surface temperature");
        assertAttributeValue(sst, "long_name", "sea surface skin temperature");
        assertAttributeValue(sst, "standard_name", "sea_surface_skin_temperature");
        assertAttributeValue(sst, "units", "kelvin");
        assertAttributeValue(sst, "depth", "10 micrometres");

        // wind speed
        Variable windSpeed = dataset.findVariable("wind_speed");
        assertNotNull(windSpeed);
        assertEquals(DataType.BYTE, windSpeed.getDataType());
        assertNotNull(windSpeed.findAttribute("scale_factor"));
        assertNotNull(windSpeed.findAttribute("add_offset"));
        assertAttributeValue(windSpeed, "comment",
                "Typically represents surface winds (10 meters above the sea " + "surface)");
        assertAttributeValue(windSpeed, "long_name", "wind speed");
        assertAttributeValue(windSpeed, "standard_name", "wind_speed");
        assertAttributeValue(windSpeed, "units", "m s-1");

        // enable ehancing to check values
        dataset.enhance(NetcdfDataset.getEnhanceAll());
        assertValues(dataset, "sea_surface_temperature",
                new double[] { 301, 302, 303, 304, 305, 306, 307, 308, 309 }, 2e-3);
        assertValues(dataset, "wind_speed", new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }, 0.2);
    } finally {
        // FileUtils.deleteQuietly(file);
    }
}

From source file:org.geoserver.wps.ExecuteTest.java

@Test
public void testWKTInlineRawOutput() throws Exception { // Standard Test A.4.4.3
    String xml = "<wps:Execute service='WPS' version='1.0.0' xmlns:wps='http://www.opengis.net/wps/1.0.0' "
            + "xmlns:ows='http://www.opengis.net/ows/1.1'>" + "<ows:Identifier>JTS:buffer</ows:Identifier>"
            + "<wps:DataInputs>" + "<wps:Input>" + "<ows:Identifier>distance</ows:Identifier>" + "<wps:Data>"
            + "<wps:LiteralData>1</wps:LiteralData>" + "</wps:Data>" + "</wps:Input>" + "<wps:Input>"
            + "<ows:Identifier>geom</ows:Identifier>" + "<wps:Data>"
            + "<wps:ComplexData mimeType=\"application/wkt\">"
            + "<![CDATA[POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))]]>" + "</wps:ComplexData>" + "</wps:Data>"
            + "</wps:Input>" + "</wps:DataInputs>" + "<wps:ResponseForm>"
            + "    <wps:RawDataOutput mimeType=\"application/wkt\">"
            + "        <ows:Identifier>result</ows:Identifier>" + "    </wps:RawDataOutput>"
            + "  </wps:ResponseForm>" + "</wps:Execute>";

    // print(dom(new StringInputStream("<?xml version=\"1.0\" encoding=\"UTF-16\"?>\n" + xml)));

    MockHttpServletResponse response = postAsServletResponse("wps", xml);
    // System.out.println(response.getOutputStreamContent());
    assertEquals("application/wkt", response.getContentType());
    String cd = response.getHeader("Content-Disposition");
    assertTrue(cd.endsWith("filename=result.wkt"));
    Geometry g = new WKTReader().read(response.getContentAsString());
    Assert.assertTrue(g instanceof Polygon);
}

From source file:org.geoserver.wps.gs.download.DownloadMapProcessTest.java

@Test
public void testExecuteMultiName() throws Exception {
    String xml = IOUtils.toString(getClass().getResourceAsStream("mapMultiName.xml"));
    MockHttpServletResponse response = postAsServletResponse("wps", xml);
    assertEquals("image/png", response.getContentType());
    assertEquals("inline; filename=result.png", response.getHeader("Content-disposition"));
    BufferedImage image = ImageIO.read(new ByteArrayInputStream(response.getContentAsByteArray()));
    ImageAssert.assertEquals(new File(SAMPLES + "mapMultiName.png"), image, 100);
}

From source file:org.geoserver.wps.gs.download.DownloadMapProcessTest.java

@Test
public void testExecuteGeotiff() throws Exception {
    String request = IOUtils.toString(getClass().getResourceAsStream("mapMultiLayer.xml"));
    request = request.replaceAll("image/png", "image/geotiff");
    MockHttpServletResponse response = postAsServletResponse("wps", request);
    assertEquals("image/geotiff", response.getContentType());
    assertEquals("attachment; filename=result.tif", response.getHeader("Content-disposition"));
}

From source file:org.geoserver.wps.gs.download.DownloadMapProcessTest.java

public void testExecutMultiLayerKmz(String mime) throws Exception {
    String request = IOUtils.toString(getClass().getResourceAsStream("mapMultiLayer.xml"));
    request = request.replaceAll("image/png", mime);
    MockHttpServletResponse response = postAsServletResponse("wps", request);
    assertEquals(KMZMapOutputFormat.MIME_TYPE, response.getContentType());
    assertEquals("inline; filename=result.kmz", response.getHeader("Content-disposition"));

    ZipInputStream zis = new ZipInputStream(new ByteArrayInputStream(response.getContentAsByteArray()));
    try {/*  w  w  w  . j a  v a2s  . com*/
        // first entry, the kml document itself
        ZipEntry entry = zis.getNextEntry();
        assertEquals("wms.kml", entry.getName());
        byte[] data = IOUtils.toByteArray(zis);
        Document dom = dom(new ByteArrayInputStream(data));
        // print(dom);
        assertXpathEvaluatesTo("1", "count(//kml:Folder/kml:GroundOverlay)", dom);
        String href = XMLUnit.newXpathEngine().evaluate("//kml:Folder/kml:GroundOverlay/kml:Icon/kml:href",
                dom);
        assertEquals("image.png", href);
        zis.closeEntry();

        // the ground overlay for the raster layer
        entry = zis.getNextEntry();
        assertEquals("image.png", entry.getName());
        BufferedImage image = ImageIO.read(zis);
        zis.closeEntry();
        assertNull(zis.getNextEntry());

        // check the output, same as mapMultiName
        ImageAssert.assertEquals(new File(SAMPLES + "mapMultiName.png"), image, 100);
    } finally {
        zis.close();
    }
}