Example usage for org.springframework.mock.web MockHttpServletRequest addHeader

List of usage examples for org.springframework.mock.web MockHttpServletRequest addHeader

Introduction

In this page you can find the example usage for org.springframework.mock.web MockHttpServletRequest addHeader.

Prototype

public void addHeader(String name, Object value) 

Source Link

Document

Add an HTTP header entry for the given name.

Usage

From source file:org.geoserver.importer.rest.ImportTaskControllerTest.java

@Test
public void testPostMultiPartFormData() throws Exception {
    MockHttpServletResponse resp = postAsServletResponse(RestBaseController.ROOT_PATH + "/imports", "");
    assertEquals(201, resp.getStatus());
    assertNotNull(resp.getHeader("Location"));

    String[] split = resp.getHeader("Location").split("/");
    Integer id = Integer.parseInt(split[split.length - 1]);
    ImportContext context = importer.getContext(id);
    assertNull(context.getData());/*www.  j a va 2  s .c o  m*/
    assertTrue(context.getTasks().isEmpty());

    File dir = unpack("shape/archsites_epsg_prj.zip");

    Part[] parts = new Part[] { new FilePart("archsites.shp", new File(dir, "archsites.shp")),
            new FilePart("archsites.dbf", new File(dir, "archsites.dbf")),
            new FilePart("archsites.shx", new File(dir, "archsites.shx")),
            new FilePart("archsites.prj", new File(dir, "archsites.prj")) };

    MultipartRequestEntity multipart = new MultipartRequestEntity(parts, new PostMethod().getParams());

    ByteArrayOutputStream bout = new ByteArrayOutputStream();
    multipart.writeRequest(bout);

    MockHttpServletRequest req = createRequest(RestBaseController.ROOT_PATH + "/imports/" + id + "/tasks");
    req.setContentType(multipart.getContentType());
    req.addHeader("Content-Type", multipart.getContentType());
    req.setMethod("POST");
    req.setContent(bout.toByteArray());
    resp = dispatch(req);

    context = importer.getContext(context.getId());
    assertNull(context.getData());
    assertEquals(1, context.getTasks().size());

    ImportTask task = context.getTasks().get(0);
    assertTrue(task.getData() instanceof SpatialFile);
    assertEquals(ImportTask.State.READY, task.getState());
}

From source file:org.geoserver.importer.rest.ImportTaskControllerTest.java

private ImportContext uploadGeotiffAndVerify(String taskName, InputStream geotiffResourceStream,
        String contentType, String createImportBody, String creationContentType) throws Exception {
    // upload  tif or zip file containing a tif and verify the results
    MockHttpServletResponse resp = postAsServletResponse(RestBaseController.ROOT_PATH + "/imports",
            createImportBody, creationContentType);
    assertEquals(201, resp.getStatus());
    assertNotNull(resp.getHeader("Location"));

    String[] split = resp.getHeader("Location").split("/");
    Integer id = Integer.parseInt(split[split.length - 1]);
    ImportContext context = importer.getContext(id);

    MockHttpServletRequest req = createRequest(
            RestBaseController.ROOT_PATH + "/imports/" + id + "/tasks/" + taskName);
    req.setContentType(contentType);//from   ww w  . j  av a  2s . c  om
    req.addHeader("Content-Type", contentType);
    req.setMethod("PUT");
    req.setContent(org.apache.commons.io.IOUtils.toByteArray(geotiffResourceStream));
    resp = dispatch(req);

    assertEquals(201, resp.getStatus());

    context = importer.getContext(context.getId());
    assertNull(context.getData());
    assertEquals(1, context.getTasks().size());

    ImportTask task = context.getTasks().get(0);
    assertEquals(ImportTask.State.READY, task.getState());

    ImportData importData = task.getData();
    assertTrue(importData instanceof SpatialFile);

    DataFormat format = importData.getFormat();
    assertTrue(format instanceof GridFormat);

    return context;
}

From source file:org.geoserver.ows.StylePublisherTest.java

private MockHttpServletResponse request(String[] path, String modifiedSince) throws Exception {
    MockHttpServletRequest request = new MockHttpServletRequest();
    request.setContextPath("/geoserver");
    request.setMethod("GET");
    StringBuilder b = new StringBuilder("/geoserver");
    for (int i = 0; i < path.length; i++) {
        b.append('/').append(path[i]);
    }/*from   ww w  .  j  a  v a2s  .co m*/
    String uri = URLEncoder.encode(b.toString(), "UTF-8");
    request.setRequestURI(uri);
    if (modifiedSince != null) {
        request.addHeader("If-Modified-Since", modifiedSince);
    }
    MockHttpServletResponse response = new MockHttpServletResponse();
    publisher.handleRequest(request, response);
    return response;
}

