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.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());
}