Files
openlayers/test/spec/ol/imagetile.test.js
2017-08-17 15:16:58 -04:00

103 lines
3.1 KiB
JavaScript

goog.require('ol.ImageTile');
goog.require('ol.TileState');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('ol.source.Image');
describe('ol.ImageTile', function() {
describe('#load()', function() {
it('can load idle tile', function(done) {
var tileCoord = [0, 0, 0];
var state = ol.TileState.IDLE;
var src = 'spec/ol/data/osm-0-0-0.png';
var tileLoadFunction = ol.source.Image.defaultImageLoadFunction;
var tile = new ol.ImageTile(tileCoord, state, src, null, tileLoadFunction);
var previousState = tile.getState();
ol.events.listen(tile, ol.events.EventType.CHANGE, function(event) {
var state = tile.getState();
if (previousState == ol.TileState.IDLE) {
expect(state).to.be(ol.TileState.LOADING);
} else if (previousState == ol.TileState.LOADING) {
expect(state).to.be(ol.TileState.LOADED);
done();
} else {
expect().fail();
}
previousState = state;
});
tile.load();
});
it('can load error tile', function(done) {
var tileCoord = [0, 0, 0];
var state = ol.TileState.ERROR;
var src = 'spec/ol/data/osm-0-0-0.png';
var tileLoadFunction = ol.source.Image.defaultImageLoadFunction;
var tile = new ol.ImageTile(tileCoord, state, src, null, tileLoadFunction);
var previousState = tile.getState();
ol.events.listen(tile, ol.events.EventType.CHANGE, function(event) {
var state = tile.getState();
if (previousState == ol.TileState.ERROR) {
expect(state).to.be(ol.TileState.LOADING);
} else if (previousState == ol.TileState.LOADING) {
expect(state).to.be(ol.TileState.LOADED);
done();
} else {
expect().fail();
}
previousState = state;
});
tile.load();
});
it('loads an empty image on error ', function(done) {
var tileCoord = [0, 0, 0];
var state = ol.TileState.IDLE;
var src = 'spec/ol/data/osm-0-0-99.png';
var tileLoadFunction = ol.source.Image.defaultImageLoadFunction;
var tile = new ol.ImageTile(tileCoord, state, src, null, tileLoadFunction);
ol.events.listen(tile, ol.events.EventType.CHANGE, function(event) {
var state = tile.getState();
if (state == ol.TileState.ERROR) {
expect(state).to.be(ol.TileState.ERROR);
expect(tile.image_.src).to.be(ol.ImageTile.blankImageUrl);
done();
}
});
tile.load();
});
});
describe('dispose', function() {
it('sets image src to a blank image data uri', function() {
var tileCoord = [0, 0, 0];
var state = ol.TileState.IDLE;
var src = 'spec/ol/data/osm-0-0-0.png';
var tileLoadFunction = ol.source.Image.defaultImageLoadFunction;
var tile = new ol.ImageTile(tileCoord, state, src, null, tileLoadFunction);
tile.load();
expect(tile.getState()).to.be(ol.TileState.LOADING);
tile.dispose();
expect(tile.getState()).to.be(ol.TileState.ABORT);
expect(tile.getImage().src).to.be(ol.ImageTile.blankImageUrl);
});
});
});