From source file:org.geoserver.rest.catalog.CoverageStoreFileUploadTest.java

@Test
public void testHarvestImageMosaic() throws Exception {
    // Upload of the Mosaic via REST
    URL zip = MockData.class.getResource("watertemp.zip");
    InputStream is = null;/*from w  w  w.j a  va  2  s. c  om*/
    byte[] bytes;
    try {
        is = zip.openStream();
        bytes = IOUtils.toByteArray(is);
    } finally {
        IOUtils.closeQuietly(is);
    }

    MockHttpServletResponse response = putAsServletResponse(
            RestBaseController.ROOT_PATH + "/workspaces/gs/coveragestores/watertemp2/file.imagemosaic", bytes,
            "application/zip");
    assertEquals(201, response.getStatus());

    // check the response contents
    String content = response.getContentAsString();
    Document d = dom(new ByteArrayInputStream(content.getBytes()));

    XMLAssert.assertXpathEvaluatesTo("watertemp2", "//coverageStore/name", d);
    XMLAssert.assertXpathEvaluatesTo("ImageMosaic", "//coverageStore/type", d);

    // check the coverage is actually there
    CoverageStoreInfo storeInfo = getCatalog().getCoverageStoreByName("watertemp2");
    assertNotNull(storeInfo);
    CoverageInfo ci = getCatalog().getCoverageByName("watertemp2");
    assertNotNull(ci);
    assertEquals(storeInfo, ci.getStore());

    // Harvesting of the Mosaic
    URL zipHarvest = MockData.class.getResource("harvesting.zip");
    // Extract a Byte array from the zip file
    is = null;
    try {
        is = zipHarvest.openStream();
        bytes = IOUtils.toByteArray(is);
    } finally {
        IOUtils.closeQuietly(is);
    }
    // Create the POST request
    MockHttpServletRequest request = createRequest(
            RestBaseController.ROOT_PATH + "/workspaces/gs/coveragestores/watertemp2/file.imagemosaic");
    request.setMethod("POST");
    request.setContentType("application/zip");
    request.setContent(bytes);
    request.addHeader("Content-type", "application/zip");
    // Get The response
    dispatch(request);
    // Get the Mosaic Reader
    GridCoverageReader reader = storeInfo.getGridCoverageReader(null, GeoTools.getDefaultHints());
    // Test if all the TIME DOMAINS are present
    String[] metadataNames = reader.getMetadataNames();
    assertNotNull(metadataNames);
    assertEquals("true", reader.getMetadataValue("HAS_TIME_DOMAIN"));
    assertEquals("2008-10-31T00:00:00.000Z,2008-11-01T00:00:00.000Z,2008-11-02T00:00:00.000Z",
            reader.getMetadataValue(metadataNames[0]));
}

From source file:org.geoserver.rest.catalog.CoverageStoreFileUploadTest.java

@Test
public void testHarvestNotAllowedOnSimpleCoverageStore() throws Exception {
    // add bluemarble
    getTestData().addDefaultRasterLayer(SystemTestData.TASMANIA_BM, getCatalog());

    // Harvesting of the Mosaic
    URL zipHarvest = MockData.class.getResource("harvesting.zip");
    // Extract a Byte array from the zip file
    InputStream is = null;/*from  ww w  . ja va2 s  .com*/
    byte[] bytes;
    try {
        is = zipHarvest.openStream();
        bytes = IOUtils.toByteArray(is);
    } finally {
        IOUtils.closeQuietly(is);
    }
    // Create the POST request
    MockHttpServletRequest request = createRequest(
            RestBaseController.ROOT_PATH + "/workspaces/wcs/coveragestores/BlueMarble");
    request.setMethod("POST");
    request.setContentType("application/zip");
    request.setContent(bytes);
    request.addHeader("Content-type", "application/zip");
    // Get The response
    MockHttpServletResponse response = dispatch(request);
    // not allowed
    assertEquals(405, response.getStatus());
}

From source file:org.geoserver.rest.catalog.CoverageStoreFileUploadTest.java

