diff --git a/test/spec/ol/parser/topojson.test.js b/test/spec/ol/parser/topojson.test.js new file mode 100644 index 0000000000..5be60afaaf --- /dev/null +++ b/test/spec/ol/parser/topojson.test.js @@ -0,0 +1,64 @@ +goog.provide('ol.test.parser.TopoJSON'); + +var aruba = { + type: 'Topology', + transform: { + scale: [0.036003600360036005, 0.017361589674592462], + translate: [-180, -89.99892578124998] + }, + objects: { + aruba: { + type: 'Polygon', + arcs: [[0]], + id: 533 + } + }, + arcs: [ + [[3058, 5901], [0, -2], [-2, 1], [-1, 3], [-2, 3], [0, 3], [1, 1], [1, -3], + [2, -5], [1, -1]] + ] +}; + + +describe('ol.parser.TopoJSON', function() { + + var parser; + before(function() { + parser = new ol.parser.TopoJSON(); + }); + + describe('constructor', function() { + it('creates a new parser', function() { + expect(parser).to.be.a(ol.parser.Parser); + expect(parser).to.be.a(ol.parser.TopoJSON); + }); + }); + + describe('#readFeaturesFromTopology_()', function() { + + it('creates an array of features from a topology', function() { + var features = parser.readFeaturesFromTopology_(aruba); + expect(features).to.have.length(1); + + var feature = features[0]; + expect(feature).to.be.a(ol.Feature); + + var geometry = feature.getGeometry(); + expect(geometry).to.be.a(ol.geom.Polygon); + + expect(geometry.getBounds()).to.eql([ + -70.08100810081008, + -69.9009900990099, + 12.417091709170947, + 12.608069195591469 + ]); + }); + + }); + +}); + +goog.require('ol.Feature'); +goog.require('ol.geom.Polygon'); +goog.require('ol.parser.Parser'); +goog.require('ol.parser.TopoJSON');