Files
openlayers/tests/Layer/test_Text.html
crschmidt 0fa07edb04 Firefox 2.0.0.13 changed behavior iwth regard to loading files relative to an
iframe included in a page from matching every other browser to matching IE.
Rather than try and guess what's going to happen with this in the future, at
the moment, just duplicate the data, in hopes of a more sane solution coming 
along in the future for all our data loading needs.


git-svn-id: http://svn.openlayers.org/trunk/openlayers@6712 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
2008-03-31 02:41:26 +00:00

160 lines
7.3 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;
// The actual path these files are read from differs:
// some browsers treat relative paths from within an iframe
// as relative to the parent, some treat them as relative to the child
// At this time:
// * IE6 + IE7
// * Firefox 2.0.0.13+
// read them from relative to the iframe contents, rather than parent,
// so these files are in *two* places: one in the "Layer/" subdirectory,
// and one in the root. This majorly sucks, but it's a way to keep it
// working without hardcoding a version number into the tests.
var datafile = "./data_Layer_Text_textfile.txt";
var datafile2 = "./data_Layer_Text_textfile_2.txt";
var datafile_overflow = "./data_Layer_Text_textfile_overflow.txt";
function test_01_Layer_Text_constructor (t) {
t.plan( 5 );
layer = new OpenLayers.Layer.Text('Test Layer', { location: datafile });
layer.loadText();
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");
//Safari 3 separates style overflow into overflow-x and overflow-y
var prop = (OpenLayers.Util.getBrowserName() == 'safari') ? 'overflowX' : 'overflow';
t.eq(map.popups[0].contentDiv.style[prop],"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");
//Safari 3 separates style overflow into overflow-x and overflow-y
var prop = (OpenLayers.Util.getBrowserName() == 'safari') ? 'overflowX' : 'overflow';
t.eq(map.popups[0].contentDiv.style[prop],"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");
//Safari 3 separates style overflow into overflow-x and overflow-y
var prop = (OpenLayers.Util.getBrowserName() == 'safari') ? 'overflowX' : 'overflow';
t.eq(map.popups[0].contentDiv.style[prop],"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>