/* (c) 2014 - 2016 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.script.function;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import org.apache.commons.io.FileUtils;
import org.geoserver.script.ScriptIntTestSupport;
import org.geoserver.wms.WMSTestSupport;
import org.w3c.dom.Document;
import org.springframework.mock.web.MockHttpServletResponse;
public class ScriptFunctionIntTest extends ScriptIntTestSupport {
@Override
protected void setUpInternal() throws Exception {
super.setUpInternal();
File script = new File(getScriptManager().function().dir(), "wfs.js");
FileUtils.copyURLToFile(getClass().getResource(script.getName()), script);
script = new File(getScriptManager().function().dir(), "sld.js");
FileUtils.copyURLToFile(getClass().getResource(script.getName()), script);
}
public void testWFS() throws Exception {
String xml =
"<wfs:GetFeature " + "service=\"WFS\" version=\"1.1.0\" "
+ "xmlns:sf=\"http://cite.opengeospatial.org/gmlsf\" "
+ "xmlns:wfs=\"http://www.opengis.net/wfs\" "
+ "xmlns:ogc=\"http://www.opengis.net/ogc\" > "
+ "<wfs:Query typeName=\"sf:PrimitiveGeoFeature\"> "
+ "<ogc:Filter>"
+ "<ogc:PropertyIsEqualTo> "
+ "<ogc:Function name=\"wfs\">"
+ "</ogc:Function> "
+ "<ogc:Literal>true</ogc:Literal> "
+ "</ogc:PropertyIsEqualTo> "
+ "</ogc:Filter> "
+ "</wfs:Query>"
+"</wfs:GetFeature>";
Document dom = postAsDOM("wfs", xml);
assertEquals(1, dom.getElementsByTagName("sf:intProperty").getLength());
assertEquals("180",
dom.getElementsByTagName("sf:intProperty").item(0).getFirstChild().getNodeValue());
}
public void testSLD() throws Exception {
String sld =
"<StyledLayerDescriptor xmlns:ogc='http://www.opengis.net/ogc'>"+
" <UserLayer> "+
" <Name>BasicPolygons</Name>" +
" <UserStyle> "+
" <Name>UserSelection</Name> "+
" <FeatureTypeStyle> "+
" <Rule> "+
" <PolygonSymbolizer>"+
" <Geometry>"+
" <ogc:Function name='sld'>"+
" <ogc:PropertyName>the_geom</ogc:PropertyName>"+
" </ogc:Function>"+
" </Geometry>"+
" <Fill>"+
" <CssParameter name='fill'>#777777</CssParameter>"+
" </Fill>"+
" <Stroke>"+
" <CssParameter name='stroke'>#000000</CssParameter>"+
" <CssParameter name='stroke-width'>2</CssParameter>"+
" </Stroke>"+
" </PolygonSymbolizer>"+
" </Rule> "+
" </FeatureTypeStyle> "+
" </UserStyle> "+
" </UserLayer> "+
"</StyledLayerDescriptor>";
MockHttpServletResponse response = getAsServletResponse("wms?request=GetMap&version=1.1.1" +
"&bbox=-10,-10,10,10&format=image/png&&width=500&height=500&srs=EPSG:4326" +
"&SLD_BODY=" + sld.replaceAll("=", "%3D"));
assertEquals("image/png", response.getContentType());
BufferedImage img = ImageIO.read(getBinaryInputStream(response));
WMSTestSupport.showImage("test", img);
}
}