@Test
public void testHarvestImageMosaicWithDirectory() throws Exception {
    // Upload of the Mosaic via REST
    URL zip = MockData.class.getResource("watertemp.zip");
    InputStream is = null;/*from ww w.j a v a 2s. c o m*/
    byte[] bytes;
    try {
        is = zip.openStream();
        bytes = IOUtils.toByteArray(is);
    } finally {
        IOUtils.closeQuietly(is);
    }

    MockHttpServletResponse response = putAsServletResponse(
            RestBaseController.ROOT_PATH + "/workspaces/gs/coveragestores/watertemp3/file.imagemosaic", bytes,
            "application/zip");
    assertEquals(201, response.getStatus());

    // check the response contents
    String content = response.getContentAsString();
    Document d = dom(new ByteArrayInputStream(content.getBytes()));

    XMLAssert.assertXpathEvaluatesTo("watertemp3", "//coverageStore/name", d);
    XMLAssert.assertXpathEvaluatesTo("ImageMosaic", "//coverageStore/type", d);

    // check the coverage is actually there
    CoverageStoreInfo storeInfo = getCatalog().getCoverageStoreByName("watertemp3");
    assertNotNull(storeInfo);
    CoverageInfo ci = getCatalog().getCoverageByName("watertemp3");
    assertNotNull(ci);
    assertEquals(storeInfo, ci.getStore());

    // Harvesting of the Mosaic
    URL zipHarvest = MockData.class.getResource("harvesting.zip");
    Resource newZip = Files.asResource(new File("./target/harvesting2.zip"));
    // Copy the content of the first zip to the second
    IOUtils.copyStream(zipHarvest.openStream(), newZip.out(), true, true);
    Resource outputDirectory = Files.asResource(new File("./target/harvesting"));
    RESTUtils.unzipFile(newZip, outputDirectory);
    // Create the POST request
    MockHttpServletRequest request = createRequest(
            RestBaseController.ROOT_PATH + "/workspaces/gs/coveragestores/watertemp3/external.imagemosaic");
    request.setMethod("POST");
    request.setContentType("text/plain");
    request.setContent(("file:///" + outputDirectory.dir().getAbsolutePath()).getBytes("UTF-8"));
    request.addHeader("Content-type", "text/plain");
    // Get The response
    dispatch(request);
    // Get the Mosaic Reader
    GridCoverageReader reader = storeInfo.getGridCoverageReader(null, GeoTools.getDefaultHints());
    // Test if all the TIME DOMAINS are present
    String[] metadataNames = reader.getMetadataNames();
    assertNotNull(metadataNames);
    assertEquals("true", reader.getMetadataValue("HAS_TIME_DOMAIN"));
    assertEquals("2008-10-31T00:00:00.000Z,2008-11-01T00:00:00.000Z,2008-11-02T00:00:00.000Z",
            reader.getMetadataValue(metadataNames[0]));
    // Removal of the temporary directory
    outputDirectory.delete();
}

From source file:org.geoserver.rest.catalog.CoverageStoreFileUploadTest.java

@Test
public void testHarvestExternalImageMosaic() throws Exception {
    // Check if an already existing directory called "mosaic" is present
    URL resource = getClass().getResource("test-data/mosaic");
    if (resource != null) {
        File oldDir = DataUtilities.urlToFile(resource);
        if (oldDir.exists()) {
            FileUtils.deleteDirectory(oldDir);
        }//from   ww  w.j a va2s  .c  o  m
    }
    // reading of the mosaic directory
    Resource mosaic = readMosaic();
    // Creation of the builder for building a new CoverageStore
    CatalogBuilder builder = new CatalogBuilder(getCatalog());
    // Definition of the workspace associated to the coverage
    WorkspaceInfo ws = getCatalog().getWorkspaceByName("gs");
    // Creation of a CoverageStore
    CoverageStoreInfo store = builder.buildCoverageStore("watertemp4");
    store.setURL(DataUtilities.fileToURL(Resources.find(mosaic)).toExternalForm());
    store.setWorkspace(ws);
    ImageMosaicFormat imageMosaicFormat = new ImageMosaicFormat();
    store.setType((imageMosaicFormat.getName()));
    // Addition to the catalog
    getCatalog().add(store);
    builder.setStore(store);
    // Input reader used for reading the mosaic folder
    GridCoverage2DReader reader = null;
    // Reader used for checking if the mosaic has been configured correctly
    StructuredGridCoverage2DReader reader2 = null;

    try {
        // Selection of the reader to use for the mosaic
        reader = imageMosaicFormat.getReader(DataUtilities.fileToURL(Resources.find(mosaic)));

        // configure the coverage
        configureCoverageInfo(builder, store, reader);

        // check the coverage is actually there
        CoverageStoreInfo storeInfo = getCatalog().getCoverageStoreByName("watertemp4");
        assertNotNull(storeInfo);
        CoverageInfo ci = getCatalog().getCoverageByName("mosaic");
        assertNotNull(ci);
        assertEquals(storeInfo, ci.getStore());

        // Harvesting of the Mosaic
        URL zipHarvest = MockData.class.getResource("harvesting.zip");
        // Extract a Byte array from the zip file
        InputStream is = null;
        byte[] bytes;
        try {
            is = zipHarvest.openStream();
            bytes = IOUtils.toByteArray(is);
        } finally {
            IOUtils.closeQuietly(is);
        }
        // Create the POST request
        MockHttpServletRequest request = createRequest(
                RestBaseController.ROOT_PATH + "/workspaces/gs/coveragestores/watertemp4/file.imagemosaic");
        request.setMethod("POST");
        request.setContentType("application/zip");
        request.setContent(bytes);
        request.addHeader("Content-type", "application/zip");
        // Get The response
        MockHttpServletResponse response = dispatch(request);
        // Get the Mosaic Reader
        reader2 = (StructuredGridCoverage2DReader) storeInfo.getGridCoverageReader(null,
                GeoTools.getDefaultHints());
        // Test if all the TIME DOMAINS are present
        String[] metadataNames = reader2.getMetadataNames();
        assertNotNull(metadataNames);
        assertEquals("true", reader2.getMetadataValue("HAS_TIME_DOMAIN"));
        assertEquals("2008-10-31T00:00:00.000Z,2008-11-01T00:00:00.000Z,2008-11-02T00:00:00.000Z",
                reader2.getMetadataValue(metadataNames[0]));
        // Removal of all the data associated to the mosaic
        reader2.delete(true);
    } finally {
        // Reader disposal
        if (reader != null) {
            try {
                reader.dispose();
            } catch (Throwable t) {
                // Does nothing
            }
        }
        if (reader2 != null) {
            try {
                reader2.dispose();
            } catch (Throwable t) {
                // Does nothing
            }
        }
    }
}

