Add tests for empty & invalid WKT strings

This commit is contained in:
Erik Timmers
2014-07-15 13:06:36 +02:00
parent 4abc887f5d
commit 1e7dc5cd32

View File

@@ -150,6 +150,44 @@ describe('ol.format.WKT', function() {
[[30, 20], [20, 25], [20, 15], [30, 20]]);
});
it('Empty geometries read / written correctly', function() {
var wkts = ['POINT', 'LINESTRING', 'POLYGON',
'MULTIPOINT', 'MULTILINESTRING', 'MULTIPOLYGON'];
for (var i = 0, ii = wkts.length; i < ii; ++i) {
var wkt = wkts[i] + ' EMPTY';
var geom = format.readGeometry(wkt);
expect(geom.getCoordinates()).to.eql([]);
expect(format.writeGeometry(geom)).to.eql(wkt);
}
});
it('Invalid geometries detected correctly', function() {
expect(function() {
format.readGeometry('POINT(1,2)');
}).to.throwException();
expect(function() {
format.readGeometry('LINESTRING(1 2,3 4');
}).to.throwException();
expect(function() {
format.readGeometry('POLYGON(1 2,3 4))');
}).to.throwException();
expect(function() {
format.readGeometry('POLGON((1 2,3 4))');
}).to.throwException();
expect(function() {
format.readGeometry('LINESTRING(1.2,3 4');
}).to.throwException();
expect(function() {
format.readGeometry('MULTIPOINT((1 2),3 4))');
}).to.throwException();
expect(function() {
format.readGeometry('MULTIPOLYGON((1 2,3 4))');
}).to.throwException();
expect(function() {
format.readGeometry('GEOMETRYCOLLECTION(1 2,3 4)');
}).to.throwException();
});
it('GeometryCollection read / written correctly', function() {
var wkt = 'GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))';
var geom = format.readGeometry(wkt);
@@ -173,6 +211,13 @@ describe('ol.format.WKT', function() {
expect(geoms[1].getCoordinates()).to.eql([[4, 6], [7, 10]]);
});
it('Empty GeometryCollection read / written correctly', function() {
var wkt = 'GEOMETRYCOLLECTION EMPTY';
var geom = format.readGeometry(wkt);
expect(geom.getGeometries()).to.eql([]);
expect(format.writeGeometry(geom)).to.eql(wkt);
});
it('GeometryCollection split / merged correctly', function() {
format = new ol.format.WKT({splitCollection: true});
var wkt = 'GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10))';