@Test public void testModifyGlobal() throws Exception { GeoServerInfo global = getGeoServer().getGlobal(); global.setAdminUsername("roadRunner"); global.setTitle("ACME"); getGeoServer().save(global); File f = new File(testData.getDataDirectoryRoot(), "global.xml"); Document dom = dom(f); assertXpathEvaluatesTo("roadRunner", "/global/adminUsername", dom); assertXpathEvaluatesTo("ACME", "/global/settings/title", dom); }
@Test public void readSettingsMetadataInvalidEntry() throws Exception { String xml = SettingsInfo settings = gs.getSettings(); MetadataMap metadata = settings.getMetadata(); assertEquals(2, metadata.size()); assertThat(metadata, hasEntry("key1", "value1")); assertThat(metadata, hasEntry("key2", "value2")); XMLAssert.assertXpathExists("//settings/metadata/map", doc); XMLAssert.assertXpathEvaluatesTo("2", "count(//settings/metadata/map/entry)", doc); XMLAssert.assertXpathEvaluatesTo("key1", "//settings/metadata/map/entry[1]/string[1]", doc); XMLAssert.assertXpathEvaluatesTo( "value1", "//settings/metadata/map/entry[1]/string[2]", doc); XMLAssert.assertXpathEvaluatesTo("key2", "//settings/metadata/map/entry[2]/string[1]", doc); XMLAssert.assertXpathEvaluatesTo( "value2", "//settings/metadata/map/entry[2]/string[2]", doc);
@Test public void testPersisterCustomization() throws Exception { Catalog catalog = new CatalogImpl(); assertEquals(ws, ws2); XMLAssert.assertXpathEvaluatesTo( "Musa acuminata", "/workspace/metadata/entry[@key='banana']/sweetBanana/@name",
@Test public void testGetObjectXML() throws Exception { // test getting xml for object demo:5 System.out.println("Running TestAPIM.testGetObjectXML..."); byte[] objectXML = TypeUtility.convertDataHandlerToBytes(apim .getObjectXML("demo:5")); assertTrue(objectXML.length > 0); String xmlIn = new String(objectXML, "UTF-8"); //System.out.println("***** Testcase: TestAPIM.testGetObjectXML demo:5\n"+xmlIn); assertXpathExists("foxml:digitalObject[@PID='demo:5']", xmlIn); assertXpathExists("//foxml:objectProperties/foxml:property[@NAME='info:fedora/fedora-system:def/model#state' and @VALUE='Active']", xmlIn); assertXpathExists("//foxml:objectProperties/foxml:property[@NAME='info:fedora/fedora-system:def/model#label' and @VALUE='Data Object (Coliseum) for Local Simple Image Demo']", xmlIn); assertXpathEvaluatesTo("6", "count(//foxml:datastream[@ID!='AUDIT'])", xmlIn); }
@Test public void testSectionsBogus() throws Exception { Document dom = getAsDOM("wcs?request=GetCapabilities&service=WCS§ions=Bogus"); Element root = dom.getDocumentElement(); assertEquals("ows:ExceptionReport", root.getNodeName()); assertEquals("2.0.0", root.getAttribute("version")); assertEquals("http://www.opengis.net/ows/2.0", root.getAttribute("xmlns:ows")); assertXpathEvaluatesTo( WcsExceptionCode.InvalidParameterValue.toString(), "/ows:ExceptionReport/ows:Exception/@exceptionCode", dom); }
void checkEmptyTimeDimensionAndExtent() throws Exception { Document dom = dom(get("wms?request=getCapabilities&version=1.1.1"), false); Element e = dom.getDocumentElement(); assertEquals("WMT_MS_Capabilities", e.getLocalName()); // check dimension info exists assertXpathEvaluatesTo("1", "count(//Layer/Dimension)", dom); assertXpathEvaluatesTo("time", "//Layer/Dimension/@name", dom); assertXpathEvaluatesTo("ISO8601", "//Layer/Dimension/@units", dom); // check we have the extent assertXpathEvaluatesTo("1", "count(//Layer/Extent)", dom); assertXpathEvaluatesTo("time", "//Layer/Extent/@name", dom); assertXpathEvaluatesTo( DimensionDefaultValueSetting.TIME_CURRENT, "//Layer/Extent/@default", dom); // and that it is empty assertXpathEvaluatesTo("", "//Layer/Extent", dom); }
private void assertProgress(String statusLocation, String progress) throws Exception { Document dom = getAsDOM(statusLocation); // print(dom); assertXpathExists("//wps:ProcessStarted", dom); assertXpathEvaluatesTo(progress, "//wps:ProcessStarted/@percentCompleted", dom); }
@Test public void testGetGlobalAsXML() throws Exception { Document dom = getAsDOM(RestBaseController.ROOT_PATH + "/settings.xml"); assertEquals("global", dom.getDocumentElement().getLocalName()); assertXpathEvaluatesTo("UTF-8", "/global/settings/charset", dom); assertXpathEvaluatesTo("8", "/global/settings/numDecimals", dom); assertXpathEvaluatesTo("http://geoserver.org", "/global/settings/onlineResource", dom); assertXpathEvaluatesTo("Andrea Aime", "/global/settings/contact/contactPerson", dom); assertXpathEvaluatesTo("false", "/global/jai/allowInterpolation", dom); assertXpathEvaluatesTo("0.75", "/global/jai/memoryThreshold", dom); assertXpathEvaluatesTo("UNBOUNDED", "/global/coverageAccess/queueType", dom); }
@Test public void testUpdateConfiguration() throws Exception { String config = "<properties><property name=\"toggleSlave\" value=\"false\"/></properties>"; MockHttpServletResponse response = postAsServletResponse("rest/cluster.xml", config); assertEquals(201, response.getStatus()); Document dom = getAsDOM("rest/cluster.xml"); // print(dom); // checking the property just modified assertXpathEvaluatesTo("false", "/properties/property[@name='toggleSlave']/@value", dom); }
@Test public void testTitleFilterCSWRecord() throws Exception { String request = "csw?service=CSW&version=2.0.2&request=GetRecords&typeNames=csw:Record&resultType=results&elementSetName=brief&outputSchema=http://www.isotc211.org/2005/gmd&constraint=dc:title like 'S%25'"; Document d = getAsDOM(request); //print(d); //validateSchema(d.getElementsByTagName("//gmd:MD_MetaData")); assertXpathEvaluatesTo("2", "//csw:SearchResults/@numberOfRecordsMatched", d); assertXpathEvaluatesTo("2", "//csw:SearchResults/@numberOfRecordsReturned", d); assertXpathEvaluatesTo("2", "count(//csw:SearchResults/*)", d); assertXpathExists("//gmd:MD_Metadata[gmd:identificationInfo/gmd:AbstractMD_Identification/gmd:citation/gmd:CI_Citation/gmd:title/gco:CharacterString='Streams']", d); assertXpathExists("//gmd:MD_Metadata[gmd:identificationInfo/gmd:AbstractMD_Identification/gmd:citation/gmd:CI_Citation/gmd:title/gco:CharacterString='Seven']", d); }
@Test public void testDefaultWorkspace() throws Exception { testAddWorkspace(); WorkspaceInfo ws = catalog.getWorkspaceByName("acme"); catalog.setDefaultWorkspace(ws); File dws = new File(testData.getDataDirectoryRoot(), "workspaces/default.xml"); assertTrue(dws.exists()); Document dom = dom(dws); assertXpathEvaluatesTo("acme", "/workspace/name", dom); }
@Test public void testPageResultDefaultPaginationGet() throws Exception { Document docIndex = getAsDOM( "ows?service=WFS&version=2.0.0&request=GetFeature&typeNames=cdf:Fifteen&resultType=index"); String resultSetId = docIndex.getDocumentElement().getAttribute("resultSetID"); Document docResutl = getAsDOM( "ows?service=WFS&version=2.0.2&request=PageResults&resultSetID=" + resultSetId); XMLAssert.assertXpathEvaluatesTo("10", "count(//cdf:Fifteen)", docResutl); }
public void testGetLayer() throws Exception { final String layerName = getLayerId(MockData.BASIC_POLYGONS); final String url = "gwc/rest/layers/" + layerName + ".xml"; final String id = getCatalog().getLayerByName(layerName).getId(); MockHttpServletResponse sr = getAsServletResponse(url); assertEquals(200, sr.getErrorCode()); assertTrue(sr.getContentType(), sr.getContentType().startsWith("text/xml")); Document dom = getAsDOM(url); print(dom); assertXpathExists("/GeoServerLayer", dom); assertXpathEvaluatesTo(id, "/GeoServerLayer/id", dom); assertXpathEvaluatesTo(layerName, "/GeoServerLayer/name", dom); assertXpathEvaluatesTo("true", "/GeoServerLayer/enabled", dom); assertXpathEvaluatesTo("image/png", "/GeoServerLayer/mimeFormats/string[1]", dom); assertXpathEvaluatesTo("image/jpeg", "/GeoServerLayer/mimeFormats/string[2]", dom); assertXpathEvaluatesTo("EPSG:900913", "/GeoServerLayer/gridSubsets/gridSubset[1]/gridSetName", dom); }
@Test public void testGetLocalAsXML() throws Exception { Document dom = getAsDOM(RestBaseController.ROOT_PATH + "/workspaces/sf/settings.xml"); assertEquals("settings", dom.getDocumentElement().getLocalName()); assertXpathEvaluatesTo("sf", "/settings/workspace/name", dom); assertXpathEvaluatesTo("UTF-8", "/settings/charset", dom); assertXpathEvaluatesTo("8", "/settings/numDecimals", dom); assertXpathEvaluatesTo("false", "/settings/verbose", dom); assertXpathEvaluatesTo("false", "/settings/verboseExceptions", dom); assertXpathEvaluatesTo("Andrea Aime", "/settings/contact/contactPerson", dom); }
@Test public void testPut() throws Exception { String xml = "<namespace>" + "<uri>http://changed</uri>" + "</namespace>"; MockHttpServletResponse response = putAsServletResponse( RestBaseController.ROOT_PATH + "/namespaces/gs", xml, "text/xml"); assertEquals(200, response.getStatus()); Document dom = getAsDOM(RestBaseController.ROOT_PATH + "/namespaces/gs.xml"); assertXpathEvaluatesTo("1", "count(//namespace/uri[text()='http://changed'])", dom); }
@Test public void testBasicGetLocalSchemaRecord() throws Exception { Document dom = getAsDOM("csw?service=CSW&version=2.0.2&request=DescribeRecord&typeName=csw:Record"); checkValidationErrors(dom); //print(dom); assertXpathEvaluatesTo("1", "count(//csw:SchemaComponent)", dom); assertXpathExists("//csw:SchemaComponent/xsd:schema[@targetNamespace='http://www.opengis.net/cat/csw/2.0.2']", dom); assertXpathEvaluatesTo("1", "count(//xsd:element[@name = 'BriefRecord'])", dom); assertXpathEvaluatesTo("1", "count(//xsd:element[@name = 'SummaryRecord'])", dom); assertXpathEvaluatesTo("1", "count(//xsd:element[@name = 'Record'])", dom); assertXpathEvaluatesTo("http://localhost:8080/geoserver/schemas/csw/2.0.2/rec-dcterms.xsd", "//xsd:import[@namespace = 'http://purl.org/dc/terms/']/@schemaLocation", dom); }
@Test public void testModifyStyle() throws Exception { testAddStyle(); StyleInfo s = catalog.getStyleByName("foostyle"); s.setFilename("foostyle2.sld"); catalog.save(s); File f = new File(testData.getDataDirectoryRoot(), "styles/foostyle.xml"); Document dom = dom(f); assertXpathEvaluatesTo("foostyle2.sld", "/style/filename", dom); }
@Test public void testPageResultOverridePaginationGet() throws Exception { Document docIndex = getAsDOM( "ows?service=WFS&version=2.0.0&request=GetFeature&typeNames=cdf:Fifteen&resultType=index&count=2&startIndex=6"); String resultSetId = docIndex.getDocumentElement().getAttribute("resultSetID"); Document docResutl = getAsDOM( "ows?service=WFS&version=2.0.2&request=PageResults&count=3&startIndex=5&resultSetID=" + resultSetId); XMLAssert.assertXpathEvaluatesTo("3", "count(//cdf:Fifteen)", docResutl); assertStartIndexCount(docResutl, "previous", 2, 3); assertStartIndexCount(docResutl, "next", 8, 3); }
public void testProcessFailure() throws Exception { // have the monkey throw an exception MonkeyProcess.exception("x1", new ProcessException("Sorry dude, things went pear shaped..."), false); String request = "wps?service=WPS&version=1.0.0&request=Execute&Identifier=gs:Monkey&DataInputs=" + urlEncode("id=x1"); Document dom = getAsDOM(request); checkValidationErrors(dom); assertXpathExists("//wps:ProcessFailed", dom); assertXpathEvaluatesTo("Process failed during execution\nSorry dude, things went pear shaped...", "//wps:ProcessFailed/ows:ExceptionReport/ows:Exception/ows:ExceptionText", dom); }
@Test public void testGetAsXML() throws Exception { Document dom = getAsDOM(RestBaseController.ROOT_PATH + "/services/wms/workspaces/sf/settings.xml"); assertEquals("wms", dom.getDocumentElement().getLocalName()); assertXpathEvaluatesTo("true", "/wms/enabled", dom); assertXpathEvaluatesTo("sf", "/wms/workspace/name", dom); assertXpathEvaluatesTo("WMS", "/wms/name", dom); assertXpathEvaluatesTo("false", "/wms/watermark/enabled", dom); assertXpathEvaluatesTo("Nearest", "/wms/interpolation", dom); }