making drawing handler work on touch devices. p=sbrunner, r=me (closes #3072)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@11563 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
ahocevar
2011-02-27 15:00:38 +00:00
parent ba8aed56ef
commit 33eef42075
7 changed files with 535 additions and 48 deletions

View File

@@ -96,6 +96,10 @@
measure: function(evt){
log.push(evt);
}
},
handlerOptions: {
pixelTolerance: 0,
dblclickTolerance: 0
}
}
);
@@ -131,8 +135,8 @@
// wait for delay then confirm event was logged
delay, function() {
t.eq(log.length, 1, "a) event logged")
t.ok(log[0] && log[0].type == "measurepartial", "a) event logged");
t.ok(log[0] && log[0].measure == 10, "a) correct measure");
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);
@@ -145,8 +149,8 @@
},
delay, function() {
t.eq(log.length, 2, "b) event logged");
t.ok(log[1] && log[1].type == "measurepartial", "b) correct type");
t.ok(log[1] && log[1].measure == 20, "b) correct measure");
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);
@@ -161,8 +165,8 @@
// wait for rest of delay and confirm event logged
delay / 2, function() {
t.eq(log.length, 3, "c) event logged");
t.ok(log[2] && log[2].type == "measurepartial", "c) correct type");
t.ok(log[2] && log[2].measure == 30, "c) 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) move 10 pixels and click
trigger("mousemove", 0, 40);
@@ -176,8 +180,8 @@
trigger("dblclick", 0, 40);
t.eq(log.length, 4, "e) event logged");
t.ok(log[3] && log[3].type == "measure", "e) correct type");
t.ok(log[3] && log[3].measure == 40, "e) correct measure");
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() {
@@ -198,22 +202,22 @@
trigger("mousemove", 10, 0);
t.eq(log.length, 1, "g) event logged");
t.ok(log[0] && log[0].type == "measurepartial", "g) correct type");
t.ok(log[0] && log[0].measure == 10, "g) correct measure");
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.ok(log[1] && log[1].type == "measurepartial", "h) correct type");
t.ok(log[1] && log[1].measure == 20, "h) correct measure");
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.ok(log[2] && log[2].type == "measure", "i) correct type");
t.ok(log[2] && log[2].measure == 20, "i) correct measure");
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 = [];
@@ -254,6 +258,10 @@
measure: function(evt){
log.push(evt);
}
},
handlerOptions: {
pixelTolerance: 0,
dblclickTolerance: 0
}
}
);
@@ -296,10 +304,10 @@
// confirm measurepartial is fired 2 times
t.eq(log.length, 3, "b) event logged");
t.ok(log[1] && log[1].type == "measurepartial", "b) correct type");
t.ok(log[1] && log[1].measure == 20, "b) correct measure");
t.ok(log[2] && log[2].type == "measurepartial", "c) correct type");
t.ok(log[2] && log[2].measure == 30, "c) correct measure");
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);
@@ -346,23 +354,23 @@
t.eq(log.length, 7, "i) no event fired yet");
},
delay, function() {
t.eq(log.length, 8, "i) event logged");
t.eq(log[7] && log[7].type, "measurepartial", "i) correct type");
t.eq(log[7] && log[7].measure, 60, "i) correct measure");
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, "i) event logged");
t.eq(log[8] && log[8].type, "measure", "i) correct type");
t.eq(log[8] && log[8].measure, 60, "i) correct measure");
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 = [];
// j) clean up
// l) clean up
map.destroy();
// wait for delay and confirm event not logged
},
delay, function() {
t.eq(log.length, 0, "j) no event fired after destroy");
t.eq(log.length, 0, "l) no event fired after destroy");
}
);
}