From source file:org.geoserver.rest.catalog.CoverageStoreFileUploadTest.java

private StructuredGridCoverage2DReader uploadGeotiffAndCheck(CoverageStoreInfo storeInfo, byte[] bytes,
        String filename) throws Exception {
    StructuredGridCoverage2DReader reader2;
    // Create the POST request
    MockHttpServletRequest request = createRequest(RestBaseController.ROOT_PATH
            + "/workspaces/gs/coveragestores/watertemp5/file.imagemosaic?filename=" + filename);
    request.setMethod("POST");
    request.setContentType("image/tiff");
    request.setContent(bytes);//from w w  w . jav  a  2  s. co m
    request.addHeader("Content-type", "image/tiff");
    // Get The response
    assertEquals(202, dispatch(request).getStatus());
    // Get the Mosaic Reader
    reader2 = (StructuredGridCoverage2DReader) storeInfo.getGridCoverageReader(null,
            GeoTools.getDefaultHints());
    // Test if all the TIME DOMAINS are present
    String[] metadataNames = reader2.getMetadataNames();
    assertNotNull(metadataNames);
    assertEquals("true", reader2.getMetadataValue("HAS_TIME_DOMAIN"));
    assertEquals("2008-10-31T00:00:00.000Z,2008-11-01T00:00:00.000Z,2008-11-02T00:00:00.000Z",
            reader2.getMetadataValue(metadataNames[0]));
    return reader2;
}

From source file:org.geoserver.rest.catalog.MBStyleControllerTest.java

@Test
public void getBodyAsJsonUsingAcceptHeader() throws Exception {
    MockHttpServletRequest request = createRequest("/rest/styles/teststyle");
    request.setMethod("GET");
    request.addHeader("Accept", MBStyleHandler.MIME_TYPE);
    MockHttpServletResponse response = dispatch(request);

    assertEquals(200, response.getStatus());
    assertEquals(MBStyleHandler.MIME_TYPE, response.getContentType());
    String responseContent = response.getContentAsString();
    String expected = IOUtils.toString(this.getClass().getResourceAsStream("teststyle.json"));
    assertEquals(expected, responseContent);
}

From source file:org.geoserver.rest.catalog.MBStyleControllerTest.java

@Test
public void getBodyAsSLDUsingAcceptHeader() throws Exception {
    MockHttpServletRequest request = createRequest("/rest/styles/teststyle");
    request.setMethod("GET");
    request.addHeader("Accept", SLDHandler.MIMETYPE_10);
    MockHttpServletResponse response = dispatch(request);

    assertEquals(200, response.getStatus());
    assertEquals(SLDHandler.MIMETYPE_10, response.getContentType());
    String content = response.getContentAsString();
    assertTrue(content.contains("<sld:Name>test-layer</sld:Name>"));
}