summaryrefslogtreecommitdiff
path: root/misc/openlayers/tests/Control.html
diff options
context:
space:
mode:
Diffstat (limited to 'misc/openlayers/tests/Control.html')
-rw-r--r--misc/openlayers/tests/Control.html107
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>