git-svn-id: http://svn.openlayers.org/trunk/openlayers@4252 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
150 lines
6.5 KiB
HTML
150 lines
6.5 KiB
HTML
<html>
|
|
<head>
|
|
<script src="../../lib/OpenLayers.js"></script>
|
|
<script type="text/javascript">
|
|
var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
|
|
var isMSIE = (navigator.userAgent.indexOf("MSIE") > -1);
|
|
var layer;
|
|
|
|
var datafile = "./data_Layer_Text_textfile.txt";
|
|
var datafile2 = "./data_Layer_Text_textfile_2.txt";
|
|
var datafile_overflow = "./data_Layer_Text_textfile_overflow.txt";
|
|
|
|
// if this test is running in IE, different rules apply
|
|
if (isMSIE) {
|
|
datafile = "." + datafile;
|
|
datafile2 = "." + datafile2;
|
|
datafile_overflow = "." + datafile_overflow;
|
|
}
|
|
|
|
function test_01_Layer_Text_constructor (t) {
|
|
t.plan( 5 );
|
|
|
|
layer = new OpenLayers.Layer.Text('Test Layer', { location: datafile });
|
|
t.ok( layer instanceof OpenLayers.Layer.Text, "new OpenLayers.Layer.Text returns object" );
|
|
t.eq( layer.location, datafile, "layer.location is correct" );
|
|
var markers;
|
|
t.delay_call( 1, function() {
|
|
t.eq( layer.markers.length, 2, "marker length is correct" );
|
|
var ll = new OpenLayers.LonLat(20, 10);
|
|
t.ok( layer.markers[0].lonlat.equals(ll), "first marker is correct" );
|
|
t.eq( layer.markers[0].icon.url, 'http://boston.openguides.org/markers/ORANGE.png', "icon" );
|
|
} );
|
|
}
|
|
function test_02_Layer_Text_draw (t) {
|
|
// t.plan(5);
|
|
t.plan( 2 );
|
|
layer = new OpenLayers.Layer.Text('Test Layer', { location: datafile });
|
|
t.ok( layer instanceof OpenLayers.Layer.Text, "new OpenLayers.Layer.Text returns object" );
|
|
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.addLayer(layer);
|
|
t.eq( map.layers[1].name, layer.name, "Layer added to map okay" );
|
|
t.delay_call( 1, function() {
|
|
map.setCenter(new OpenLayers.LonLat(0,0),0);
|
|
|
|
/*
|
|
if (!isMozilla)
|
|
t.ok( true, "skipping element test outside of Mozilla");
|
|
else
|
|
t.ok( map.layers[0].div.firstChild instanceof HTMLImageElement, "Marker added to div" )
|
|
|
|
t.eq( map.layers[0].div.firstChild.style.top, "219px", "Marker top set correctly" )
|
|
t.eq( map.layers[0].div.firstChild.style.left, "273px", "Marker left set correctly" )
|
|
*/
|
|
});;
|
|
}
|
|
function test_03_Layer_Text_events (t) {
|
|
t.plan( 5 );
|
|
layer = new OpenLayers.Layer.Text('Test Layer', { location: datafile2 });
|
|
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.addLayer(layer);
|
|
map.setCenter(new OpenLayers.LonLat(0,0),0);
|
|
var event = {};
|
|
t.delay_call( 1, function() {
|
|
t.ok(layer.markers[0].events, "First marker has an events object");
|
|
t.eq(layer.markers[0].events.listeners['click'].length, 1, "Marker events has one object");
|
|
layer.markers[0].events.triggerEvent('click', event);
|
|
t.eq(map.popups.length, 1, "Popup opened correctly");
|
|
layer.markers[1].events.triggerEvent('click', event);
|
|
t.eq(map.popups.length, 1, "1st popup gone, 2nd Popup opened correctly");
|
|
t.eq(map.popups[0].contentDiv.style.overflow,"auto", "default Popup overflow correct");
|
|
});
|
|
}
|
|
function test_03_Layer_Text_overflow (t) {
|
|
t.plan( 4 );
|
|
layer = new OpenLayers.Layer.Text('Test Layer', { location: datafile_overflow });
|
|
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.addLayer(layer);
|
|
map.setCenter(new OpenLayers.LonLat(0,0),0);
|
|
var event = {};
|
|
t.delay_call( 1, function() {
|
|
layer.markers[0].events.triggerEvent('click', event);
|
|
t.eq(map.popups.length, 1, "Popup opened correctly");
|
|
t.eq(map.popups[0].contentDiv.style.overflow,"auto", "Popup overflow read from file");
|
|
layer.markers[1].events.triggerEvent('click', event);
|
|
t.eq(map.popups.length, 1, "1st popup gone, 2nd Popup opened correctly");
|
|
t.eq(map.popups[0].contentDiv.style.overflow,"hidden", "Popup overflow read from file");
|
|
});
|
|
}
|
|
function test_04_Layer_Text_events_nopopups (t) {
|
|
t.plan( 4 );
|
|
layer = new OpenLayers.Layer.Text('Test Layer', { location: datafile });
|
|
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.addLayer(layer);
|
|
map.setCenter(new OpenLayers.LonLat(0,0),0);
|
|
var event = {};
|
|
t.delay_call( 1, function() {
|
|
t.ok(layer.markers[0].events, "First marker has an events object");
|
|
t.eq(layer.markers[0].events.listeners['click'].length, 0, "Marker events has one object");
|
|
layer.markers[0].events.triggerEvent('click', event);
|
|
t.eq(map.popups.length, 0, "no popup on first marker");
|
|
layer.markers[1].events.triggerEvent('click', event);
|
|
t.eq(map.popups.length, 0, "no popup on second marker");
|
|
});
|
|
}
|
|
function test_Layer_Text_loadend_Event(t) {
|
|
t.plan(2);
|
|
layer = new OpenLayers.Layer.Text('Test Layer', {location:datafile});
|
|
t.delay_call(2, function() {
|
|
layer.events.register('loadend', layer, function() {
|
|
t.ok(true, "Loadend event fired");
|
|
});
|
|
layer.parseData({
|
|
'responseText':''
|
|
});
|
|
t.ok(true, "Parsing data didn't fail");
|
|
});
|
|
}
|
|
|
|
function test_99_Layer_Text_destroy (t) {
|
|
t.plan( 1 );
|
|
layer = new OpenLayers.Layer.Text('Test Layer');
|
|
var map = new OpenLayers.Map('map');
|
|
map.addLayer(layer);
|
|
layer.destroy();
|
|
t.eq( layer.map, null, "layer.map is null after destroy" );
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div id="map" style="width:500px; height:500px"></div>
|
|
</body>
|
|
</html>
|