Add regression test
This commit is contained in:
@@ -75,9 +75,10 @@ describe('ol.interaction.Draw', function () {
|
|||||||
* @param {number} x Horizontal offset from map center.
|
* @param {number} x Horizontal offset from map center.
|
||||||
* @param {number} y Vertical offset from map center.
|
* @param {number} y Vertical offset from map center.
|
||||||
* @param {boolean=} opt_shiftKey Shift key is pressed.
|
* @param {boolean=} opt_shiftKey Shift key is pressed.
|
||||||
|
* @param {boolean=} opt_pointerId Pointer id.
|
||||||
* @return {module:ol/MapBrowserEvent} The simulated event.
|
* @return {module:ol/MapBrowserEvent} The simulated event.
|
||||||
*/
|
*/
|
||||||
function simulateEvent(type, x, y, opt_shiftKey) {
|
function simulateEvent(type, x, y, opt_shiftKey, opt_pointerId = 0) {
|
||||||
const viewport = map.getViewport();
|
const 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)
|
||||||
const position = viewport.getBoundingClientRect();
|
const position = viewport.getBoundingClientRect();
|
||||||
@@ -90,7 +91,7 @@ describe('ol.interaction.Draw', function () {
|
|||||||
event.shiftKey = shiftKey;
|
event.shiftKey = shiftKey;
|
||||||
event.preventDefault = function () {};
|
event.preventDefault = function () {};
|
||||||
event.pointerType = 'mouse';
|
event.pointerType = 'mouse';
|
||||||
event.pointerId = 0;
|
event.pointerId = opt_pointerId;
|
||||||
const simulatedEvent = new MapBrowserEvent(type, map, event);
|
const simulatedEvent = new MapBrowserEvent(type, map, event);
|
||||||
map.handleMapBrowserEvent(simulatedEvent);
|
map.handleMapBrowserEvent(simulatedEvent);
|
||||||
return simulatedEvent;
|
return simulatedEvent;
|
||||||
@@ -219,6 +220,17 @@ describe('ol.interaction.Draw', function () {
|
|||||||
expect(features).to.have.length(0);
|
expect(features).to.have.length(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('does not draw a point when multiple pointers are involved', function () {
|
||||||
|
simulateEvent('pointerdown', 10, 20, false, 1);
|
||||||
|
simulateEvent('pointerdown', 10, 20, false, 2);
|
||||||
|
simulateEvent('pointermove', 10, 30, false, 1);
|
||||||
|
simulateEvent('pointermove', 10, 10, false, 2);
|
||||||
|
simulateEvent('pointerup', 10, 30, false, 1);
|
||||||
|
simulateEvent('pointerup', 10, 10, false, 2);
|
||||||
|
const features = source.getFeatures();
|
||||||
|
expect(features).to.have.length(0);
|
||||||
|
});
|
||||||
|
|
||||||
it('triggers draw events', function () {
|
it('triggers draw events', function () {
|
||||||
const ds = sinon.spy();
|
const ds = sinon.spy();
|
||||||
const de = sinon.spy();
|
const de = sinon.spy();
|
||||||
|
|||||||
Reference in New Issue
Block a user