Add missing requires to tests

This commit is contained in:
Tim Schaub
2017-07-03 14:57:16 -06:00
parent 39cf0ee154
commit 46bcce464f
34 changed files with 141 additions and 102 deletions

View File

@@ -3,7 +3,6 @@
"mocha": true
},
"rules": {
"openlayers-internal/no-missing-requires": 0,
"openlayers-internal/valid-provide": 0
},
"globals": {

View File

@@ -11,24 +11,22 @@ goog.require('ol.style.Fill');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
function getContext() {
return document.createElement('canvas').getContext('2d');
}
describe('ol.render', function() {
var context;
beforeEach(function() {
context = document.createElement('canvas').getContext('2d');
});
describe('ol.render.toContext()', function() {
it('creates a vector context from a Canvas 2d context', function() {
var vectorContext = ol.render.toContext(context, {size: [100, 100]});
var vectorContext = ol.render.toContext(getContext(), {size: [100, 100]});
expect(vectorContext).to.be.a(ol.render.VectorContext);
expect(vectorContext).to.be.a(ol.render.canvas.Immediate);
});
it('can be used to render a point geometry', function(done) {
var context = getContext();
var vectorContext = ol.render.toContext(context, {size: [100, 100]});
var style = new ol.style.Style({
@@ -49,6 +47,7 @@ describe('ol.render', function() {
});
it('can be used to render a linestring geometry', function(done) {
var context = getContext();
var vectorContext = ol.render.toContext(context, {size: [100, 100]});
var style = new ol.style.Style({
@@ -69,6 +68,7 @@ describe('ol.render', function() {
});
it('respects lineCap for linestring', function(done) {
var context = getContext();
var vectorContext = ol.render.toContext(context, {size: [100, 100]});
var style = new ol.style.Style({
@@ -90,6 +90,7 @@ describe('ol.render', function() {
});
it('respects lineJoin for linestring', function(done) {
var context = getContext();
var vectorContext = ol.render.toContext(context, {size: [100, 100]});
var style = new ol.style.Style({
@@ -111,6 +112,7 @@ describe('ol.render', function() {
});
it('can be used to render a polygon geometry', function(done) {
var context = getContext();
var vectorContext = ol.render.toContext(context, {size: [100, 100]});
var style = new ol.style.Style({

View File

@@ -1,6 +1,7 @@
goog.provide('ol.test.color');
goog.require('ol.color');
goog.require('ol');
describe('ol.color', function() {
@@ -57,7 +58,8 @@ describe('ol.color', function() {
});
after(function() {
ol.color.fromStringInternal_.restore();
var spy = ol.color.fromStringInternal_;
spy.restore();
});
if (ol.ENABLE_NAMED_COLORS) {
@@ -119,11 +121,12 @@ describe('ol.color', function() {
});
it('caches parsed values', function() {
var count = ol.color.fromStringInternal_.callCount;
var spy = ol.color.fromStringInternal_;
var count = spy.callCount;
ol.color.fromString('aquamarine');
expect(ol.color.fromStringInternal_.callCount).to.be(count + 1);
expect(spy.callCount).to.be(count + 1);
ol.color.fromString('aquamarine');
expect(ol.color.fromStringInternal_.callCount).to.be(count + 1);
expect(spy.callCount).to.be(count + 1);
});
it('throws an error on invalid colors', function() {

View File

@@ -1,10 +1,12 @@
goog.provide('ol.test.control.Attribution');
goog.require('ol.Map');
goog.require('ol.Tile');
goog.require('ol.View');
goog.require('ol.control.Attribution');
goog.require('ol.layer.Tile');
goog.require('ol.source.Tile');
goog.require('ol.tilegrid');
describe('ol.control.Attribution', function() {

View File

@@ -2,7 +2,7 @@ goog.provide('ol.test.events');
goog.require('ol.events');
goog.require('ol.events.EventTarget');
goog.require('ol');
describe('ol.events', function() {
var add, remove, target;
@@ -53,7 +53,7 @@ describe('ol.events', function() {
var boundListener = ol.events.bindListener_(listenerObj);
expect(listenerObj.boundListener).to.equal(boundListener);
boundListener();
ol.events.unlistenByKey.restore();
unlistenSpy.restore();
});
});

View File

@@ -1,16 +1,17 @@
goog.provide('ol.test.format.GML');
goog.require('ol.Feature');
goog.require('ol.format.GML');
goog.require('ol.format.GML2');
goog.require('ol.geom.LineString');
goog.require('ol.geom.LinearRing');
goog.require('ol.geom.MultiPoint');
goog.require('ol.geom.MultiLineString');
goog.require('ol.geom.MultiPoint');
goog.require('ol.geom.MultiPolygon');
goog.require('ol.xml');
goog.require('ol.geom.Point');
goog.require('ol.geom.Polygon');
goog.require('ol.proj');
goog.require('ol.xml');
var readGeometry = function(format, text, opt_options) {
var doc = ol.xml.parse(text);

View File

@@ -1,7 +1,7 @@
goog.provide('ol.test.format.KML');
goog.require('ol.array');
goog.require('ol.Feature');
goog.require('ol.array');
goog.require('ol.format.GeoJSON');
goog.require('ol.format.KML');
goog.require('ol.geom.GeometryCollection');
@@ -12,12 +12,14 @@ goog.require('ol.geom.MultiPoint');
goog.require('ol.geom.MultiPolygon');
goog.require('ol.geom.Point');
goog.require('ol.geom.Polygon');
goog.require('ol.style.Circle');
goog.require('ol.style.Fill');
goog.require('ol.style.Icon');
goog.require('ol.proj');
goog.require('ol.proj.Projection');
goog.require('ol.proj.transforms');
goog.require('ol.style.Circle');
goog.require('ol.style.Fill');
goog.require('ol.style.Icon');
goog.require('ol.style.IconAnchorUnits');
goog.require('ol.style.IconOrigin');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
goog.require('ol.style.Text');

View File

@@ -4,6 +4,7 @@ goog.require('ol.Feature');
goog.require('ol.format.GML2');
goog.require('ol.format.WFS');
goog.require('ol.format.filter');
goog.require('ol.geom.LineString');
goog.require('ol.geom.MultiLineString');
goog.require('ol.geom.MultiPoint');
goog.require('ol.geom.MultiPolygon');

View File

@@ -4,7 +4,7 @@ goog.require('ol.Graticule');
goog.require('ol.Map');
goog.require('ol.proj');
goog.require('ol.style.Stroke');
goog.require('ol.style.Text');
describe('ol.Graticule', function() {
var graticule;

View File

@@ -4,6 +4,7 @@ goog.require('ol.Map');
goog.require('ol.MapBrowserPointerEvent');
goog.require('ol.View');
goog.require('ol.interaction.DragRotateAndZoom');
goog.require('ol.interaction.Interaction');
goog.require('ol.layer.Vector');
goog.require('ol.pointer.PointerEvent');
goog.require('ol.source.Vector');

View File

@@ -1,11 +1,12 @@
goog.provide('ol.test.interaction.Draw');
goog.require('ol.array');
goog.require('ol.events');
goog.require('ol.Feature');
goog.require('ol.Map');
goog.require('ol.MapBrowserPointerEvent');
goog.require('ol.View');
goog.require('ol.array');
goog.require('ol.events');
goog.require('ol.events.condition');
goog.require('ol.geom.Circle');
goog.require('ol.geom.LineString');
goog.require('ol.geom.MultiLineString');

View File

@@ -1,10 +1,10 @@
goog.provide('ol.test.interaction.Interaction');
goog.require('ol.events.EventTarget');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.events.EventTarget');
goog.require('ol.interaction.Interaction');
describe('ol.interaction.Interaction', function() {
describe('constructor', function() {

View File

@@ -1,12 +1,13 @@
goog.provide('ol.test.interaction.Modify');
goog.require('ol.events');
goog.require('ol.Collection');
goog.require('ol.Feature');
goog.require('ol.Map');
goog.require('ol.MapBrowserPointerEvent');
goog.require('ol.View');
goog.require('ol.events');
goog.require('ol.events.condition');
goog.require('ol.geom.Circle');
goog.require('ol.geom.LineString');
goog.require('ol.geom.Point');
goog.require('ol.geom.Polygon');

View File

@@ -9,10 +9,11 @@ goog.require('ol.interaction');
goog.require('ol.interaction.DoubleClickZoom');
goog.require('ol.interaction.Interaction');
goog.require('ol.interaction.MouseWheelZoom');
goog.require('ol.interaction.PinchZoom');
goog.require('ol.layer.Tile');
goog.require('ol.renderer.canvas.IntermediateCanvas');
goog.require('ol.source.XYZ');
describe('ol.Map', function() {
describe('constructor', function() {

View File

@@ -1,11 +1,11 @@
goog.provide('ol.test.MapBrowserEventHandler');
goog.require('ol.events');
goog.require('ol.Map');
goog.require('ol.MapBrowserEventHandler');
goog.require('ol.events');
goog.require('ol.has');
goog.require('ol.pointer.PointerEvent');
describe('ol.MapBrowserEventHandler', function() {
describe('#emulateClick_', function() {
var clock;

View File

@@ -24,13 +24,14 @@ describe('ol.proj.transforms.remove()', function() {
return input;
};
ol.proj.transforms.add(foo, bar, transform);
expect(ol.proj.transforms.cache_).not.to.be(undefined);
expect(ol.proj.transforms.cache_.foo).not.to.be(undefined);
expect(ol.proj.transforms.cache_.foo.bar).to.be(transform);
var cache = ol.proj.transforms.cache_;
expect(cache).not.to.be(undefined);
expect(cache.foo).not.to.be(undefined);
expect(cache.foo.bar).to.be(transform);
var removed = ol.proj.transforms.remove(foo, bar);
expect(removed).to.be(transform);
expect(ol.proj.transforms.cache_.foo).to.be(undefined);
expect(cache.foo).to.be(undefined);
});
});

View File

@@ -3,8 +3,9 @@ goog.provide('ol.test.render.webgl.CircleReplay');
goog.require('ol');
goog.require('ol.Feature');
goog.require('ol.geom.Circle');
goog.require('ol.render.webgl.circlereplay.defaultshader');
goog.require('ol.render.webgl.CircleReplay');
goog.require('ol.render.webgl.circlereplay.defaultshader');
goog.require('ol.render.webgl.circlereplay.defaultshader.Locations');
goog.require('ol.style.Fill');
goog.require('ol.style.Stroke');

View File

@@ -1,15 +1,17 @@
goog.provide('ol.test.render.webgl.Immediate');
goog.require('ol.geom.GeometryCollection');
goog.require('ol.Feature');
goog.require('ol.geom.Circle');
goog.require('ol.geom.Point');
goog.require('ol.geom.MultiPoint');
goog.require('ol.geom.GeometryCollection');
goog.require('ol.geom.LineString');
goog.require('ol.geom.MultiLineString');
goog.require('ol.geom.Polygon');
goog.require('ol.geom.MultiPoint');
goog.require('ol.geom.MultiPolygon');
goog.require('ol.render.webgl.ImageReplay');
goog.require('ol.geom.Point');
goog.require('ol.geom.Polygon');
goog.require('ol.render.webgl.CircleReplay');
goog.require('ol.render.webgl.ImageReplay');
goog.require('ol.render.webgl.Immediate');
goog.require('ol.render.webgl.LineStringReplay');
goog.require('ol.render.webgl.PolygonReplay');
goog.require('ol.style.Circle');

View File

@@ -4,8 +4,9 @@ goog.require('ol');
goog.require('ol.Feature');
goog.require('ol.geom.LineString');
goog.require('ol.geom.MultiLineString');
goog.require('ol.render.webgl.linestringreplay.defaultshader');
goog.require('ol.render.webgl.LineStringReplay');
goog.require('ol.render.webgl.linestringreplay.defaultshader');
goog.require('ol.render.webgl.linestringreplay.defaultshader.Locations');
goog.require('ol.style.Stroke');
describe('ol.render.webgl.LineStringReplay', function() {

View File

@@ -4,8 +4,9 @@ goog.require('ol');
goog.require('ol.Feature');
goog.require('ol.geom.MultiPolygon');
goog.require('ol.geom.Polygon');
goog.require('ol.render.webgl.polygonreplay.defaultshader');
goog.require('ol.render.webgl.PolygonReplay');
goog.require('ol.render.webgl.polygonreplay.defaultshader');
goog.require('ol.render.webgl.polygonreplay.defaultshader.Locations');
goog.require('ol.structs.LinkedList');
goog.require('ol.structs.RBush');
goog.require('ol.style.Fill');

View File

@@ -2,6 +2,7 @@ goog.provide('ol.test.render.webgl.TextureReplay');
goog.require('ol.render.webgl.TextureReplay');
goog.require('ol.render.webgl.texturereplay.defaultshader');
goog.require('ol.render.webgl.texturereplay.defaultshader.Locations');
describe('ol.render.webgl.TextureReplay', function() {
var replay;

View File

@@ -10,7 +10,8 @@ goog.require('ol.layer.Vector');
goog.require('ol.renderer.canvas.Layer');
goog.require('ol.renderer.canvas.Map');
goog.require('ol.source.Vector');
goog.require('ol.style.Icon');
goog.require('ol.style.Style');
describe('ol.renderer.canvas.Map', function() {

View File

@@ -1,6 +1,6 @@
goog.provide('ol.test.renderer.canvas.Replay');
goog.require('ol.transform');
goog.require('ol');
goog.require('ol.Feature');
goog.require('ol.geom.Polygon');
goog.require('ol.render.canvas.LineStringReplay');
@@ -11,6 +11,7 @@ goog.require('ol.renderer.vector');
goog.require('ol.style.Fill');
goog.require('ol.style.Stroke');
goog.require('ol.style.Style');
goog.require('ol.transform');
describe('ol.render.canvas.ReplayGroup', function() {

View File

@@ -2,12 +2,13 @@ goog.provide('ol.test.renderer.canvas.TileLayer');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.transform');
goog.require('ol.layer.Tile');
goog.require('ol.proj');
goog.require('ol.renderer.Map');
goog.require('ol.renderer.canvas.TileLayer');
goog.require('ol.source.TileWMS');
goog.require('ol.source.XYZ');
goog.require('ol.transform');
describe('ol.renderer.canvas.TileLayer', function() {

View File

@@ -3,6 +3,8 @@ goog.provide('ol.test.renderer.canvas.VectorTileLayer');
goog.require('ol');
goog.require('ol.Feature');
goog.require('ol.Map');
goog.require('ol.TileState');
goog.require('ol.VectorImageTile');
goog.require('ol.VectorTile');
goog.require('ol.View');
goog.require('ol.format.MVT');

View File

@@ -9,6 +9,48 @@ goog.require('ol.source.Source');
goog.require('ol.source.Tile');
goog.require('ol.tilegrid.TileGrid');
/**
* Tile source for tests that uses a EPSG:4326 based grid with 4 resolutions and
* 256x256 tiles.
*
* @constructor
* @extends {ol.source.Tile}
* @param {Object.<string, ol.TileState>} tileStates Lookup of tile key to
* tile state.
*/
ol.test.source.TileSource.Mock = function(tileStates) {
var tileGrid = new ol.tilegrid.TileGrid({
resolutions: [360 / 256, 180 / 256, 90 / 256, 45 / 256],
origin: [-180, -180],
tileSize: 256
});
ol.source.Tile.call(this, {
projection: ol.proj.get('EPSG:4326'),
tileGrid: tileGrid
});
for (var key in tileStates) {
this.tileCache.set(key, new ol.Tile(key.split('/'), tileStates[key]));
}
};
ol.inherits(ol.test.source.TileSource.Mock, ol.source.Tile);
/**
* @inheritDoc
*/
ol.test.source.TileSource.Mock.prototype.getTile = function(z, x, y) {
var key = this.getKeyZXY(z, x, y);
if (this.tileCache.containsKey(key)) {
return /** @type {!ol.Tile} */ (this.tileCache.get(key));
} else {
var tile = new ol.Tile(key, 0); // IDLE
this.tileCache.set(key, tile);
return tile;
}
};
describe('ol.source.Tile', function() {
@@ -79,7 +121,7 @@ describe('ol.source.Tile', function() {
});
it('does not call the callback if no tiles are loaded', function() {
var source = new ol.test.source.TileMock({});
var source = new ol.test.source.TileSource.Mock({});
var grid = source.getTileGrid();
var extent = [-180, -180, 180, 180];
var zoom = 3;
@@ -90,7 +132,7 @@ describe('ol.source.Tile', function() {
});
it('does not call getTile() if no tiles are loaded', function() {
var source = new ol.test.source.TileMock({});
var source = new ol.test.source.TileSource.Mock({});
sinon.spy(source, 'getTile');
var grid = source.getTileGrid();
var extent = [-180, -180, 180, 180];
@@ -104,7 +146,7 @@ describe('ol.source.Tile', function() {
it('calls callback for each loaded tile', function() {
var source = new ol.test.source.TileMock({
var source = new ol.test.source.TileSource.Mock({
'1/0/0': 2, // LOADED
'1/0/1': 2, // LOADED
'1/1/0': 1, // LOADING,
@@ -120,7 +162,7 @@ describe('ol.source.Tile', function() {
it('returns true if range is fully loaded', function() {
// a source with no loaded tiles
var source = new ol.test.source.TileMock({
var source = new ol.test.source.TileSource.Mock({
'1/0/0': 2, // LOADED,
'1/0/1': 2, // LOADED,
'1/1/0': 2, // LOADED,
@@ -140,7 +182,7 @@ describe('ol.source.Tile', function() {
it('returns false if range is not fully loaded', function() {
// a source with no loaded tiles
var source = new ol.test.source.TileMock({
var source = new ol.test.source.TileSource.Mock({
'1/0/0': 2, // LOADED,
'1/0/1': 2, // LOADED,
'1/1/0': 1, // LOADING,
@@ -160,7 +202,7 @@ describe('ol.source.Tile', function() {
it('allows callback to override loaded check', function() {
// a source with no loaded tiles
var source = new ol.test.source.TileMock({
var source = new ol.test.source.TileSource.Mock({
'1/0/0': 2, // LOADED,
'1/0/1': 2, // LOADED,
'1/1/0': 2, // LOADED,
@@ -232,7 +274,7 @@ describe('ol.source.Tile', function() {
describe('#refresh()', function() {
it('checks clearing of internal state', function() {
// create a source with one loaded tile
var source = new ol.test.source.TileMock({
var source = new ol.test.source.TileSource.Mock({
'1/0/0': 2 // LOADED
});
// check the loaded tile is there
@@ -250,63 +292,19 @@ describe('ol.source.Tile', function() {
});
/**
* Tile source for tests that uses a EPSG:4326 based grid with 4 resolutions and
* 256x256 tiles.
*
* @constructor
* @extends {ol.source.Tile}
* @param {Object.<string, ol.TileState>} tileStates Lookup of tile key to
* tile state.
*/
ol.test.source.TileMock = function(tileStates) {
var tileGrid = new ol.tilegrid.TileGrid({
resolutions: [360 / 256, 180 / 256, 90 / 256, 45 / 256],
origin: [-180, -180],
tileSize: 256
});
ol.source.Tile.call(this, {
projection: ol.proj.get('EPSG:4326'),
tileGrid: tileGrid
});
for (var key in tileStates) {
this.tileCache.set(key, new ol.Tile(key.split('/'), tileStates[key]));
}
};
ol.inherits(ol.test.source.TileMock, ol.source.Tile);
/**
* @inheritDoc
*/
ol.test.source.TileMock.prototype.getTile = function(z, x, y) {
var key = this.getKeyZXY(z, x, y);
if (this.tileCache.containsKey(key)) {
return /** @type {!ol.Tile} */ (this.tileCache.get(key));
} else {
var tile = new ol.Tile(key, 0); // IDLE
this.tileCache.set(key, tile);
return tile;
}
};
describe('ol.test.source.TileMock', function() {
describe('ol.test.source.TileSource.Mock', function() {
describe('constructor', function() {
it('creates a tile source', function() {
var source = new ol.test.source.TileMock({});
var source = new ol.test.source.TileSource.Mock({});
expect(source).to.be.a(ol.source.Tile);
expect(source).to.be.a(ol.test.source.TileMock);
expect(source).to.be.a(ol.test.source.TileSource.Mock);
});
});
describe('#getTile()', function() {
it('returns a tile with state based on constructor arg', function() {
var source = new ol.test.source.TileMock({
var source = new ol.test.source.TileSource.Mock({
'0/0/0': 2, // LOADED,
'1/0/0': 2 // LOADED
});

View File

@@ -1,6 +1,7 @@
goog.provide('ol.test.source.VectorTile');
goog.require('ol.VectorImageTile');
goog.require('ol.VectorTile');
goog.require('ol.format.MVT');
goog.require('ol.proj');
goog.require('ol.source.VectorTile');

View File

@@ -1,6 +1,7 @@
goog.provide('ol.test.style.Text');
goog.require('ol.style.Fill');
goog.require('ol.style.Stroke');
goog.require('ol.style.Text');

View File

@@ -1,5 +1,7 @@
goog.provide('ol.test.Tile');
goog.require('ol');
goog.require('ol.ImageTile');
goog.require('ol.TileState');
describe('ol.Tile', function() {

View File

@@ -3,6 +3,7 @@ goog.provide('ol.test.TileQueue');
goog.require('ol.ImageTile');
goog.require('ol.Tile');
goog.require('ol.TileQueue');
goog.require('ol.TileState');
goog.require('ol.source.Image');
goog.require('ol.structs.PriorityQueue');

View File

@@ -1,10 +1,12 @@
goog.provide('ol.test.VectorImageTile');
goog.require('ol.events');
goog.require('ol.TileState');
goog.require('ol.VectorImageTile');
goog.require('ol.VectorTile');
goog.require('ol.events');
goog.require('ol.format.GeoJSON');
goog.require('ol.proj');
goog.require('ol.tilegrid');
describe('ol.VectorImageTile', function() {

View File

@@ -1,11 +1,12 @@
goog.provide('ol.test.VectorTile');
goog.require('ol.events');
goog.require('ol.Feature');
goog.require('ol.VectorImageTile');
goog.require('ol.VectorTile');
goog.require('ol.Feature');
goog.require('ol.events');
goog.require('ol.format.TextFeature');
goog.require('ol.proj');
goog.require('ol.proj.Projection');
describe('ol.VectorTile', function() {

View File

@@ -1,9 +1,11 @@
goog.provide('ol.test.View');
goog.require('ol');
goog.require('ol.Map');
goog.require('ol.View');
goog.require('ol.ViewHint');
goog.require('ol.extent');
goog.require('ol.geom.Circle');
goog.require('ol.geom.LineString');
goog.require('ol.geom.Point');

View File

@@ -1,3 +1,8 @@
goog.require('ol.array');
goog.require('ol.has');
goog.require('ol.renderer.canvas.Map');
goog.require('ol.renderer.webgl.Map');
// FIXME remove afterLoadXml as it uses the wrong XML parser on IE9
// helper functions for async testing and other utility functions.