Named exports from ol/has

This commit is contained in:
Tim Schaub
2018-02-05 10:10:17 -07:00
parent 348afc4e44
commit 9cfee0f40b
26 changed files with 222 additions and 185 deletions

View File

@@ -2,7 +2,7 @@ import Map from '../../../../src/ol/Map.js';
import MapBrowserEvent from '../../../../src/ol/MapBrowserEvent.js';
import View from '../../../../src/ol/View.js';
import Event from '../../../../src/ol/events/Event.js';
import _ol_has_ from '../../../../src/ol/has.js';
import {DEVICE_PIXEL_RATIO, FIREFOX, SAFARI} from '../../../../src/ol/has.js';
import Interaction from '../../../../src/ol/interaction/Interaction.js';
import MouseWheelZoom from '../../../../src/ol/interaction/MouseWheelZoom.js';
@@ -62,43 +62,41 @@ describe('ol.interaction.MouseWheelZoom', function() {
describe('handleEvent()', function() {
it('works on Firefox in DOM_DELTA_PIXEL mode (trackpad)', function(done) {
const origHasFirefox = _ol_has_.FIREFOX;
_ol_has_.FIREFOX = true;
map.once('postrender', function() {
expect(interaction.mode_).to.be(MouseWheelZoom.Mode_.TRACKPAD);
_ol_has_.FIREFOX = origHasFirefox;
done();
if (FIREFOX) {
it('works on Firefox in DOM_DELTA_PIXEL mode (trackpad)', function(done) {
map.once('postrender', function() {
expect(interaction.mode_).to.be(MouseWheelZoom.Mode_.TRACKPAD);
done();
});
const event = new MapBrowserEvent('wheel', map, {
type: 'wheel',
deltaMode: WheelEvent.DOM_DELTA_PIXEL,
deltaY: DEVICE_PIXEL_RATIO,
target: map.getViewport(),
preventDefault: Event.prototype.preventDefault
});
event.coordinate = [0, 0];
map.handleMapBrowserEvent(event);
});
const event = new MapBrowserEvent('wheel', map, {
type: 'wheel',
deltaMode: WheelEvent.DOM_DELTA_PIXEL,
deltaY: _ol_has_.DEVICE_PIXEL_RATIO,
target: map.getViewport(),
preventDefault: Event.prototype.preventDefault
});
event.coordinate = [0, 0];
map.handleMapBrowserEvent(event);
});
}
it('works in DOM_DELTA_PIXEL mode (trackpad)', function(done) {
const origHasFirefox = _ol_has_.FIREFOX;
_ol_has_.FIREFOX = false;
map.once('postrender', function() {
expect(interaction.mode_).to.be(MouseWheelZoom.Mode_.TRACKPAD);
_ol_has_.FIREFOX = origHasFirefox;
done();
if (!FIREFOX) {
it('works in DOM_DELTA_PIXEL mode (trackpad)', function(done) {
map.once('postrender', function() {
expect(interaction.mode_).to.be(MouseWheelZoom.Mode_.TRACKPAD);
done();
});
const event = new MapBrowserEvent('wheel', map, {
type: 'wheel',
deltaMode: WheelEvent.DOM_DELTA_PIXEL,
deltaY: 1,
target: map.getViewport(),
preventDefault: Event.prototype.preventDefault
});
event.coordinate = [0, 0];
map.handleMapBrowserEvent(event);
});
const event = new MapBrowserEvent('wheel', map, {
type: 'wheel',
deltaMode: WheelEvent.DOM_DELTA_PIXEL,
deltaY: 1,
target: map.getViewport(),
preventDefault: Event.prototype.preventDefault
});
event.coordinate = [0, 0];
map.handleMapBrowserEvent(event);
});
}
describe('spying on ol.interaction.Interaction.zoomByDelta', function() {
beforeEach(function() {
@@ -126,45 +124,43 @@ describe('ol.interaction.MouseWheelZoom', function() {
map.handleMapBrowserEvent(event);
});
it('works on Safari (wheel)', function(done) {
const origHasSafari = _ol_has_.SAFARI;
_ol_has_.SAFARI = true;
map.once('postrender', function() {
const call = Interaction.zoomByDelta.getCall(0);
expect(call.args[1]).to.be(-1);
expect(call.args[2]).to.eql([0, 0]);
_ol_has_.SAFARI = origHasSafari;
done();
if (SAFARI) {
it('works on Safari (wheel)', function(done) {
map.once('postrender', function() {
const call = Interaction.zoomByDelta.getCall(0);
expect(call.args[1]).to.be(-1);
expect(call.args[2]).to.eql([0, 0]);
done();
});
const event = new MapBrowserEvent('mousewheel', map, {
type: 'mousewheel',
wheelDeltaY: -50,
target: map.getViewport(),
preventDefault: Event.prototype.preventDefault
});
event.coordinate = [0, 0];
map.handleMapBrowserEvent(event);
});
const event = new MapBrowserEvent('mousewheel', map, {
type: 'mousewheel',
wheelDeltaY: -50,
target: map.getViewport(),
preventDefault: Event.prototype.preventDefault
});
event.coordinate = [0, 0];
map.handleMapBrowserEvent(event);
});
}
it('works on other browsers (wheel)', function(done) {
const origHasSafari = _ol_has_.SAFARI;
_ol_has_.SAFARI = false;
map.once('postrender', function() {
const call = Interaction.zoomByDelta.getCall(0);
expect(call.args[1]).to.be(-1);
expect(call.args[2]).to.eql([0, 0]);
_ol_has_.SAFARI = origHasSafari;
done();
if (!SAFARI) {
it('works on other browsers (wheel)', function(done) {
map.once('postrender', function() {
const call = Interaction.zoomByDelta.getCall(0);
expect(call.args[1]).to.be(-1);
expect(call.args[2]).to.eql([0, 0]);
done();
});
const event = new MapBrowserEvent('mousewheel', map, {
type: 'mousewheel',
wheelDeltaY: -120,
target: map.getViewport(),
preventDefault: Event.prototype.preventDefault
});
event.coordinate = [0, 0];
map.handleMapBrowserEvent(event);
});
const event = new MapBrowserEvent('mousewheel', map, {
type: 'mousewheel',
wheelDeltaY: -120,
target: map.getViewport(),
preventDefault: Event.prototype.preventDefault
});
event.coordinate = [0, 0];
map.handleMapBrowserEvent(event);
});
}
});

View File

@@ -4,7 +4,7 @@ import MapEvent from '../../../src/ol/MapEvent.js';
import Overlay from '../../../src/ol/Overlay.js';
import View from '../../../src/ol/View.js';
import LineString from '../../../src/ol/geom/LineString.js';
import _ol_has_ from '../../../src/ol/has.js';
import {TOUCH} from '../../../src/ol/has.js';
import {defaults as defaultInteractions} from '../../../src/ol/interaction.js';
import DoubleClickZoom from '../../../src/ol/interaction/DoubleClickZoom.js';
import Interaction from '../../../src/ol/interaction/Interaction.js';
@@ -38,7 +38,7 @@ describe('ol.Map', function() {
it('creates the viewport', function() {
const map = new Map({});
const viewport = map.getViewport();
const className = 'ol-viewport' + (_ol_has_.TOUCH ? ' ol-touch' : '');
const className = 'ol-viewport' + (TOUCH ? ' ol-touch' : '');
expect(viewport.className).to.be(className);
});

View File

@@ -1,7 +1,7 @@
import Map from '../../../src/ol/Map.js';
import MapBrowserEventHandler from '../../../src/ol/MapBrowserEventHandler.js';
import {listen} from '../../../src/ol/events.js';
import _ol_has_ from '../../../src/ol/has.js';
import {DEVICE_PIXEL_RATIO} from '../../../src/ol/has.js';
import PointerEvent from '../../../src/ol/pointer/PointerEvent.js';
describe('ol.MapBrowserEventHandler', function() {
@@ -139,32 +139,32 @@ describe('ol.MapBrowserEventHandler', function() {
it('is moving if distance is 2', function() {
const pointerdownAt2 = new PointerEvent('pointerdown', {}, {
clientX: _ol_has_.DEVICE_PIXEL_RATIO + 1,
clientY: _ol_has_.DEVICE_PIXEL_RATIO + 1
clientX: DEVICE_PIXEL_RATIO + 1,
clientY: DEVICE_PIXEL_RATIO + 1
});
expect(defaultHandler.isMoving_(pointerdownAt2)).to.be(true);
});
it('is moving with negative distance', function() {
const pointerdownAt2 = new PointerEvent('pointerdown', {}, {
clientX: -(_ol_has_.DEVICE_PIXEL_RATIO + 1),
clientY: -(_ol_has_.DEVICE_PIXEL_RATIO + 1)
clientX: -(DEVICE_PIXEL_RATIO + 1),
clientY: -(DEVICE_PIXEL_RATIO + 1)
});
expect(defaultHandler.isMoving_(pointerdownAt2)).to.be(true);
});
it('is not moving if distance is less than move tolerance', function() {
const pointerdownAt2 = new PointerEvent('pointerdown', {}, {
clientX: _ol_has_.DEVICE_PIXEL_RATIO + 1,
clientY: _ol_has_.DEVICE_PIXEL_RATIO + 1
clientX: DEVICE_PIXEL_RATIO + 1,
clientY: DEVICE_PIXEL_RATIO + 1
});
expect(moveToleranceHandler.isMoving_(pointerdownAt2)).to.be(false);
});
it('is moving if distance is greater than move tolerance', function() {
const pointerdownAt9 = new PointerEvent('pointerdown', {}, {
clientX: (_ol_has_.DEVICE_PIXEL_RATIO * 8) + 1,
clientY: (_ol_has_.DEVICE_PIXEL_RATIO * 8) + 1
clientX: (DEVICE_PIXEL_RATIO * 8) + 1,
clientY: (DEVICE_PIXEL_RATIO * 8) + 1
});
expect(moveToleranceHandler.isMoving_(pointerdownAt9)).to.be(true);
});

View File

@@ -1,8 +1,10 @@
import {listen} from '../../../../src/ol/events.js';
import EventTarget from '../../../../src/ol/events/EventTarget.js';
import _ol_has_ from '../../../../src/ol/has.js';
import PointerEventHandler from '../../../../src/ol/pointer/PointerEventHandler.js';
import TouchSource from '../../../../src/ol/pointer/TouchSource.js';
import MouseSource from '../../../../src/ol/pointer/MouseSource.js';
import MsSource from '../../../../src/ol/pointer/MsSource.js';
import NativeSource from '../../../../src/ol/pointer/NativeSource.js';
describe('ol.pointer.MouseSource', function() {
@@ -16,11 +18,31 @@ describe('ol.pointer.MouseSource', function() {
target = new EventTarget();
// make sure that a mouse and touch event source is used
_ol_has_.POINTER = false;
_ol_has_.MSPOINTER = false;
_ol_has_.TOUCH = true;
const POINTER = false;
const MSPOINTER = false;
const TOUCH = true;
const originalRegisterSources = PointerEventHandler.prototype.registerSources;
PointerEventHandler.prototype.registerSources = function() {
if (POINTER) {
this.registerSource('native', new NativeSource(this));
} else if (MSPOINTER) {
this.registerSource('ms', new MsSource(this));
} else {
const mouseSource = new MouseSource(this);
this.registerSource('mouse', mouseSource);
if (TOUCH) {
this.registerSource('touch', new TouchSource(this, mouseSource));
}
}
// register events on the viewport element
this.register_();
};
handler = new PointerEventHandler(target);
PointerEventHandler.prototype.registerSources = originalRegisterSources;
eventSpy = sinon.spy();
});

View File

@@ -1,9 +1,11 @@
import {listen} from '../../../../src/ol/events.js';
import EventTarget from '../../../../src/ol/events/EventTarget.js';
import _ol_has_ from '../../../../src/ol/has.js';
import MouseSource from '../../../../src/ol/pointer/MouseSource.js';
import PointerEvent from '../../../../src/ol/pointer/PointerEvent.js';
import PointerEventHandler from '../../../../src/ol/pointer/PointerEventHandler.js';
import TouchSource from '../../../../src/ol/pointer/TouchSource.js';
import MsSource from '../../../../src/ol/pointer/MsSource.js';
import NativeSource from '../../../../src/ol/pointer/NativeSource.js';
describe('ol.pointer.PointerEventHandler', function() {
@@ -15,10 +17,31 @@ describe('ol.pointer.PointerEventHandler', function() {
target = new EventTarget();
// make sure that a mouse event source is used
_ol_has_.POINTER = false;
_ol_has_.MSPOINTER = false;
const POINTER = false;
const MSPOINTER = false;
const TOUCH = false;
const originalRegisterSources = PointerEventHandler.prototype.registerSources;
PointerEventHandler.prototype.registerSources = function() {
if (POINTER) {
this.registerSource('native', new NativeSource(this));
} else if (MSPOINTER) {
this.registerSource('ms', new MsSource(this));
} else {
const mouseSource = new MouseSource(this);
this.registerSource('mouse', mouseSource);
if (TOUCH) {
this.registerSource('touch', new TouchSource(this, mouseSource));
}
}
// register events on the viewport element
this.register_();
};
handler = new PointerEventHandler(target);
PointerEventHandler.prototype.registerSources = originalRegisterSources;
eventSpy = sinon.spy();
});

View File

@@ -1,9 +1,12 @@
import {listen} from '../../../../src/ol/events.js';
import Event from '../../../../src/ol/events/Event.js';
import EventTarget from '../../../../src/ol/events/EventTarget.js';
import _ol_has_ from '../../../../src/ol/has.js';
import {assign} from '../../../../src/ol/obj.js';
import PointerEventHandler from '../../../../src/ol/pointer/PointerEventHandler.js';
import TouchSource from '../../../../src/ol/pointer/TouchSource.js';
import MouseSource from '../../../../src/ol/pointer/MouseSource.js';
import MsSource from '../../../../src/ol/pointer/MsSource.js';
import NativeSource from '../../../../src/ol/pointer/NativeSource.js';
describe('ol.pointer.TouchSource', function() {
let handler;
@@ -14,11 +17,31 @@ describe('ol.pointer.TouchSource', function() {
target = new EventTarget();
// make sure that a mouse and touch event source is used
_ol_has_.POINTER = false;
_ol_has_.MSPOINTER = false;
_ol_has_.TOUCH = true;
const POINTER = false;
const MSPOINTER = false;
const TOUCH = true;
const originalRegisterSources = PointerEventHandler.prototype.registerSources;
PointerEventHandler.prototype.registerSources = function() {
if (POINTER) {
this.registerSource('native', new NativeSource(this));
} else if (MSPOINTER) {
this.registerSource('ms', new MsSource(this));
} else {
const mouseSource = new MouseSource(this);
this.registerSource('mouse', mouseSource);
if (TOUCH) {
this.registerSource('touch', new TouchSource(this, mouseSource));
}
}
// register events on the viewport element
this.register_();
};
handler = new PointerEventHandler(target);
PointerEventHandler.prototype.registerSources = originalRegisterSources;
eventSpy = sinon.spy();
});

View File

@@ -1,5 +1,5 @@
import {equals} from '../../../src/ol/array.js';
import _ol_has_ from '../../../src/ol/has.js';
import {DEVICE_PIXEL_RATIO} from '../../../src/ol/has.js';
import {toContext} from '../../../src/ol/render.js';
import CanvasImmediateRenderer from '../../../src/ol/render/canvas/Immediate.js';
import _ol_transform_ from '../../../src/ol/transform.js';
@@ -13,7 +13,7 @@ describe('ol.render', function() {
const canvas = document.createElement('canvas');
const render = toContext(canvas.getContext('2d'));
expect(render).to.be.a(CanvasImmediateRenderer);
expect(render.pixelRatio_).to.be(_ol_has_.DEVICE_PIXEL_RATIO);
expect(render.pixelRatio_).to.be(DEVICE_PIXEL_RATIO);
});
it('sets size and pixel ratio from options', function() {

View File

@@ -1,5 +1,5 @@
import {equals} from '../src/ol/array.js';
import _ol_has_ from '../src/ol/has.js';
import {WEBGL} from '../src/ol/has.js';
// avoid importing anything that results in an instanceof check
// since these extensions are global, instanceof checks fail with modules
@@ -377,7 +377,7 @@ import _ol_has_ from '../src/ol/has.js';
};
global.assertWebGL = function(map) {
if (!_ol_has_.WEBGL) {
if (!WEBGL) {
expect().fail('No WebGL support!');
}
};