Updating tests for Draw interaction

This commit is contained in:
ahocevar
2014-03-05 17:59:29 +01:00
committed by tsauerwein
parent bc1489e8a0
commit f5f2dae300
+118 -153
View File
@@ -48,12 +48,13 @@ describe('ol.interaction.Draw', function() {
var viewport = map.getViewport(); var viewport = map.getViewport();
// calculated in case body has top < 0 (test runner with small window) // calculated in case body has top < 0 (test runner with small window)
var position = goog.style.getClientPosition(viewport); var position = goog.style.getClientPosition(viewport);
var event = new goog.events.BrowserEvent({ var event = new ol.MapBrowserPointerEvent(type, map,
type: type, new ol.pointer.PointerEvent(type,
clientX: position.x + x + width / 2, new goog.events.BrowserEvent({
clientY: position.y + y + height / 2 clientX: position.x + x + width / 2,
}); clientY: position.y + y + height / 2
goog.events.fireListeners(viewport, type, false, event); })));
map.handleMapBrowserEvent(event);
} }
describe('constructor', function() { describe('constructor', function() {
@@ -81,10 +82,9 @@ describe('ol.interaction.Draw', function() {
}); });
it('draws a point on click', function() { it('draws a point on click', function() {
simulateEvent('mousemove', 10, 20); simulateEvent('pointermove', 10, 20);
simulateEvent('mousedown', 10, 20); simulateEvent('pointerdown', 10, 20);
simulateEvent('mouseup', 10, 20); simulateEvent('pointerup', 10, 20);
simulateEvent('click', 10, 20);
var features = source.getFeatures(); var features = source.getFeatures();
expect(features).to.have.length(1); expect(features).to.have.length(1);
var geometry = features[0].getGeometry(); var geometry = features[0].getGeometry();
@@ -93,11 +93,10 @@ describe('ol.interaction.Draw', function() {
}); });
it('does not draw a point with a significant drag', function() { it('does not draw a point with a significant drag', function() {
simulateEvent('mousemove', 10, 20); simulateEvent('pointermove', 10, 20);
simulateEvent('mousedown', 10, 20); simulateEvent('pointerdown', 10, 20);
simulateEvent('mousemove', 15, 20); simulateEvent('pointermove', 15, 20);
simulateEvent('mouseup', 15, 20); simulateEvent('pointerup', 15, 20);
simulateEvent('click', 15, 20);
var features = source.getFeatures(); var features = source.getFeatures();
expect(features).to.have.length(0); expect(features).to.have.length(0);
}); });
@@ -107,11 +106,10 @@ describe('ol.interaction.Draw', function() {
var de = sinon.spy(); var de = sinon.spy();
goog.events.listen(draw, ol.DrawEventType.DRAWSTART, ds); goog.events.listen(draw, ol.DrawEventType.DRAWSTART, ds);
goog.events.listen(draw, ol.DrawEventType.DRAWEND, de); goog.events.listen(draw, ol.DrawEventType.DRAWEND, de);
simulateEvent('mousemove', 10, 20); simulateEvent('pointermove', 10, 20);
simulateEvent('mousedown', 10, 20); simulateEvent('pointerdown', 10, 20);
simulateEvent('mouseup', 10, 20); simulateEvent('pointerup', 10, 20);
simulateEvent('click', 10, 20); simulateEvent('pointermove', 20, 20);
simulateEvent('mousemove', 20, 20);
expect(ds).to.be.called(2); expect(ds).to.be.called(2);
expect(de).to.be.called(1); expect(de).to.be.called(1);
}); });
@@ -128,10 +126,9 @@ describe('ol.interaction.Draw', function() {
}); });
it('draws multipoint on click', function() { it('draws multipoint on click', function() {
simulateEvent('mousemove', 30, 15); simulateEvent('pointermove', 30, 15);
simulateEvent('mousedown', 30, 15); simulateEvent('pointerdown', 30, 15);
simulateEvent('mouseup', 30, 15); simulateEvent('pointerup', 30, 15);
simulateEvent('click', 30, 15);
var features = source.getFeatures(); var features = source.getFeatures();
expect(features).to.have.length(1); expect(features).to.have.length(1);
var geometry = features[0].getGeometry(); var geometry = features[0].getGeometry();
@@ -154,21 +151,18 @@ describe('ol.interaction.Draw', function() {
it('draws linestring with clicks, finishing on last point', function() { it('draws linestring with clicks, finishing on last point', function() {
// first point // first point
simulateEvent('mousemove', 10, 20); simulateEvent('pointermove', 10, 20);
simulateEvent('mousedown', 10, 20); simulateEvent('pointerdown', 10, 20);
simulateEvent('mouseup', 10, 20); simulateEvent('pointerup', 10, 20);
simulateEvent('click', 10, 20);
// second point // second point
simulateEvent('mousemove', 30, 20); simulateEvent('pointermove', 30, 20);
simulateEvent('mousedown', 30, 20); simulateEvent('pointerdown', 30, 20);
simulateEvent('mouseup', 30, 20); simulateEvent('pointerup', 30, 20);
simulateEvent('click', 30, 20);
// finish on second point // finish on second point
simulateEvent('mousedown', 30, 20); simulateEvent('pointerdown', 30, 20);
simulateEvent('mouseup', 30, 20); simulateEvent('pointerup', 30, 20);
simulateEvent('click', 30, 20);
var features = source.getFeatures(); var features = source.getFeatures();
expect(features).to.have.length(1); expect(features).to.have.length(1);
@@ -179,29 +173,24 @@ describe('ol.interaction.Draw', function() {
it('does not add a point with a significant drag', function() { it('does not add a point with a significant drag', function() {
// first point // first point
simulateEvent('mousemove', 10, 20); simulateEvent('pointermove', 10, 20);
simulateEvent('mousedown', 10, 20); simulateEvent('pointerdown', 10, 20);
simulateEvent('mouseup', 10, 20); simulateEvent('pointerup', 10, 20);
simulateEvent('click', 10, 20);
// drag map // drag map
simulateEvent('mousemove', 15, 20); simulateEvent('pointermove', 15, 20);
simulateEvent('mousedown', 15, 20); simulateEvent('pointerdown', 15, 20);
simulateEvent('mousemove', 20, 20); simulateEvent('pointermove', 20, 20);
simulateEvent('mouseup', 20, 20); simulateEvent('pointerup', 20, 20);
simulateEvent('click', 20, 20);
// second point // second point
simulateEvent('mousemove', 30, 20); simulateEvent('pointermove', 30, 20);
simulateEvent('mousedown', 30, 20); simulateEvent('pointerdown', 30, 20);
simulateEvent('mouseup', 30, 20); simulateEvent('pointerup', 30, 20);
simulateEvent('click', 30, 20);
// finish on second point // finish on second point
simulateEvent('mousedown', 30, 20); simulateEvent('pointerdown', 30, 20);
simulateEvent('mouseup', 30, 20); simulateEvent('pointerup', 30, 20);
simulateEvent('click', 30, 20);
var features = source.getFeatures(); var features = source.getFeatures();
expect(features).to.have.length(1); expect(features).to.have.length(1);
@@ -217,22 +206,19 @@ describe('ol.interaction.Draw', function() {
goog.events.listen(draw, ol.DrawEventType.DRAWEND, de); goog.events.listen(draw, ol.DrawEventType.DRAWEND, de);
// first point // first point
simulateEvent('mousemove', 10, 20); simulateEvent('pointermove', 10, 20);
simulateEvent('mousedown', 10, 20); simulateEvent('pointerdown', 10, 20);
simulateEvent('mouseup', 10, 20); simulateEvent('pointerup', 10, 20);
simulateEvent('click', 10, 20);
// second point // second point
simulateEvent('mousemove', 30, 20); simulateEvent('pointermove', 30, 20);
simulateEvent('mousedown', 30, 20); simulateEvent('pointerdown', 30, 20);
simulateEvent('mouseup', 30, 20); simulateEvent('pointerup', 30, 20);
simulateEvent('click', 30, 20);
// finish on second point // finish on second point
simulateEvent('mousedown', 30, 20); simulateEvent('pointerdown', 30, 20);
simulateEvent('mouseup', 30, 20); simulateEvent('pointerup', 30, 20);
simulateEvent('click', 30, 20); simulateEvent('pointermove', 10, 20);
simulateEvent('mousemove', 10, 20);
expect(ds).to.be.called(1); expect(ds).to.be.called(1);
expect(de).to.be.called(1); expect(de).to.be.called(1);
@@ -251,21 +237,18 @@ describe('ol.interaction.Draw', function() {
it('draws multi with clicks, finishing on last point', function() { it('draws multi with clicks, finishing on last point', function() {
// first point // first point
simulateEvent('mousemove', 10, 20); simulateEvent('pointermove', 10, 20);
simulateEvent('mousedown', 10, 20); simulateEvent('pointerdown', 10, 20);
simulateEvent('mouseup', 10, 20); simulateEvent('pointerup', 10, 20);
simulateEvent('click', 10, 20);
// second point // second point
simulateEvent('mousemove', 30, 20); simulateEvent('pointermove', 30, 20);
simulateEvent('mousedown', 30, 20); simulateEvent('pointerdown', 30, 20);
simulateEvent('mouseup', 30, 20); simulateEvent('pointerup', 30, 20);
simulateEvent('click', 30, 20);
// finish on second point // finish on second point
simulateEvent('mousedown', 30, 20); simulateEvent('pointerdown', 30, 20);
simulateEvent('mouseup', 30, 20); simulateEvent('pointerup', 30, 20);
simulateEvent('click', 30, 20);
var features = source.getFeatures(); var features = source.getFeatures();
expect(features).to.have.length(1); expect(features).to.have.length(1);
@@ -289,28 +272,24 @@ describe('ol.interaction.Draw', function() {
it('draws polygon with clicks, finishing on first point', function() { it('draws polygon with clicks, finishing on first point', function() {
// first point // first point
simulateEvent('mousemove', 10, 20); simulateEvent('pointermove', 10, 20);
simulateEvent('mousedown', 10, 20); simulateEvent('pointerdown', 10, 20);
simulateEvent('mouseup', 10, 20); simulateEvent('pointerup', 10, 20);
simulateEvent('click', 10, 20);
// second point // second point
simulateEvent('mousemove', 30, 20); simulateEvent('pointermove', 30, 20);
simulateEvent('mousedown', 30, 20); simulateEvent('pointerdown', 30, 20);
simulateEvent('mouseup', 30, 20); simulateEvent('pointerup', 30, 20);
simulateEvent('click', 30, 20);
// third point // third point
simulateEvent('mousemove', 40, 10); simulateEvent('pointermove', 40, 10);
simulateEvent('mousedown', 40, 10); simulateEvent('pointerdown', 40, 10);
simulateEvent('mouseup', 40, 10); simulateEvent('pointerup', 40, 10);
simulateEvent('click', 40, 10);
// finish on first point // finish on first point
simulateEvent('mousemove', 10, 20); simulateEvent('pointermove', 10, 20);
simulateEvent('mousedown', 10, 20); simulateEvent('pointerdown', 10, 20);
simulateEvent('mouseup', 10, 20); simulateEvent('pointerup', 10, 20);
simulateEvent('click', 10, 20);
var features = source.getFeatures(); var features = source.getFeatures();
expect(features).to.have.length(1); expect(features).to.have.length(1);
@@ -324,27 +303,23 @@ describe('ol.interaction.Draw', function() {
it('draws polygon with clicks, finishing on last point', function() { it('draws polygon with clicks, finishing on last point', function() {
// first point // first point
simulateEvent('mousemove', 10, 20); simulateEvent('pointermove', 10, 20);
simulateEvent('mousedown', 10, 20); simulateEvent('pointerdown', 10, 20);
simulateEvent('mouseup', 10, 20); simulateEvent('pointerup', 10, 20);
simulateEvent('click', 10, 20);
// second point // second point
simulateEvent('mousemove', 30, 20); simulateEvent('pointermove', 30, 20);
simulateEvent('mousedown', 30, 20); simulateEvent('pointerdown', 30, 20);
simulateEvent('mouseup', 30, 20); simulateEvent('pointerup', 30, 20);
simulateEvent('click', 30, 20);
// third point // third point
simulateEvent('mousemove', 40, 10); simulateEvent('pointermove', 40, 10);
simulateEvent('mousedown', 40, 10); simulateEvent('pointerdown', 40, 10);
simulateEvent('mouseup', 40, 10); simulateEvent('pointerup', 40, 10);
simulateEvent('click', 40, 10);
// finish on last point // finish on last point
simulateEvent('mousedown', 40, 10); simulateEvent('pointerdown', 40, 10);
simulateEvent('mouseup', 40, 10); simulateEvent('pointerup', 40, 10);
simulateEvent('click', 40, 11);
var features = source.getFeatures(); var features = source.getFeatures();
expect(features).to.have.length(1); expect(features).to.have.length(1);
@@ -363,28 +338,24 @@ describe('ol.interaction.Draw', function() {
goog.events.listen(draw, ol.DrawEventType.DRAWEND, de); goog.events.listen(draw, ol.DrawEventType.DRAWEND, de);
// first point // first point
simulateEvent('mousemove', 10, 20); simulateEvent('pointermove', 10, 20);
simulateEvent('mousedown', 10, 20); simulateEvent('pointerdown', 10, 20);
simulateEvent('mouseup', 10, 20); simulateEvent('pointerup', 10, 20);
simulateEvent('click', 10, 20);
// second point // second point
simulateEvent('mousemove', 30, 20); simulateEvent('pointermove', 30, 20);
simulateEvent('mousedown', 30, 20); simulateEvent('pointerdown', 30, 20);
simulateEvent('mouseup', 30, 20); simulateEvent('pointerup', 30, 20);
simulateEvent('click', 30, 20);
// third point // third point
simulateEvent('mousemove', 30, 10); simulateEvent('pointermove', 30, 10);
simulateEvent('mousedown', 30, 10); simulateEvent('pointerdown', 30, 10);
simulateEvent('mouseup', 30, 10); simulateEvent('pointerup', 30, 10);
simulateEvent('click', 30, 10);
// finish on first point // finish on first point
simulateEvent('mousemove', 10, 20); simulateEvent('pointermove', 10, 20);
simulateEvent('mousedown', 10, 20); simulateEvent('pointerdown', 10, 20);
simulateEvent('mouseup', 10, 20); simulateEvent('pointerup', 10, 20);
simulateEvent('click', 10, 20);
expect(ds).to.be.called(1); expect(ds).to.be.called(1);
expect(de).to.be.called(1); expect(de).to.be.called(1);
@@ -403,28 +374,24 @@ describe('ol.interaction.Draw', function() {
it('draws multi with clicks, finishing on first point', function() { it('draws multi with clicks, finishing on first point', function() {
// first point // first point
simulateEvent('mousemove', 10, 20); simulateEvent('pointermove', 10, 20);
simulateEvent('mousedown', 10, 20); simulateEvent('pointerdown', 10, 20);
simulateEvent('mouseup', 10, 20); simulateEvent('pointerup', 10, 20);
simulateEvent('click', 10, 20);
// second point // second point
simulateEvent('mousemove', 30, 20); simulateEvent('pointermove', 30, 20);
simulateEvent('mousedown', 30, 20); simulateEvent('pointerdown', 30, 20);
simulateEvent('mouseup', 30, 20); simulateEvent('pointerup', 30, 20);
simulateEvent('click', 30, 20);
// third point // third point
simulateEvent('mousemove', 40, 10); simulateEvent('pointermove', 40, 10);
simulateEvent('mousedown', 40, 10); simulateEvent('pointerdown', 40, 10);
simulateEvent('mouseup', 40, 10); simulateEvent('pointerup', 40, 10);
simulateEvent('click', 40, 10);
// finish on first point // finish on first point
simulateEvent('mousemove', 10, 20); simulateEvent('pointermove', 10, 20);
simulateEvent('mousedown', 10, 20); simulateEvent('pointerdown', 10, 20);
simulateEvent('mouseup', 10, 20); simulateEvent('pointerup', 10, 20);
simulateEvent('click', 10, 20);
var features = source.getFeatures(); var features = source.getFeatures();
expect(features).to.have.length(1); expect(features).to.have.length(1);
@@ -440,27 +407,23 @@ describe('ol.interaction.Draw', function() {
it('draws multi with clicks, finishing on last point', function() { it('draws multi with clicks, finishing on last point', function() {
// first point // first point
simulateEvent('mousemove', 10, 20); simulateEvent('pointermove', 10, 20);
simulateEvent('mousedown', 10, 20); simulateEvent('pointerdown', 10, 20);
simulateEvent('mouseup', 10, 20); simulateEvent('pointerup', 10, 20);
simulateEvent('click', 10, 20);
// second point // second point
simulateEvent('mousemove', 30, 20); simulateEvent('pointermove', 30, 20);
simulateEvent('mousedown', 30, 20); simulateEvent('pointerdown', 30, 20);
simulateEvent('mouseup', 30, 20); simulateEvent('pointerup', 30, 20);
simulateEvent('click', 30, 20);
// third point // third point
simulateEvent('mousemove', 40, 10); simulateEvent('pointermove', 40, 10);
simulateEvent('mousedown', 40, 10); simulateEvent('pointerdown', 40, 10);
simulateEvent('mouseup', 40, 10); simulateEvent('pointerup', 40, 10);
simulateEvent('click', 40, 10);
// finish on last point // finish on last point
simulateEvent('mousedown', 40, 10); simulateEvent('pointerdown', 40, 10);
simulateEvent('mouseup', 40, 10); simulateEvent('pointerup', 40, 10);
simulateEvent('click', 40, 10);
var features = source.getFeatures(); var features = source.getFeatures();
expect(features).to.have.length(1); expect(features).to.have.length(1);
@@ -483,6 +446,7 @@ goog.require('goog.events');
goog.require('goog.events.BrowserEvent'); goog.require('goog.events.BrowserEvent');
goog.require('goog.style'); goog.require('goog.style');
goog.require('ol.Map'); goog.require('ol.Map');
goog.require('ol.MapBrowserPointerEvent');
goog.require('ol.RendererHint'); goog.require('ol.RendererHint');
goog.require('ol.View2D'); goog.require('ol.View2D');
goog.require('ol.geom.GeometryType'); goog.require('ol.geom.GeometryType');
@@ -495,4 +459,5 @@ goog.require('ol.geom.Polygon');
goog.require('ol.interaction.Draw'); goog.require('ol.interaction.Draw');
goog.require('ol.interaction.Interaction'); goog.require('ol.interaction.Interaction');
goog.require('ol.layer.Vector'); goog.require('ol.layer.Vector');
goog.require('ol.pointer.PointerEvent');
goog.require('ol.source.Vector'); goog.require('ol.source.Vector');