diff options
author | Chris Schlaeger <chris@linux.com> | 2014-08-12 21:56:44 +0200 |
---|---|---|
committer | Chris Schlaeger <chris@linux.com> | 2014-08-12 21:56:44 +0200 |
commit | ea346a785dc1b3f7c156f6fc33da634e1f1a627b (patch) | |
tree | af67530553d20b6e82ad60fd79593e9c4abf5565 /misc/openlayers/tests/Control/TouchNavigation.html | |
parent | 59741cd535c47f25971bf8c32b25da25ceadc6d5 (diff) | |
download | postrunner-0.0.4.zip |
Adding jquery, flot and openlayers to be included with the GEM.v0.0.4
Diffstat (limited to 'misc/openlayers/tests/Control/TouchNavigation.html')
-rw-r--r-- | misc/openlayers/tests/Control/TouchNavigation.html | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/misc/openlayers/tests/Control/TouchNavigation.html b/misc/openlayers/tests/Control/TouchNavigation.html new file mode 100644 index 0000000..bffc225 --- /dev/null +++ b/misc/openlayers/tests/Control/TouchNavigation.html @@ -0,0 +1,155 @@ +<html> +<head> + <script src="../OLLoader.js"></script> + <script type="text/javascript"> + + function test_Control_TouchNavigation_constructor (t) { + t.plan( 2 ); + var options = {bar: "foo"}; + var temp = OpenLayers.Control.prototype.initialize; + OpenLayers.Control.prototype.initialize = function(opt) { + t.eq(opt, options, + "constructor calls parent with the correct options"); + }; + + var control = new OpenLayers.Control.TouchNavigation(options); + t.ok(control instanceof OpenLayers.Control.TouchNavigation, + "new OpenLayers.Control returns object"); + + OpenLayers.Control.prototype.initialize = temp; + } + + function test_Control_TouchNavigation_destroy(t) { + t.plan(6); + + var control = { + events: { + destroy: function() { + t.ok(true, "events destroyed"); + } + }, + deactivate: function() { + t.ok(true, "navigation control deactivated before being destroyed"); + }, + dragPan: { + destroy: function() { + t.ok(true, "dragPan destroyed"); + } + }, + handlers: { + click: { + destroy: function() { + t.ok(true, "clickHandler destroyed"); + } + } + } + }; + + //this will also trigger one test by calling OpenLayers.Control's destroy + // and three more for the destruction of dragPan, zoomBox, and wheelHandler + OpenLayers.Control.TouchNavigation.prototype.destroy.apply(control, []); + + t.eq(control.dragPan, null, "'dragPan' set to null"); + t.eq(control.handlers, null, "handlers set to null"); + } + + function test_documentDrag(t) { + + t.plan(2); + + /** + * These tests confirm that the documentDrag property is false by + * default and is passed on to the DragPan control. Tests of panning + * while dragging outside the viewport should go in the DragPan tests. + * Tests of the document events and appropriate callbacks from the + * handler should go in the Drag handler tests. + */ + + var nav = new OpenLayers.Control.TouchNavigation(); + t.eq(nav.documentDrag, false, "documentDrag false by default"); + + var map = new OpenLayers.Map({ + div: document.body, + controls: [new OpenLayers.Control.TouchNavigation({documentDrag: true})] + }); + nav = map.controls[0]; + + t.eq(nav.dragPan.documentDrag, true, "documentDrag set on the DragPan control"); + map.destroy(); + + } + + function test_dragPanOptions(t) { + + t.plan(2); + + var nav = new OpenLayers.Control.TouchNavigation(); + t.eq(nav.dragPanOptions, null, "dragPanOptions null by default"); + + var map = new OpenLayers.Map({ + div: document.body, + controls: [ + new OpenLayers.Control.TouchNavigation({ + dragPanOptions: {foo: 'bar'} + }) + ] + }); + nav = map.controls[0]; + + t.eq(nav.dragPan.foo, 'bar', + "foo property is set on the DragPan control"); + map.destroy(); + + } + + function test_clickHandlerOptions(t) { + + t.plan(3); + + var nav = new OpenLayers.Control.TouchNavigation(); + t.eq(nav.clickHandlerOptions, null, "clickHandlerOptions null by default"); + + var map = new OpenLayers.Map({ + div: document.body, + controls: [ + new OpenLayers.Control.TouchNavigation({ + clickHandlerOptions: {foo: "bar"} + }) + ] + }); + nav = map.controls[0]; + + t.eq(nav.handlers.click.foo, "bar", "foo property is set on the click handler"); + t.eq(nav.handlers.click.pixelTolerance, 2, "pixelTolerance is 2 by default"); + map.destroy(); + + } + + function test_zoomOut(t) { + t.plan(1); + + var map = new OpenLayers.Map('map', {zoomMethod: null}); + var layer = new OpenLayers.Layer.WMS( "OpenLayers WMS", + "http://labs.metacarta.com/wms/vmap0", + {layers: 'basic'} ); + map.addLayer(layer); + map.setCenter(new OpenLayers.LonLat(0, 0), 5); + var origSetTimeout = window.setTimeout; + window.setTimeout = function(fn) { fn(); return 'id'; }; + var control = new OpenLayers.Control.TouchNavigation(); + map.addControl(control); + var handler = control.handlers.click; + handler.touchstart({xy: new OpenLayers.Pixel(1 ,1), touches: ["foo", "bar"]}); + handler.touchend({}); + t.eq(map.getZoom(), 4, "Did we zoom out?"); + // tear down + map.destroy(); + window.setTimeout = origSetTimeout; + } + + </script> +</head> +<body> + <div id="map" style="width:512px;height:256px"></div> +</body> +</html> |