summaryrefslogtreecommitdiff
path: root/misc/openlayers/tests/Layer/Markers.html
diff options
context:
space:
mode:
authorChris Schlaeger <chris@linux.com>2014-08-12 21:56:44 +0200
committerChris Schlaeger <chris@linux.com>2014-08-12 21:56:44 +0200
commitea346a785dc1b3f7c156f6fc33da634e1f1a627b (patch)
treeaf67530553d20b6e82ad60fd79593e9c4abf5565 /misc/openlayers/tests/Layer/Markers.html
parent59741cd535c47f25971bf8c32b25da25ceadc6d5 (diff)
downloadpostrunner-fb1989bda5d3e0a5472ba7644d57cae197733a8f.zip
Adding jquery, flot and openlayers to be included with the GEM.v0.0.4
Diffstat (limited to 'misc/openlayers/tests/Layer/Markers.html')
-rw-r--r--misc/openlayers/tests/Layer/Markers.html156
1 files changed, 156 insertions, 0 deletions
diff --git a/misc/openlayers/tests/Layer/Markers.html b/misc/openlayers/tests/Layer/Markers.html
new file mode 100644
index 0000000..07f699f
--- /dev/null
+++ b/misc/openlayers/tests/Layer/Markers.html
@@ -0,0 +1,156 @@
+<html>
+<head>
+ <script src="../OLLoader.js"></script>
+ <script type="text/javascript">
+ var layer;
+
+ function test_initialize(t) {
+ t.plan( 2 );
+
+ layer = new OpenLayers.Layer.Markers('Test Layer');
+ t.ok( layer instanceof OpenLayers.Layer.Markers, "new OpenLayers.Layer.Markers returns object" );
+ t.eq( layer.name, "Test Layer", "layer.name is correct" );
+ }
+ function test_addlayer (t) {
+ t.plan( 3 );
+
+ layer = new OpenLayers.Layer.Markers('Test Layer');
+ t.ok( layer instanceof OpenLayers.Layer.Markers, "new OpenLayers.Layer.Markers returns object" );
+ t.eq( layer.name, "Test Layer", "layer.name is correct" );
+ layer.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0),
+ new OpenLayers.Icon())
+ );
+ t.eq( layer.markers.length, 1, "addLayer adds marker to layer." );
+ }
+ function test_addMarker_removeMarker (t) {
+ t.plan( 6 );
+
+ var map = new OpenLayers.Map('map');
+ var baseLayer = new OpenLayers.Layer.WMS("Test Layer",
+ "http://octo.metacarta.com/cgi-bin/mapserv?",
+ {map: "/mapdata/vmap_wms.map", layers: "basic"});
+ map.addLayer(baseLayer);
+ map.zoomToMaxExtent();
+ layer = new OpenLayers.Layer.Markers('Test Layer');
+ map.addLayer(layer);
+ var marker = new OpenLayers.Marker(new OpenLayers.LonLat(5,40));
+ layer.addMarker(marker);
+ t.ok( marker.icon.imageDiv.parentNode == layer.div, "addMarker adds marker image node into layer node." );
+ layer.removeMarker(marker);
+ t.ok( marker.icon.imageDiv.parentNode != layer.div, "removeMarker removes marker image node from layer node." );
+ layer.removeMarker(marker);
+ t.ok(true, "Removing marker twice does not fail.");
+ layer.addMarker(marker);
+ t.ok( marker.icon.imageDiv.parentNode == layer.div, "addMarker adds marker image node into layer node." );
+
+ layer.markers = null;
+ layer.removeMarker(marker);
+ t.ok(true, "removing marker when no markers present does not script error");
+
+ var l = new OpenLayers.Layer.Markers();
+ var marker = new OpenLayers.Marker(new OpenLayers.LonLat(5,40));
+ l.addMarker(marker);
+ l.removeMarker(marker);
+ t.ok(true, "Removing marker when layer not added to map does not fail.");
+
+ }
+
+ function test_markerMovement(t) {
+
+ t.plan(6);
+
+ var map = new OpenLayers.Map("map", {zoomMethod: null});
+ var layer = new OpenLayers.Layer.Markers("Base", {isBaseLayer: true});
+ map.addLayer(layer);
+ map.setCenter(new OpenLayers.LonLat(0, 0), 1);
+
+ var size = new OpenLayers.Size(10, 10);
+ var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
+ var icon = new OpenLayers.Icon("foo", size, offset);
+ var marker = new OpenLayers.Marker(new OpenLayers.LonLat(10, -10), icon)
+ layer.addMarker(marker);
+
+ t.eq(marker.icon.px.x, 554, "marker icon is placed at 554 px on x-axis");
+ t.eq(marker.icon.px.y, 314, "marker icon is placed at 314 px on y-axis");
+
+ map.zoomTo(2);
+
+ t.eq(marker.icon.px.x, 568, "marker icon moved to 568 px on x-axis");
+ t.eq(marker.icon.px.y, 328, "marker icon moved to 328 px on y-axis");
+
+ map.zoomTo(1);
+
+ t.eq(marker.icon.px.x, 554, "marker icon moved back to 554 px on x-axis");
+ t.eq(marker.icon.px.y, 314, "marker icon moved back to 314 px on y-axis");
+
+ }
+
+ function test_destroy (t) {
+ t.plan( 1 );
+ layer = new OpenLayers.Layer.Markers('Test Layer');
+ var map = new OpenLayers.Map('map');
+ map.addLayer(layer);
+ layer.destroy();
+ t.eq( layer.map, null, "layer.map is null after destroy" );
+ }
+
+ function test_getDataExtent(t) {
+ t.plan( 4 );
+
+ var layer = {};
+ var ret = OpenLayers.Layer.Markers.prototype.getDataExtent.apply(layer, []);
+ t.eq(ret, null, "does not crash, returns null on layer with null 'this.markers'");
+
+ layer.markers = [];
+ ret = OpenLayers.Layer.Markers.prototype.getDataExtent.apply(layer, []);
+ t.eq(ret, null, "returns null on layer with empty 'this.markers'");
+
+ layer.markers.push({
+ 'lonlat': new OpenLayers.LonLat(4,5)
+ });
+ var expectedBounds = new OpenLayers.Bounds(4,5,4,5);
+ ret = OpenLayers.Layer.Markers.prototype.getDataExtent.apply(layer, []);
+ t.ok(ret.equals(expectedBounds), "returns expected bounds with only one marker");
+
+ layer.markers.push({
+ 'lonlat': new OpenLayers.LonLat(1,2)
+ });
+ var expectedBounds = new OpenLayers.Bounds(1,2,4,5);
+ ret = OpenLayers.Layer.Markers.prototype.getDataExtent.apply(layer, []);
+ t.ok(ret.equals(expectedBounds), "returns expected bounds with multiple markers");
+
+ }
+
+ function test_setOpacity(t) {
+ t.plan(1);
+
+ layer = new OpenLayers.Layer.Markers('Test Layer');
+
+ var opacity = 0.1234;
+
+ for (var i = 0; i < 12; i++) {
+ layer.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0), new OpenLayers.Icon()));
+ }
+
+ layer.setOpacity(opacity);
+
+ for (var i = 0; i < 4; i++) {
+ layer.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0), new OpenLayers.Icon()));
+ }
+
+ var itWorks = false;
+ for (var i = 0; i < layer.markers.length; i++) {
+ itWorks = parseFloat(layer.markers[i].icon.imageDiv.style.opacity) == opacity;
+ if (!itWorks) {
+ break;
+ }
+ }
+ t.ok(itWorks, "setOpacity change markers opacity");
+ }
+
+ </script>
+</head>
+<body>
+ <div id="map" style="width: 1080px; height: 600px;"/>
+</body>
+</html>