diff options
Diffstat (limited to 'misc/openlayers/tests/Control.html')
-rw-r--r-- | misc/openlayers/tests/Control.html | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/misc/openlayers/tests/Control.html b/misc/openlayers/tests/Control.html new file mode 100644 index 0000000..06f057c --- /dev/null +++ b/misc/openlayers/tests/Control.html @@ -0,0 +1,107 @@ +<html> +<head> + <script src="OLLoader.js"></script> + <script type="text/javascript"> + function test_Control_constructor(t) { + t.plan(4); + + var control = new OpenLayers.Control(); + + t.ok(control instanceof OpenLayers.Control, "new OpenLayers.Control returns object"); + t.eq(control.displayClass, "olControl", "displayClass set correctly"); + t.ok(control.id != null, "default id assigned to control"); + + var testID = {}; + control = new OpenLayers.Control({ 'id': testID }); + t.ok(control.id == testID, "if id specified in options, no default assigned."); + } + + function test_Control_addControl(t) { + t.plan(2); + + var map = new OpenLayers.Map('map'); + var control = new OpenLayers.Control(); + map.addControl(control); + + t.ok(control.map === map, "Control.map is set to the map object" ); + t.ok(map.controls[map.controls.length - 1] === control, "map.controls contains control"); + } + + function test_Control_title(t) { + t.plan( 1 ); + var titleText = 'Title test'; + control = new OpenLayers.Control({title:titleText}); + t.eq( control.title, titleText, "control.title set correctly" ); + } + + function test_eventListeners(t) { + t.plan(1); + + var method = OpenLayers.Events.prototype.on; + // test that events.on is called at control construction + var options = { + eventListeners: {foo: "bar"} + }; + OpenLayers.Events.prototype.on = function(obj) { + t.eq(obj, options.eventListeners, "events.on called with eventListeners"); + } + var control = new OpenLayers.Control(options); + OpenLayers.Events.prototype.on = method; + control.destroy(); + + // if events.on is called again, this will fail due to an extra test + // test control without eventListeners + OpenLayers.Events.prototype.on = function(obj) { + t.fail("events.on called without eventListeners"); + } + var control2 = new OpenLayers.Control(); + OpenLayers.Events.prototype.on = method; + control2.destroy(); + } + + function test_Control_destroy(t) { + t.plan(4); + + var map = new OpenLayers.Map('map'); + var control = new OpenLayers.Control(); + map.addControl(control); + + control.destroy(); + t.ok(map.controls[map.controls.length - 1] != control, "map.controls doesn't contains control"); + + t.ok(control.map == null, "Control.map is null"); + t.ok(control.div == null, "Control.div is null"); + t.ok(control.handler == null, "Control.handler is null"); + } + + function test_autoActivate(t) { + + t.plan(3); + + var control, map = new OpenLayers.Map("map"); + + // confirm that a control is not activated by default + control = new OpenLayers.Control(); + map.addControl(control); + t.ok(!control.active, "control is not activated by default"); + + // confirm that control is activated with autoActivate true + control = new OpenLayers.Control({autoActivate: true}); + map.addControl(control); + t.ok(control.active, "control is activated with autoActivate true"); + + // confirm that control is not activated with autoActivate false + control = new OpenLayers.Control({autoActivate: false}); + map.addControl(control); + t.ok(!control.active, "control is not activated with autoActivate false"); + + map.destroy(); + + } + + </script> +</head> +<body> + <div id="map" style="width: 1024px; height: 512px;"/> +</body> +</html> |