Merge pull request #5270 from fredj/load_error
Load erroneous image in ol.Image#load and ol.ImageTile#load
This commit is contained in:
@@ -122,10 +122,13 @@ ol.Image.prototype.handleImageLoad_ = function() {
|
||||
|
||||
|
||||
/**
|
||||
* Load not yet loaded URI.
|
||||
* Load the image or retry if loading previously failed.
|
||||
* Loading is taken care of by the tile queue, and calling this method is
|
||||
* only needed for preloading or for reloading in case of an error.
|
||||
* @api
|
||||
*/
|
||||
ol.Image.prototype.load = function() {
|
||||
if (this.state == ol.ImageState.IDLE) {
|
||||
if (this.state == ol.ImageState.IDLE || this.state == ol.ImageState.ERROR) {
|
||||
this.state = ol.ImageState.LOADING;
|
||||
this.changed();
|
||||
goog.asserts.assert(!this.imageListenerKeys_,
|
||||
|
||||
@@ -137,10 +137,13 @@ ol.ImageTile.prototype.handleImageLoad_ = function() {
|
||||
|
||||
|
||||
/**
|
||||
* Load not yet loaded URI.
|
||||
* Load the image or retry if loading previously failed.
|
||||
* Loading is taken care of by the tile queue, and calling this method is
|
||||
* only needed for preloading or for reloading in case of an error.
|
||||
* @api
|
||||
*/
|
||||
ol.ImageTile.prototype.load = function() {
|
||||
if (this.state == ol.TileState.IDLE) {
|
||||
if (this.state == ol.TileState.IDLE || this.state == ol.TileState.ERROR) {
|
||||
this.state = ol.TileState.LOADING;
|
||||
this.changed();
|
||||
goog.asserts.assert(!this.imageListenerKeys_,
|
||||
|
||||
@@ -107,6 +107,9 @@ ol.Tile.prototype.getState = function() {
|
||||
|
||||
|
||||
/**
|
||||
* FIXME empty description for jsdoc
|
||||
* Load the image or retry if loading previously failed.
|
||||
* Loading is taken care of by the tile queue, and calling this method is
|
||||
* only needed for preloading or for reloading in case of an error.
|
||||
* @api
|
||||
*/
|
||||
ol.Tile.prototype.load = goog.abstractMethod;
|
||||
|
||||
BIN
test/spec/ol/data/osm-0-0-0.png
Normal file
BIN
test/spec/ol/data/osm-0-0-0.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.8 KiB |
65
test/spec/ol/imagetile.test.js
Normal file
65
test/spec/ol/imagetile.test.js
Normal file
@@ -0,0 +1,65 @@
|
||||
goog.provide('ol.test.ImageTile');
|
||||
|
||||
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();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
goog.require('ol.events');
|
||||
goog.require('ol.events.EventType');
|
||||
goog.require('ol.source.Image');
|
||||
goog.require('ol.ImageTile');
|
||||
goog.require('ol.TileState');
|
||||
Reference in New Issue
Block a user