summaryrefslogtreecommitdiff
path: root/misc/openlayers/tests/Control/Measure.html
diff options
context:
space:
mode:
Diffstat (limited to 'misc/openlayers/tests/Control/Measure.html')
-rw-r--r--misc/openlayers/tests/Control/Measure.html386
1 files changed, 0 insertions, 386 deletions
diff --git a/misc/openlayers/tests/Control/Measure.html b/misc/openlayers/tests/Control/Measure.html
deleted file mode 100644
index ee6d192..0000000
--- a/misc/openlayers/tests/Control/Measure.html
+++ /dev/null
@@ -1,386 +0,0 @@
-<html>
-<head>
- <script src="../OLLoader.js"></script>
- <script type="text/javascript">
-
- function test_initialize(t) {
-
- t.plan(1);
-
- var map = new OpenLayers.Map("map");
- var control = new OpenLayers.Control.Measure(
- OpenLayers.Handler.Path, {persist: true}
- );
- map.addControl(control);
-
- t.eq(control.persist, true, "passing persist to constructor sets persist on handler");
-
- map.destroy();
-
- }
-
- function test_cancel(t) {
-
- t.plan(4);
-
- var map = new OpenLayers.Map("map");
- var layer = new OpenLayers.Layer(null, {
- isBaseLayer: true
- });
- map.addLayer(layer);
- map.zoomToMaxExtent();
-
- var control = new OpenLayers.Control.Measure(
- OpenLayers.Handler.Path, {persist: true}
- );
- map.addControl(control);
-
- control.activate();
-
- try {
- control.cancel();
- t.ok(true, "calling cancel before drawing works");
- } catch(err) {
- t.fail("calling cancel before drawing causes trouble: " + err);
- }
- t.eq(control.active, true, "control remains active after cancel");
-
- // create a simple measurement
- function trigger(type, x, y) {
- map.events.triggerEvent(type, {
- xy: new OpenLayers.Pixel(x, y)
- })
- };
-
- trigger("mousemove", 0, 0);
- // keep a reference to the line being drawn
- var line = control.handler.line;
- trigger("mousedown", 0, 0);
- trigger("mouseup", 0, 0);
- trigger("mousemove", 10, 10);
- trigger("mousedown", 10, 10);
- trigger("mouseup", 10, 10);
- trigger("dblclick", 10, 10);
-
- // the geometry is finalized, we first confirm that it is persisted
- t.ok(line.layer === control.handler.layer, "feature persists");
-
- // cancel and see that sketch is gone
- control.cancel();
- t.eq(line.layer, null, "feature is gone after cancel");
-
- map.destroy();
- }
-
- // test for <http://trac.openlayers.org/ticket/2691>
- function test_partial(t) {
-
- t.plan(28);
-
- var map = new OpenLayers.Map({
- div: "map",
- units: "m",
- resolutions: [1],
- layers: [
- new OpenLayers.Layer(null, {
- isBaseLayer: true
- })
- ],
- center: new OpenLayers.LonLat(0, 0)
- });
-
- var log = [];
- var control = new OpenLayers.Control.Measure(
- OpenLayers.Handler.Path, {persist: true,
- eventListeners: {
- measurepartial: function(evt) {
- log.push(evt);
- },
- measure: function(evt){
- log.push(evt);
- }
- },
- handlerOptions: {
- pixelTolerance: 0,
- dblclickTolerance: 0
- }
- }
- );
- map.addControl(control);
- control.activate();
-
-
- // convenience function to trigger mouse events
- function trigger(type, x, y) {
- map.events.triggerEvent(type, {
- xy: new OpenLayers.Pixel(x, y)
- })
- };
-
- // delay in seconds
- var delay = control.partialDelay / 1000;
-
- // establish first point
- trigger("mousemove", 0, 0);
- trigger("mousedown", 0, 0);
- trigger("mouseup", 0, 0);
-
-
- // a) move 10 pixels and click
- trigger("mousemove", 0, 10);
- trigger("mousedown", 0, 10);
- trigger("mouseup", 0, 10);
-
- // confirm measurepartial is not fired before delay
- t.eq(log.length, 0, "a) no event fired yet")
-
- t.delay_call(
- // wait for delay then confirm event was logged
- delay, function() {
- t.eq(log.length, 1, "a) event logged")
- t.eq(log[0] && log[0].type, "measurepartial", "a) event logged");
- t.eq(log[0] && log[0].measure, 10, "a) correct measure");
-
- // b) move 10 pixels and click
- trigger("mousemove", 0, 20);
- trigger("mousedown", 0, 20);
- trigger("mouseup", 0, 20);
-
- // confirm measurepartial is not fired before delay
- t.eq(log.length, 1, "b) no event fired yet")
-
- },
- delay, function() {
- t.eq(log.length, 2, "b) event logged");
- t.eq(log[1] && log[1].type, "measurepartial", "b) correct type");
- t.eq(log[1] && log[1].measure, 20, "b) correct measure");
-
- // c) move 10 pixels and click
- trigger("mousemove", 0, 30);
- trigger("mousedown", 0, 30);
- trigger("mouseup", 0, 30);
- },
- // wait for half delay and confirm event not logged
- delay / 2, function() {
- // confirm measurepartial is not fired before delay
- t.eq(log.length, 2, "c) no event fired yet")
- },
- // wait for rest of delay and confirm event logged
- delay / 2, function() {
- t.eq(log.length, 3, "c) event logged");
- t.eq(log[2] && log[2].type, "measurepartial", "c) correct type");
- t.eq(log[2] && log[2].measure, 30, "c) correct measure");
-
- // d) move 10 pixels and click
- trigger("mousemove", 0, 40);
- trigger("mousedown", 0, 40);
- trigger("mouseup", 0, 40);
-
- // confirm measurepartial is not fired before delay
- t.eq(log.length, 3, "d) no event fired yet")
-
- // e) double click to finish
- trigger("dblclick", 0, 40);
-
- t.eq(log.length, 4, "e) event logged");
- t.eq(log[3] && log[3].type, "measure", "e) correct type");
- t.eq(log[3] && log[3].measure, 40, "e) correct measure");
- },
- // wait for rest of delay and confirm no measurepartial logged
- delay, function() {
- // confirm measurepartial is not fired after dblclick
- t.eq(log.length, 4, "e) no additional event fired");
-
- // change to freehand mode and confirm synchronous event dispatch
- control.handler.freehand = true;
- // clear log
- log = [];
-
- // f) establish first freehand point
- trigger("mousemove", 0, 0);
- trigger("mousedown", 0, 0);
- t.eq(log.length, 0, "f) no event fired yet")
-
- // g) move 10 pixels
- trigger("mousemove", 10, 0);
-
- t.eq(log.length, 1, "g) event logged");
- t.eq(log[0] && log[0].type, "measurepartial", "g) correct type");
- t.eq(log[0] && log[0].measure, 10, "g) correct measure");
-
- // h) move 10 pixels
- trigger("mousemove", 20, 0);
-
- t.eq(log.length, 2, "h) event logged");
- t.eq(log[1] && log[1].type, "measurepartial", "h) correct type");
- t.eq(log[1] && log[1].measure, 20, "h) correct measure");
-
- // i) mouse up to finish
- trigger("mouseup", 20, 0);
-
- t.eq(log.length, 3, "i) event logged");
- t.eq(log[2] && log[2].type, "measure", "i) correct type");
- t.eq(log[2] && log[2].measure, 20, "i) correct measure");
-
- // j) clean up
- log = [];
- map.destroy();
- },
- // wait for delay and confirm event not logged
- delay, function() {
- t.eq(log.length, 0, "j) no event fired after destroy");
- }
- );
-
- }
-
- function test_immediate(t) {
- t.plan(32);
-
- var map = new OpenLayers.Map({
- div: "map",
- units: "m",
- resolutions: [1],
- layers: [
- new OpenLayers.Layer(null, {
- isBaseLayer: true
- })
- ],
- center: new OpenLayers.LonLat(0, 0)
- });
-
- var log = [];
- var control = new OpenLayers.Control.Measure(
- OpenLayers.Handler.Path, {
- persist: true,
- immediate: true,
- eventListeners: {
- measurepartial: function(evt) {
- log.push(evt);
- },
- measure: function(evt){
- log.push(evt);
- }
- },
- handlerOptions: {
- pixelTolerance: 0,
- dblclickTolerance: 0
- }
- }
- );
- map.addControl(control);
- control.activate();
-
- // convenience function to trigger mouse events
- function trigger(type, x, y) {
- map.events.triggerEvent(type, {
- xy: new OpenLayers.Pixel(x, y)
- })
- };
-
- // delay in seconds
- var delay = control.partialDelay / 1000;
-
- // a) establish first point
- trigger("mousemove", 0, 0);
- trigger("mousedown", 0, 0);
- trigger("mouseup", 0, 0);
-
- // move 10 pixels
- trigger("mousemove", 0, 10);
-
- t.eq(log.length, 1, "a) has fired an event");
-
- t.delay_call(
- delay, function() {
- // confirm measurepartial is fired
- t.eq(log.length, 1, "a) one event logged");
- t.ok(log[0] && log[0].type == "measurepartial", "a) correct type");
- // mousemove within the partialDelay fires no event, so the
- // measure below is the one of the initial point
- t.eq(log[0]?log[0].measure:-1 , 10, "a) correct measure");
-
- // b) move 10 pixels
- trigger("mousemove", 0, 20);
- // c) move 10 pixels again
- trigger("mousemove", 0, 30);
-
- // confirm measurepartial is fired 2 times
- t.eq(log.length, 3, "b) event logged");
- t.eq(log[1] && log[1].type, "measurepartial", "b) correct type");
- t.eq(log[1] && log[1].measure, 20, "b) correct measure");
- t.eq(log[2] && log[2].type, "measurepartial", "c) correct type");
- t.eq(log[2] && log[2].measure, 30, "c) correct measure");
-
- // d) switch immediate measurement off
- control.setImmediate(false);
- t.eq(control.immediate, false, "d) immediate is false");
-
- // e) move 10 pixels and click
- trigger("mousemove", 0, 40);
- trigger("mousedown", 0, 40);
- trigger("mouseup", 0, 40);
- // confirm measurepartial is not fired before delay
- t.eq(log.length, 3, "e) no event fired yet")
- },
- // wait for delay then confirm event was logged
- delay, function() {
- t.eq(log.length, 4, "e) event logged")
- t.ok(log[3] && log[3].type == "measurepartial", "e) correct type");
- t.ok(log[3] && log[3].measure == 40, "e) correct measure");
-
- // f) switch immediate measurement on
- control.setImmediate(true);
- t.eq(control.immediate, true, "f) immediate is true");
-
- // g) move 10 pixels
- trigger("mousemove", 0, 50);
- },
- delay, function() {
- t.eq(log.length, 5, "g) event logged");
- t.ok(log[4] && log[4].type == "measurepartial", "g) correct type");
- t.ok(log[4] && log[4].measure == 50, "g) correct measure");
-
- // h) move 10 pixels
- trigger("mousemove", 0, 60);
-
- t.eq(log.length, 6, "h) event logged");
- t.ok(log[5] && log[5].type == "measurepartial", "h) correct type");
- t.ok(log[5] && log[5].measure == 60, "h) correct measure");
-
- // i) double click to finish
- trigger("mousedown", 0, 60);
- t.eq(log.length, 7, "i) event logged");
- t.eq(log[6] && log[6].type, "measurepartial", "i) correct type");
- t.eq(log[6] && log[6].measure, 60, "i) correct measure");
- trigger("mouseup", 0, 60);
- t.eq(log.length, 7, "i) no event fired yet");
- },
- delay, function() {
- t.eq(log.length, 8, "j) event logged");
- t.eq(log[7] && log[7].type, "measurepartial", "j) correct type");
- t.eq(log[7] && log[7].measure, 60, "j) correct measure");
-
- trigger("dblclick", 0, 60);
- t.eq(log.length, 9, "k) event logged");
- t.eq(log[8] && log[8].type, "measure", "k) correct type");
- t.eq(log[8] && log[8].measure, 60, "k) correct measure");
- // clear log
- log = [];
-
- // l) clean up
- map.destroy();
- // wait for delay and confirm event not logged
- },
- delay, function() {
- t.eq(log.length, 0, "l) no event fired after destroy");
- }
- );
- }
-
- </script>
-</head>
-<body>
- <div id="map" style="width: 512px; height: 256px;"></div>
-</body>
-</html>