103 lines
3.1 KiB
JavaScript
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);
|
|
});
|
|
|
|
});
|
|
|
|
});
|