205 lines
8.5 KiB
JavaScript
205 lines
8.5 KiB
JavaScript
import WMTSCapabilities from '../../../../../src/ol/format/WMTSCapabilities.js';
|
|
|
|
describe('ol.format.WMTSCapabilities', function () {
|
|
describe('when parsing ogcsample.xml', function () {
|
|
const parser = new WMTSCapabilities();
|
|
let capabilities;
|
|
before(function (done) {
|
|
afterLoadText('spec/ol/format/wmts/ogcsample.xml', function (xml) {
|
|
try {
|
|
capabilities = parser.read(xml);
|
|
} catch (e) {
|
|
done(e);
|
|
}
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('can read Capability.Contents.Layer', function () {
|
|
expect(capabilities.Contents.Layer).to.be.an('array');
|
|
expect(capabilities.Contents.Layer).to.have.length(1);
|
|
|
|
const layer = capabilities.Contents.Layer[0];
|
|
expect(layer.Abstract).to.be.eql(
|
|
'Blue Marble Next Generation NASA Product'
|
|
);
|
|
expect(layer.Identifier).to.be.eql('BlueMarbleNextGeneration');
|
|
expect(layer.Title).to.be.eql('Blue Marble Next Generation');
|
|
|
|
expect(layer.Dimension).to.be.an('array');
|
|
expect(layer.Dimension).to.have.length(1);
|
|
expect(layer.Dimension[0]).to.be.an('object');
|
|
expect(layer.Dimension[0].Identifier).to.be.eql('Time');
|
|
expect(layer.Dimension[0].Default).to.be.eql('20110805');
|
|
expect(layer.Dimension[0].Value).to.be.an('array');
|
|
expect(layer.Dimension[0].Value).to.have.length(2);
|
|
expect(layer.Dimension[0].Value[0]).to.be.eql('20110805');
|
|
|
|
expect(layer.Format).to.be.an('array');
|
|
expect(layer.Format).to.have.length(2);
|
|
expect(layer.Format[0]).to.be.eql('image/jpeg');
|
|
|
|
expect(layer.Style).to.be.an('array');
|
|
expect(layer.Style).to.have.length(2);
|
|
expect(layer.Style[0].Identifier).to.be.eql('DarkBlue');
|
|
expect(layer.Style[0].isDefault).to.be(true);
|
|
expect(layer.Style[0].Title).to.be.eql('Dark Blue');
|
|
expect(layer.Style[0].LegendURL[0].href).to.be.eql(
|
|
'http://www.miramon.uab.es/wmts/Coastlines/' + 'coastlines_darkBlue.png'
|
|
);
|
|
expect(layer.Style[0].LegendURL[0].format).to.be.eql('image/png');
|
|
|
|
expect(layer.TileMatrixSetLink).to.be.an('array');
|
|
expect(layer.TileMatrixSetLink).to.have.length(3);
|
|
expect(layer.TileMatrixSetLink[0].TileMatrixSet).to.be.eql(
|
|
'BigWorldPixel'
|
|
);
|
|
expect(layer.TileMatrixSetLink[1].TileMatrixSet).to.be.eql('google3857');
|
|
expect(layer.TileMatrixSetLink[2].TileMatrixSet).to.be.eql(
|
|
'google3857subset'
|
|
);
|
|
|
|
const wgs84Bbox = layer.WGS84BoundingBox;
|
|
expect(wgs84Bbox).to.be.an('array');
|
|
expect(wgs84Bbox[0]).to.be.eql(-180);
|
|
expect(wgs84Bbox[2]).to.be.eql(180);
|
|
expect(wgs84Bbox[1]).to.be.eql(-90);
|
|
expect(wgs84Bbox[3]).to.be.eql(90.0);
|
|
|
|
expect(layer.ResourceURL).to.be.an('array');
|
|
expect(layer.ResourceURL).to.have.length(2);
|
|
expect(layer.ResourceURL[0].format).to.be.eql('image/png');
|
|
expect(layer.ResourceURL[0].template).to.be.eql(
|
|
'http://www.example.com/wmts/coastlines/{TileMatrix}' +
|
|
'/{TileRow}/{TileCol}.png'
|
|
);
|
|
});
|
|
|
|
it('Can read Capabilities.Content.TileMatrixSet', function () {
|
|
expect(capabilities.Contents.TileMatrixSet).to.be.ok();
|
|
|
|
const bigWorld = capabilities.Contents.TileMatrixSet[2];
|
|
expect(bigWorld).to.be.ok();
|
|
expect(bigWorld.Identifier).to.be.eql('BigWorld');
|
|
expect(bigWorld.SupportedCRS).to.be.eql('urn:ogc:def:crs:OGC:1.3:CRS84');
|
|
expect(bigWorld.TileMatrix).to.have.length(2);
|
|
expect(bigWorld.TileMatrix[0].Identifier).to.be.eql('1e6');
|
|
expect(bigWorld.TileMatrix[0].MatrixHeight).to.be.eql(50000);
|
|
expect(bigWorld.TileMatrix[0].MatrixWidth).to.be.eql(60000);
|
|
expect(bigWorld.TileMatrix[0].ScaleDenominator).to.be.eql(1000000);
|
|
expect(bigWorld.TileMatrix[0].TileWidth).to.be.eql(256);
|
|
expect(bigWorld.TileMatrix[0].TileHeight).to.be.eql(256);
|
|
expect(bigWorld.TileMatrix[0].TopLeftCorner).to.be.a('array');
|
|
expect(bigWorld.TileMatrix[0].TopLeftCorner[0]).to.be.eql(-180);
|
|
expect(bigWorld.TileMatrix[0].TopLeftCorner[1]).to.be.eql(84);
|
|
expect(bigWorld.TileMatrix[1].Identifier).to.be.eql('2.5e6');
|
|
expect(bigWorld.TileMatrix[1].MatrixHeight).to.be.eql(7000);
|
|
expect(bigWorld.TileMatrix[1].MatrixWidth).to.be.eql(9000);
|
|
expect(bigWorld.TileMatrix[1].ScaleDenominator).to.be.eql(2500000);
|
|
expect(bigWorld.TileMatrix[1].TileWidth).to.be.eql(256);
|
|
expect(bigWorld.TileMatrix[1].TileHeight).to.be.eql(256);
|
|
expect(bigWorld.TileMatrix[1].TopLeftCorner).to.be.a('array');
|
|
expect(bigWorld.TileMatrix[1].TopLeftCorner[0]).to.be.eql(-180);
|
|
expect(bigWorld.TileMatrix[1].TopLeftCorner[1]).to.be.eql(84);
|
|
});
|
|
|
|
it('Can read OWS tags', function () {
|
|
expect(capabilities.ServiceIdentification).to.be.ok();
|
|
expect(capabilities.OperationsMetadata).to.be.ok();
|
|
});
|
|
});
|
|
|
|
describe('when parsing ign.xml', function () {
|
|
const parser = new WMTSCapabilities();
|
|
let capabilities;
|
|
before(function (done) {
|
|
afterLoadText('spec/ol/format/wmts/ign.xml', function (xml) {
|
|
try {
|
|
capabilities = parser.read(xml);
|
|
} catch (e) {
|
|
done(e);
|
|
}
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('can read Capability.Contents.Layer', function () {
|
|
expect(capabilities.Contents.Layer).to.be.an('array');
|
|
expect(capabilities.Contents.Layer).to.have.length(1);
|
|
|
|
const layer = capabilities.Contents.Layer[0];
|
|
expect(layer.TileMatrixSetLink).to.be.an('array');
|
|
expect(layer.TileMatrixSetLink).to.have.length(2);
|
|
expect(layer.TileMatrixSetLink[0].TileMatrixSet).to.be.eql('PM');
|
|
expect(layer.TileMatrixSetLink[0].TileMatrixSetLimits).to.be.an('array');
|
|
expect(layer.TileMatrixSetLink[0].TileMatrixSetLimits).to.have.length(20);
|
|
expect(
|
|
layer.TileMatrixSetLink[0].TileMatrixSetLimits[0].TileMatrix
|
|
).to.be.eql('0');
|
|
expect(
|
|
layer.TileMatrixSetLink[0].TileMatrixSetLimits[0].MinTileRow
|
|
).to.be.eql(0);
|
|
expect(
|
|
layer.TileMatrixSetLink[0].TileMatrixSetLimits[0].MaxTileRow
|
|
).to.be.eql(1);
|
|
expect(
|
|
layer.TileMatrixSetLink[0].TileMatrixSetLimits[0].MinTileCol
|
|
).to.be.eql(0);
|
|
expect(
|
|
layer.TileMatrixSetLink[0].TileMatrixSetLimits[0].MaxTileCol
|
|
).to.be.eql(1);
|
|
|
|
expect(layer.TileMatrixSetLink[1].TileMatrixSet).to.be.eql('Prefixed');
|
|
expect(layer.TileMatrixSetLink[1].TileMatrixSetLimits).to.be.an('array');
|
|
expect(layer.TileMatrixSetLink[1].TileMatrixSetLimits).to.have.length(2);
|
|
expect(
|
|
layer.TileMatrixSetLink[1].TileMatrixSetLimits[0].TileMatrix
|
|
).to.be.eql('Prefixed:0');
|
|
expect(
|
|
layer.TileMatrixSetLink[1].TileMatrixSetLimits[0].MinTileRow
|
|
).to.be.eql(0);
|
|
expect(
|
|
layer.TileMatrixSetLink[1].TileMatrixSetLimits[0].MaxTileRow
|
|
).to.be.eql(1);
|
|
expect(
|
|
layer.TileMatrixSetLink[1].TileMatrixSetLimits[0].MinTileCol
|
|
).to.be.eql(0);
|
|
expect(
|
|
layer.TileMatrixSetLink[1].TileMatrixSetLimits[0].MaxTileCol
|
|
).to.be.eql(1);
|
|
});
|
|
|
|
it('Can read Capabilities.Content.TileMatrixSet', function () {
|
|
expect(capabilities.Contents.TileMatrixSet).to.be.ok();
|
|
|
|
const pm = capabilities.Contents.TileMatrixSet[0];
|
|
expect(pm).to.be.ok();
|
|
expect(pm.Identifier).to.be.eql('PM');
|
|
expect(pm.SupportedCRS).to.be.eql('EPSG:3857');
|
|
expect(pm.TileMatrix).to.have.length(22);
|
|
expect(pm.TileMatrix[0].Identifier).to.be.eql('0');
|
|
expect(pm.TileMatrix[0].MatrixHeight).to.be.eql(1);
|
|
expect(pm.TileMatrix[0].MatrixWidth).to.be.eql(1);
|
|
expect(pm.TileMatrix[0].ScaleDenominator).to.be.eql(
|
|
559082264.0287178958533332
|
|
);
|
|
expect(pm.TileMatrix[0].TileWidth).to.be.eql(256);
|
|
expect(pm.TileMatrix[0].TileHeight).to.be.eql(256);
|
|
expect(pm.TileMatrix[0].TopLeftCorner).to.be.a('array');
|
|
expect(pm.TileMatrix[0].TopLeftCorner[0]).to.be.eql(-20037508);
|
|
expect(pm.TileMatrix[0].TopLeftCorner[1]).to.be.eql(20037508);
|
|
expect(pm.TileMatrix[1].Identifier).to.be.eql('1');
|
|
expect(pm.TileMatrix[1].MatrixHeight).to.be.eql(2);
|
|
expect(pm.TileMatrix[1].MatrixWidth).to.be.eql(2);
|
|
expect(pm.TileMatrix[1].ScaleDenominator).to.be.eql(
|
|
279541132.0143588959472254
|
|
);
|
|
expect(pm.TileMatrix[1].TileWidth).to.be.eql(256);
|
|
expect(pm.TileMatrix[1].TileHeight).to.be.eql(256);
|
|
expect(pm.TileMatrix[1].TopLeftCorner).to.be.a('array');
|
|
expect(pm.TileMatrix[1].TopLeftCorner[0]).to.be.eql(-20037508);
|
|
expect(pm.TileMatrix[1].TopLeftCorner[1]).to.be.eql(20037508);
|
|
});
|
|
});
|
|
});
|