Files
openlayers/tests/Layer/test_Markers.html

87 lines
3.5 KiB
HTML

<html>
<head>
<script src="../../lib/OpenLayers.js"></script>
<script type="text/javascript">
var layer;
function test_01_Layer_Markers_constructor (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_02_Layer_Markers_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_98_Layer_Markers_addMarker_removeMarker (t) {
t.plan( 3 );
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.addMarker(marker);
t.ok( marker.icon.imageDiv.parentNode == layer.div, "addMarker adds marker image node into layer node." );
}
function test_99_Layer_Markers_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_03_Layer_Markers_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");
}
</script>
</head>
<body>
<div id="map" style="width: 1080px; height: 600px;"/>
</body>
</html>