Package org.geoserver.wms.wms_1_1_1

Source Code of org.geoserver.wms.wms_1_1_1.CapabilitiesAllowedMimeTypesTest

/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2014 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.wms.wms_1_1_1;

import org.custommonkey.xmlunit.XMLUnit;
import org.custommonkey.xmlunit.XpathEngine;
import org.geoserver.wms.GetMapOutputFormat;
import org.geoserver.wms.WMSInfo;
import org.geoserver.wms.WMSTestSupport;
import org.geoserver.wms.featureinfo.GetFeatureInfoOutputFormat;
import org.geoserver.wms.featureinfo.TextFeatureInfoOutputFormat;
import org.geoserver.wms.map.RenderedImageMapOutputFormat;
import org.junit.After;
import org.junit.Assert;
import org.junit.Test;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;

public class CapabilitiesAllowedMimeTypesTest extends WMSTestSupport {

    GetMapOutputFormat getMapFormat;
    GetFeatureInfoOutputFormat getInfoFormat;
   
   
   
    void addMimeTypes() {
        getMapFormat = new RenderedImageMapOutputFormat(getWMS());
        getInfoFormat = new TextFeatureInfoOutputFormat(getWMS());
        WMSInfo wms = getWMS().getServiceInfo();
        wms.getGetMapMimeTypes().add(getMapFormat.getMimeType());
        wms.getGetFeatureInfoMimeTypes().add(getInfoFormat.getContentType());
        wms.setGetMapMimeTypeCheckingEnabled(true);
        wms.setGetFeatureInfoMimeTypeCheckingEnabled(true);
        getGeoServer().save(wms);
    }

   
    @After
    public void removeMimeTypes () {
        WMSInfo wms = getWMS().getServiceInfo();
        wms.getGetMapMimeTypes().clear();
        wms.getGetFeatureInfoMimeTypes().clear();
        wms.setGetMapMimeTypeCheckingEnabled(false);
        wms.setGetFeatureInfoMimeTypeCheckingEnabled(false);
        getGeoServer().save(wms);
    }


   
    @Test
    public void testAllowedMimeTypes() throws Exception {
       
        // check with no restrictions
        Document doc = getAsDOM("sf/PrimitiveGeoFeature/wms?service=WMS&request=getCapabilities&version=1.1.1", true);
        XpathEngine xpath = XMLUnit.newXpathEngine();
       
       
        NodeList formatNodes = xpath.getMatchingNodes("/WMT_MS_Capabilities/Capability/Request/GetMap/Format",
                doc);      
        Assert.assertTrue(formatNodes.getLength() > 1);
       
        formatNodes = xpath.getMatchingNodes("/WMT_MS_Capabilities/Capability/Request/GetFeatureInfo/Format",doc);
        Assert.assertTrue(formatNodes.getLength() > 1);
       
        // add mime type restrictions
        addMimeTypes();
       
        doc = getAsDOM("sf/PrimitiveGeoFeature/wms?service=WMS&request=getCapabilities&version==1.1.1", true);
        formatNodes = xpath.getMatchingNodes("/WMT_MS_Capabilities/Capability/Request/GetMap/Format",
                doc);      
        Assert.assertEquals(1,formatNodes.getLength());
        Assert.assertEquals(getMapFormat.getMimeType(),formatNodes.item(0).getTextContent());
       
        formatNodes = xpath.getMatchingNodes("/WMT_MS_Capabilities/Capability/Request/GetFeatureInfo/Format",doc);
        Assert.assertEquals(1,formatNodes.getLength());
        Assert.assertEquals(getInfoFormat.getContentType(),formatNodes.item(0).getTextContent());
               
        // remove restrictions
        removeMimeTypes();

        doc = getAsDOM("sf/PrimitiveGeoFeature/wms?service=WMS&request=getCapabilities&version==1.1.1", true);
        formatNodes = xpath.getMatchingNodes("/WMT_MS_Capabilities/Capability/Request/GetMap/Format",
                doc);      
        Assert.assertTrue(formatNodes.getLength() > 1);
       
        formatNodes = xpath.getMatchingNodes("/WMT_MS_Capabilities/Capability/Request/GetFeatureInfo/Format",doc);
        Assert.assertTrue(formatNodes.getLength() > 1);
               
       
    }

}
TOP

Related Classes of org.geoserver.wms.wms_1_1_1.CapabilitiesAllowedMimeTypesTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.