diff --git a/tests/Format/test_GML.html b/tests/Format/test_GML.html
index 74c8f00e1b..db6361d7ed 100644
--- a/tests/Format/test_GML.html
+++ b/tests/Format/test_GML.html
@@ -30,7 +30,6 @@
' southFlorida ' +
'';
-
function test_Format_GML_constructor(t) {
t.plan(4);
@@ -41,14 +40,17 @@
t.eq(format.foo, "bar", "constructor sets options correctly");
t.eq(typeof format.read, "function", "format has a read function");
t.eq(typeof format.write, "function", "format has a write function");
- }
+ }
+
function test_Format_GML_getFid(t) {
t.plan(2);
+
var parser = new OpenLayers.Format.GML();
data = parser.read(test_content);
t.eq(data[0].fid, '221', 'fid on polygons set correctly (with whitespace)');
t.eq(data[1].fid, '8', 'fid on linestrings set correctly with whitespace');
}
+
function test_Format_GML_no_clobber(t) {
t.plan(1);
var parser = new OpenLayers.Format.GML();
diff --git a/tests/Format/test_GeoJSON.html b/tests/Format/test_GeoJSON.html
index b3d4217812..68693048c9 100644
--- a/tests/Format/test_GeoJSON.html
+++ b/tests/Format/test_GeoJSON.html
@@ -9,7 +9,6 @@
var multiple_features = '{"type": "FeatureCollection", "members": [{"geometry": {"type": "Point", "coordinates": [-91.0546875, 43.9453125]}, "type": "Feature", "id": 577, "properties": {"strokeColor": "red", "title": "Feature 2", "image": "foo.gif", "author": "Your Name Here"}}, {"geometry": {"type": "LineString", "coordinates": [[91.40625, -1.40625], [116.015625, -42.890625], [153.28125, -28.125], [108.984375, 11.25], [75.234375, 8.4375], [76.640625, 9.140625], [67.5, -36.5625], [67.5, -35.859375]]}, "type": "Feature", "id": 576, "properties": {"strokeColor": "red", "title": "Feature 1", "author": "Your Name Here"}}, {"geometry": {"type": "Point", "coordinates": [139.5703125, 57.48046875]}, "type": "Feature", "id": 575, "properties": {"strokeColor": "blue", "title": "Feature 7", "author": "Your Name Here"}}, {"geometry": {"type": "Point", "coordinates": [107.2265625, 82.44140625]}, "type": "Feature", "id": 574, "properties": {"strokeColor": "blue", "title": "Feature 6", "author": "Your Name Here"}}, {"geometry": {"type": "Point", "coordinates": [94.21875, 72.94921875]}, "type": "Feature", "id": 573, "properties": {"strokeColor": "blue", "title": "Feature 5", "author": "Your Name Here"}}, {"geometry": {"type": "Point", "coordinates": [116.3671875, 61.69921875]}, "type": "Feature", "id": 572, "properties": {"strokeColor": "blue", "title": "Feature 4", "author": "Your Name Here"}}, {"geometry": {"type": "Point", "coordinates": [145.8984375, 73.65234375]}, "type": "Feature", "id": 571, "properties": {"strokeColor": "blue", "title": "Feature 3", "author": "Your Name Here"}}, {"geometry": {"type": "Polygon", "coordinates": [[[32.34375, 52.20703125], [87.1875, 70.13671875], [122.6953125, 37.44140625], [75.234375, 42.36328125], [40.078125, 42.36328125], [28.828125, 48.33984375], [18.6328125, 56.77734375], [23.203125, 65.56640625], [32.34375, 52.20703125]]]}, "type": "Feature", "id": 570, "properties": {"strokeColor": "blue", "title": "Feature 2", "author": "Your Name Here"}}, {"geometry": {"type": "Point", "coordinates": [62.578125, -53.4375]}, "type": "Feature", "id": 569, "properties": {"strokeColor": "red", "title": "Feature 3", "author": "Your Name Here"}}, {"geometry": {"type": "Point", "coordinates": [121.640625, 16.875]}, "type": "Feature", "id": 568, "properties": {"strokeColor": "red", "title": "Feature 6", "author": "Your Name Here"}}, {"geometry": {"type": "Point", "coordinates": [135.703125, 8.4375]}, "type": "Feature", "id": 567, "properties": {"strokeColor": "red", "title": "Feature 4", "author": "Your Name Here"}}, {"geometry": {"type": "Point", "coordinates": [137.109375, 48.515625]}, "type": "Feature", "id": 566, "properties": {"strokeColor": "red", "title": "Feature 274", "author": "Your Name Here"}}, {"geometry": {"type": "Point", "coordinates": [0, 5]}, "type": "Feature", "id": 565, "properties": {}}, {"geometry": {"type": "Point", "coordinates": [0, 5]}, "type": "Feature", "id": 564, "properties": {}}, {"geometry": {"type": "Point", "coordinates": [0, 5]}, "type": "Feature", "id": 563, "properties": {}}, {"geometry": {"type": "Polygon", "coordinates": [[[-131.484375, -5.9765625], [-112.5, -58.0078125], [-32.34375, -50.2734375], [-114.609375, 52.3828125], [-167.34375, -35.5078125], [-146.953125, -57.3046875], [-139.921875, -34.1015625], [-131.484375, -5.9765625]]]}, "type": "Feature", "id": 562, "properties": {"strokeColor": "red", "title": "Feature 2", "author": "Your Name Here"}}, {"geometry": {"type": "Point", "coordinates": [48.8671875, -15.8203125]}, "type": "Feature", "id": 560, "properties": {"strokeColor": "red", "title": "Feature 2", "author": "Your Name Here"}}, {"geometry": {"type": "LineString", "coordinates": [[-27.0703125, 59.4140625], [-77.6953125, 20.7421875], [30.5859375, -36.2109375], [67.1484375, 34.8046875]]}, "type": "Feature", "id": 559, "properties": {"strokeColor": "red", "title": "Feature 1", "author": "Your Name Here"}}, {"geometry": {"type": "Point", "coordinates": [12.65625, 16.5234375]}, "type": "Feature", "id": 558, "properties": {"styleUrl": "#allstyle", "title": "Feature 1", "strokeColor": "red", "author": "Your Name Here"}}]}';
var parser = new OpenLayers.Format.GeoJSON();
-
function test_Format_GeoJSON_constructor(t) {
t.plan(4);
@@ -20,10 +19,11 @@
t.eq(format.foo, "bar", "constructor sets options correctly");
t.eq(typeof format.read, "function", "format has a read function");
t.eq(typeof format.write, "function", "format has a write function");
- }
-
+ }
+
function test_Format_GeoJSON_valid_type(t) {
t.plan(13);
+
OpenLayers.Console.error = function(error) { window.global_error = error; }
var types = ["Point", "MultiPoint", "LineString", "MultiLineString", "Polygon", "MultiPolygon", "Box"];
for (var i = 0; i < types.length; i++) {
@@ -35,27 +35,32 @@
t.ok(parser.isValidType({'type':"GeometryCollection"}, "GeometryCollection"), "Geometry Collection type is valid");
t.ok(!parser.isValidType({'type':"GeometryCollection2"}, "GeometryCollection"), "Geometry Collection 2 type is invalid");
t.eq(global_error, "Cannot convert types from GeometryCollection2 to GeometryCollection", "error message set correctly for bad geometrycollection type");
- }
+ }
function test_Format_GeoJSON_point(t) {
t.plan(3);
+
data = parser.read(point_feature);
t.eq(data[0].fid, 573, "Fid is correct on point feature");
t.eq(data[0].geometry.x, 94.21875, 'Reading point feature gives correct x');
data = parser.read(point_feature, "Feature");
t.eq(data.fid, 573, 'Reading point feature with type gives feature instead of array of features ');
- }
+ }
+
function test_Format_GeoJSON_line(t) {
t.plan(5);
+
data = parser.read(line_feature);
t.eq(data[0].fid, 559, "Fid is correct on line feature");
t.eq(data[0].geometry.components.length, 4, 'Reading line feature gives correct length');
t.eq(data[0].geometry.CLASS_NAME, 'OpenLayers.Geometry.LineString', 'Reading line feature gives correct class');
t.eq(data[0].geometry.components[0].x, -27.0703125, 'Reading line feature gives correct x');
t.eq(data[0].geometry.components[0].y, 59.4140625, 'Reading line feature gives correct y');
- }
+ }
+
function test_Format_GeoJSON_poly(t) {
t.plan(2);
+
data = parser.read(poly_content);
t.eq(data[0].fid, 562, "poly id is correct")
t.eq(data[0].geometry.components[0].components.length, 8,
@@ -64,6 +69,7 @@
function test_Format_GeoJSON_multipoint(t) {
t.plan(5);
+
var multipoint = {
"type": "MultiPoint",
"coordinates": [
@@ -79,23 +85,25 @@
t.eq(data.components[1].y, 1, "y of second component is right");
}
-
function test_Format_GeoJSON_multiline(t) {
t.plan(3);
+
var multiline = {
"type": "MultiLineString",
"coordinates": [
[ [100.0, 0.0], [101.0, 1.0] ],
[ [102.0, 2.0], [103.0, 3.0] ]
]
- }
+ };
data = parser.read(multiline, "Geometry");
t.eq(data.CLASS_NAME, "OpenLayers.Geometry.MultiLineString", "Correct class retrieved")
t.eq(data.components[0].components[0].CLASS_NAME, "OpenLayers.Geometry.Point", "correct type of components")
t.eq(data.components[0].CLASS_NAME, "OpenLayers.Geometry.LineString", "correct type of components")
}
+
function test_Format_GeoJSON_multipol(t) {
t.plan(2);
+
var multipol = {
"type": "MultiPolygon",
"coordinates": [
@@ -107,15 +115,16 @@
[ [100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2] ]
]
]
- }
+ };
OpenLayers.Console.error = function(error) { window.global_error = error; }
data = parser.read(multipol, "Geometry");
t.eq(data.CLASS_NAME, "OpenLayers.Geometry.MultiPolygon", "Correct class retrieved")
t.eq(data.components[1].components[0].components[0].CLASS_NAME, "OpenLayers.Geometry.Point", "correct type of components")
- }
-
+ }
+
function test_Format_GeoJSON_box(t) {
t.plan(6);
+
var box = {
"type": "Box",
"coordinates": [[100.0, 0.0], [101.0, 1.0]]
@@ -128,14 +137,12 @@
t.eq(poly.components[0].components[3].y, 1, "y of upper left is correct");
var box = parser.write(poly );
t.ok(box.search("Polygon") != -1 , "Serializes back to polygon");
- }
-
-
+ }
-
// This test is from the geom_collection example on geojson spec.
function test_Format_GeoJSON_geom_collection(t) {
t.plan(7);
+
var geomcol = {
"type": "GeometryCollection",
"members": [
@@ -150,7 +157,7 @@
]
}
]
- }
+ };
data = parser.read(geomcol, "GeometryCollection");
t.eq(data[0].CLASS_NAME,
"OpenLayers.Geometry.Point", "First geom in geom collection is point type");
@@ -162,11 +169,11 @@
t.eq(data[1].components.length, 2, "linestring is correct length");
t.eq(data[1].components[1].x, 102, "linestring is correct x end");
t.eq(data[1].components[1].y, 1, "linestring is correct y end");
-
}
-
+
function test_Format_GeoJSON_multipleFeatures(t) {
t.plan(2);
+
var feats = parser.read(multiple_features);
t.eq(feats.length, 19, "parsing a feature collection returns the correct number of features.");
var types = {'Point':0, 'LineString':0, 'Polygon':0}
@@ -176,43 +183,70 @@
}
t.eq(types, {'Point':15, 'Polygon': 2, 'LineString':2}, "Correct number of each type");
}
-
+
function test_Format_GeoJSON_write(t) {
t.plan(10);
- var line_object = {"type": "FeatureCollection",
- "members": [{"geometry":
- {"type": "LineString",
- "coordinates": [[-27.0703125, 59.4140625],
- [-77.6953125, 20.7421875],
- [30.5859375, -36.2109375],
- [67.1484375, 34.8046875]]},
- "type": "Feature",
- "id": 559,
- "properties":
- {
- "strokeColor": "red",
- "title": "Feature 1",
- "author": "Your Name Here"}}]};
+
+ var line_object = {
+ "type": "FeatureCollection",
+ "members": [
+ {
+ "geometry": {
+ "type": "LineString",
+ "coordinates": [
+ [-27.0703125, 59.4140625],
+ [-77.6953125, 20.7421875],
+ [30.5859375, -36.2109375],
+ [67.1484375, 34.8046875]
+ ]
+ },
+ "type": "Feature",
+ "id": 559,
+ "properties": {
+ "strokeColor": "red",
+ "title": "Feature 1",
+ "author": "Your Name Here"
+ }
+ }
+ ]
+ };
data = parser.read(line_object);
out = parser.write(data);
serialized = '{"type":"FeatureCollection","members":[{"type":"Feature","id":559,"properties":{"strokeColor":"red","title":"Feature 1","author":"Your Name Here"},"geometry":{"type":"LineString","coordinates":[[-27.0703125,59.4140625],[-77.6953125,20.7421875],[30.5859375,-36.2109375],[67.1484375,34.8046875]]}}]}';
t.eq(out, serialized, "input and output on line collections are the same");
var serialize_tests = [
- [new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(1,2)),
- '{"type":"Feature","id":0,"properties":{},"geometry":{"type":"Point","coordinates":[1,2]}}'],
- [new OpenLayers.Geometry.Point(1,2),
- '{"type":"Point","coordinates":[1,2]}'],
- [new OpenLayers.Geometry.MultiPoint([new OpenLayers.Geometry.Point(1,2)]),
- '{"type":"MultiPoint","coordinates":[[1,2]]}'],
- [new OpenLayers.Geometry.LineString([new OpenLayers.Geometry.Point(1,2), new OpenLayers.Geometry.Point(3,4)]),
- '{"type":"LineString","coordinates":[[1,2],[3,4]]}'],
- [new OpenLayers.Geometry.Polygon([
- new OpenLayers.Geometry.LinearRing([
- new OpenLayers.Geometry.Point(1,2),
- new OpenLayers.Geometry.Point(3,4),
- new OpenLayers.Geometry.Point(5,6)])]),
- '{"type":"Polygon","coordinates":[[[1,2],[3,4],[5,6],[1,2]]]}']
+ [
+ new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(1,2)),
+ '{"type":"Feature","id":0,"properties":{},"geometry":{"type":"Point","coordinates":[1,2]}}'
+ ],
+ [
+ new OpenLayers.Geometry.Point(1,2),
+ '{"type":"Point","coordinates":[1,2]}'
+ ],
+ [
+ new OpenLayers.Geometry.MultiPoint([
+ new OpenLayers.Geometry.Point(1,2)
+ ]),
+ '{"type":"MultiPoint","coordinates":[[1,2]]}'
+ ],
+ [
+ new OpenLayers.Geometry.LineString([
+ new OpenLayers.Geometry.Point(1,2),
+ new OpenLayers.Geometry.Point(3,4)
+ ]),
+ '{"type":"LineString","coordinates":[[1,2],[3,4]]}'
+ ],
+ [
+ new OpenLayers.Geometry.Polygon([
+ new OpenLayers.Geometry.LinearRing([
+ new OpenLayers.Geometry.Point(1,2),
+ new OpenLayers.Geometry.Point(3,4),
+ new OpenLayers.Geometry.Point(5,6)
+ ])
+ ]),
+ '{"type":"Polygon","coordinates":[[[1,2],[3,4],[5,6],[1,2]]]}'
+ ]
];
serialize_tests[0][0].fid = 0;
multiline = new OpenLayers.Geometry.MultiLineString([serialize_tests[3][0], serialize_tests[3][0]]);
@@ -227,31 +261,41 @@
test_out = parser.write(input);
t.eq(test_out, output, "Serializing " + input.toString() + " saved correctly.");
}
- }
-
-
+ }
+
function test_Format_GeoJSON_read_object(t) {
t.plan(1);
- var line_object = {"type": "FeatureCollection",
- "members": [{"geometry":
- {"type": "LineString",
- "coordinates": [[-27.0703125, 59.4140625],
- [-77.6953125, 20.7421875],
- [30.5859375, -36.2109375],
- [67.1484375, 34.8046875]]},
- "type": "Feature",
- "id": 559,
- "properties":
- {
- "strokeColor": "red",
- "title": "Feature 1",
- "author": "Your Name Here"}}]};
+
+ var line_object = {
+ "type": "FeatureCollection",
+ "members": [
+ {
+ "geometry": {
+ "type": "LineString",
+ "coordinates": [
+ [-27.0703125, 59.4140625],
+ [-77.6953125, 20.7421875],
+ [30.5859375, -36.2109375],
+ [67.1484375, 34.8046875]
+ ]
+ },
+ "type": "Feature",
+ "id": 559,
+ "properties": {
+ "strokeColor": "red",
+ "title": "Feature 1",
+ "author": "Your Name Here"
+ }
+ }
+ ]
+ };
data = parser.read(line_object);
t.eq(data[0].fid, 559, "Can read data from an object correctly.");
- }
+ }
function test_Format_GeoJSON_read_attributes(t) {
t.plan(3);
+
var parser = new OpenLayers.Format.GeoJSON();
data = parser.read(line_feature);
t.eq(data[0].attributes['strokeColor'], 'red', 'read strokeColor attribute properly');
@@ -259,7 +303,6 @@
t.eq(data[0].attributes['author'], 'Your Name Here', 'read author attribute properly');
}
-
diff --git a/tests/Format/test_GeoRSS.html b/tests/Format/test_GeoRSS.html
index faac8995e3..53379a69e6 100644
--- a/tests/Format/test_GeoRSS.html
+++ b/tests/Format/test_GeoRSS.html
@@ -3,8 +3,6 @@
diff --git a/tests/Format/test_XML.html b/tests/Format/test_XML.html
index ba847ae0a1..e22ffe6b81 100644
--- a/tests/Format/test_XML.html
+++ b/tests/Format/test_XML.html
@@ -2,6 +2,7 @@
diff --git a/tests/test_Format.html b/tests/test_Format.html
index 12f9686fe2..8e98c9979b 100644
--- a/tests/test_Format.html
+++ b/tests/test_Format.html
@@ -2,6 +2,7 @@