Files
openlayers/tests/Layer/test_EventPane.html
crschmidt 7b04c305cd Run the four eventPane test in more browsers. If this breaks IE, you have
permission to beat me senseless for not being able to test it there first.
Note that I'm pretty sure this still doens't work with FF3.


git-svn-id: http://svn.openlayers.org/trunk/openlayers@5479 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
2007-12-18 05:15:47 +00:00

129 lines
4.6 KiB
HTML

<html>
<head>
<script src="../../lib/OpenLayers.js"></script>
<script type="text/javascript">
var isMozilla = (navigator.userAgent.indexOf("compatible") == -1);
var isOpera = (navigator.userAgent.indexOf("Opera") != -1);
var layer;
function test_01_Layer_EventPane_constructor (t) {
t.plan( 5 );
var layer = new OpenLayers.Layer.EventPane('Test Layer');
t.ok( layer instanceof OpenLayers.Layer.EventPane, "new OpenLayers.Layer.EventPane returns object" );
t.eq( layer.CLASS_NAME, "OpenLayers.Layer.EventPane", "CLASS_NAME variable set correctly");
t.eq( layer.name, "Test Layer", "layer.name is correct" );
t.eq( layer.isBaseLayer, true, "EventPane layer is always base layer" );
if (!isMozilla) {
t.ok( true, "skipping element test outside of Mozilla");
} else {
t.ok( layer.pane instanceof HTMLDivElement, "layer.pane is an HTMLDivElement" );
}
}
function test_02_Layer_EventPane_clone (t) {
t.plan( 1 );
t.ok( true, "need to actually write some tests here" );
return;
/// FIX ME FIX ME: fix this later
var map = new OpenLayers.Map('map');
var options = { chicken: 151, foo: "bar" };
var layer = new OpenLayers.Layer('Test Layer', options);
map.addLayer(layer);
// randomly assigned property
layer.chocolate = 5;
var clone = layer.clone();
t.ok( clone instanceof OpenLayers.Layer, "new OpenLayers.Layer returns object" );
t.eq( clone.name, "Test Layer", "default clone.name is correct" );
t.ok( ((clone.options["chicken"] == 151) && (clone.options["foo"] == "bar")), "clone.options correctly set" );
t.eq(clone.chocolate, 5, "correctly copied randomly assigned property");
layer.addOptions({chicken:152});
t.eq(clone.options["chicken"], 151, "made a clean copy of options");
t.ok( clone.map == null, "cloned layer has map property set to null")
}
function test_10_Layer_EventPane_setMap (t) {
// MOUSEMOVE test does not seem to work...
// t.plan( 2 );
if (OpenLayers.Util.getBrowserName() != "firefox") {
t.plan(4);
} else {
t.plan(3);
}
var map = new OpenLayers.Map('map');
layer = new OpenLayers.Layer.EventPane('Test Layer');
//give dummy function so test wont bomb on layer.setMap()
layer.loadMapObject = function() { };
layer.getWarningHTML = function() { this.warning = true; return ""; };
map.addLayer(layer);
t.eq( parseInt(layer.pane.style.zIndex) - parseInt(layer.div.style.zIndex),
1, "layer pane is 1 z-level above its div" );
t.ok( layer.warning, "warning correctly registered on no mapObject load" );
layer2 = new OpenLayers.Layer.EventPane('Test Layer');
//give dummy function so test wont bomb on layer.setMap()
layer2.loadMapObject = function() { this.mapObject = {}; };
layer2.getWarningHTML = function() { this.warning = true; return ""; }
map.addLayer(layer2);
t.ok( !layer2.warning, "warning not registered on mapObject load" );
map.events.register("mousemove", map, function () {
t.ok(true, "got mouse move");
});
if( document.createEvent ) { // Mozilla
var evObj = document.createEvent('MouseEvents');
evObj.initEvent( 'mousemove', true, false );
layer.pane.dispatchEvent(evObj);
} else if( document.createEventObject ) { // IE
layer.pane.fireEvent('onmousemove');
}
}
function test_20_Layer_EventPane_setVisibility (t) {
t.plan( 2 );
layer = new OpenLayers.Layer.EventPane('Test Layer');
layer.setVisibility(false);
t.eq(layer.visibility, false, "layer pane is now invisible");
layer.setVisibility(true);
t.eq(layer.visibility, true, "layer pane is now visible");
}
function test_Layer_EventPane_removeLayer(t) {
t.plan(1);
var map = new OpenLayers.Map('map');
layer = new OpenLayers.Layer.EventPane('Test Layer');
layer.loadMapObject = function() { };
layer.getWarningHTML = function() { this.warning = true; return ""; };
map.addLayer(layer);
map.removeLayer(layer);
t.eq(layer.pane, null, "Layer.pane is null after being removed.");
}
</script>
</head>
<body>
<div id="map" style="height:500px;width:500px"></div>
</body>
</html>