From 8d1d08b0c2991caa8b6f6e690ebb606b69b7d715 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Brunner?= Date: Sat, 3 Mar 2012 19:58:41 +0100 Subject: [PATCH] add tests to create a REST WMTS Layer --- tests/Format/WMTSCapabilities/v1_0_0.html | 238 +++++++++++++++++++--- 1 file changed, 206 insertions(+), 32 deletions(-) diff --git a/tests/Format/WMTSCapabilities/v1_0_0.html b/tests/Format/WMTSCapabilities/v1_0_0.html index f8b5a37215..99dbcda238 100644 --- a/tests/Format/WMTSCapabilities/v1_0_0.html +++ b/tests/Format/WMTSCapabilities/v1_0_0.html @@ -43,15 +43,15 @@ undefined, "ows:OperationsMetadata GetTile Constraints Get is correct"); } - + function test_layers(t) { t.plan(37); var xml = document.getElementById("ogcsample").firstChild.nodeValue; var doc = new OpenLayers.Format.XML().read(xml); - + var obj = new OpenLayers.Format.WMTSCapabilities().read(doc); var contents = obj.contents; - + var numOfLayers = contents.layers.length; t.eq(numOfLayers, 1, "correct count of layers"); @@ -89,11 +89,11 @@ t.eq(wgs84Bbox.top, 90.0, "wgs84BoudingBox top is correct"); t.eq(layer.resourceUrl.tile.format, "image/png", "resourceUrl.tile.format is correct"); - t.eq(layer.resourceUrl.tile.template, "http://www.example.com/wmts/coastlines/{TileMatrix}/{TileRow}/{TileCol}.png", + t.eq(layer.resourceUrl.tile.template, "http://www.example.com/wmts/coastlines/{TileMatrix}/{TileRow}/{TileCol}.png", "resourceUrl.tile.template is correct"); t.eq(layer.resourceUrl.FeatureInfo.format, "application/gml+xml; version=3.1", "resourceUrl.FeatureInfo.format is correct"); - t.eq(layer.resourceUrl.FeatureInfo.template, "http://www.example.com/wmts/coastlines/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}/{J}/{I}.xml", + t.eq(layer.resourceUrl.FeatureInfo.template, "http://www.example.com/wmts/coastlines/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}/{J}/{I}.xml", "resourceUrl.FeatureInfo.template is correct"); var dimensions = layer.dimensions; @@ -112,7 +112,7 @@ t.plan(19); var xml = document.getElementById("ogcsample").firstChild.nodeValue; var doc = new OpenLayers.Format.XML().read(xml); - + var obj = new OpenLayers.Format.WMTSCapabilities().read(doc); var tileMatrixSets = obj.contents.tileMatrixSets; @@ -138,54 +138,100 @@ t.eq(bigWorld.matrixIds[1].topLeftCorner.lon, -180, "tileMatrix 1 topLeftCorner.lon is correct"); t.eq(bigWorld.matrixIds[1].topLeftCorner.lat, 84, "tileMatrix 1 topLeftCorner.lat is correct"); } - + function test_createLayer(t) { - t.plan(7); - + t.plan(27); + var format = new OpenLayers.Format.WMTSCapabilities(); var xml = document.getElementById("ogcsample").firstChild.nodeValue; var doc = new OpenLayers.Format.XML().read(xml); - + var caps = format.read(doc); var layer; - + var success = true; try { - // incomplete config (missing matrixSet) + // incomplete config (missing layer) layer = format.createLayer(caps, { - layer: "coastlines" }); } catch (err) { success = false; } t.ok(!success, "createLayer throws error if provided incomplete layer config"); - + // bogus layer identifier - layer = format.createLayer(caps, { - layer: "foo", - matrixSet: "BigWorld" - }); - t.eq(layer, undefined, "createLayer returns undefined given bad layer identifier"); - + try { + layer = format.createLayer(caps, { + layer: "foo", + matrixSet: "BigWorld" + }); + } catch (err) { + success = false; + } + t.ok(!success, "createLayer returns undefined given bad layer identifier"); + // bogus matrixSet identifier - layer = format.createLayer(caps, { - layer: "coastlines", - matrixSet: "TheWorld" - }); - t.eq(layer, undefined, "createLayer returns undefined given bad matrixSet identifier"); - + try { + layer = format.createLayer(caps, { + layer: "coastlines", + matrixSet: "TheWorld" + }); + } catch (err) { + success = false; + } + t.ok(!success, "createLayer returns undefined given bad matrixSet identifier"); + layer = format.createLayer(caps, { layer: "coastlines", matrixSet: "BigWorld" }); t.ok(layer instanceof OpenLayers.Layer.WMTS, "correct instance"); - + + // autodetect matrixSet + layer = format.createLayer(caps, { + layer: "coastlines" + }); + t.ok(layer instanceof OpenLayers.Layer.WMTS, "correct instance, with autodetected matrixSet"); + t.eq(layer.matrixIds.length, 2, "correct matrixIds length"); t.eq(layer.name, "Coastlines", "correct layer title"); t.eq(layer.style, "DarkBlue", "correct style identifier"); + t.eq(layer.requestEncoding, "KVP", "correct requestEncoding"); + + xml = document.getElementById("restsample").firstChild.nodeValue; + doc = new OpenLayers.Format.XML().read(xml); + caps = format.read(doc); + layer = format.createLayer(caps, { + layer: "ch.are.agglomerationen_isolierte_staedte-2000", + matrixSet: "21781" + }); + t.ok(layer instanceof OpenLayers.Layer.WMTS, "correct instance"); + t.eq(layer.url, "http://wmts.geo.admin.ch/1.0.0/ch.are.agglomerationen_isolierte_staedte-2000/default/{Time}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png", "correct url"); + t.eq(layer.matrixIds.length, 3, "correct matrixIds length"); + t.eq(layer.requestEncoding, "REST", "correct requestEncoding"); + t.eq(layer.name, "Agglomérations et villes isolées", "correct layer title"); + t.eq(layer.style, "ch.are.agglomerationen_isolierte_staedte-2000", "correct style identifier"); + t.eq(layer.projection.getCode(), "EPSG:21781", "correct projection"); + t.eq(layer.units, "m", "correct untis"); + t.eq(layer.resolutions.length, 3, "correct resolutions length"); + t.ok((layer.resolutions[0] - 4000) < 1, "correct first resolution"); + t.eq(layer.dimensions.length, 1, "correct dimensions length"); + t.eq(layer.dimensions[0], "Time", "correct dimensions"); + t.eq(layer.params['TIME'], "20090101", "correct params"); + + layer = format.createLayer(caps, { + layer: "ch.are.agglomerationen_isolierte_staedte-2000", + style: "toto", + params: {"Time": "2012"} + }); + t.eq(layer.matrixIds.length, 3, "correct matrixIds length"); + t.eq(layer.style, "toto", "correct style identifier"); + t.eq(layer.dimensions.length, 1, "correct dimensions length"); + t.eq(layer.dimensions[0], "Time", "correct dimensions"); + t.eq(layer.params['TIME'], "2012", "correct params"); } - + @@ -300,15 +346,15 @@ http://schemas.opengis.net/wmts/1.0/examples/wmtsGetCapabilities_response.xml BigWorld - + BigWorld urn:ogc:def:crs:OGC:1.3:CRS84 1e6 - 1e6 - -180 84 + 1e6 + -180 84 256 - 256 + 256 60000 50000 @@ -354,5 +400,133 @@ http://schemas.opengis.net/wmts/1.0/examples/wmtsGetCapabilities_response.xml --> + +