Test that data tiles can be loaded after error
This commit is contained in:
@@ -75,10 +75,9 @@ class DataTile extends Tile {
|
||||
* @api
|
||||
*/
|
||||
load() {
|
||||
if (this.state == TileState.ERROR) {
|
||||
this.state = TileState.IDLE;
|
||||
if (this.state !== TileState.IDLE && this.state !== TileState.ERROR) {
|
||||
return;
|
||||
}
|
||||
if (this.state == TileState.IDLE) {
|
||||
this.state = TileState.LOADING;
|
||||
this.changed();
|
||||
|
||||
@@ -95,7 +94,6 @@ class DataTile extends Tile {
|
||||
self.changed();
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default DataTile;
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import DataTile from '../../../../src/ol/DataTile.js';
|
||||
import TileState from '../../../../src/ol/TileState.js';
|
||||
import {listenOnce} from '../../../../src/ol/events.js';
|
||||
|
||||
describe('ol.DataTile', function () {
|
||||
describe('ol/DataTile', function () {
|
||||
/** @type {Promise<import('../../../../src/ol/DataTile.js').Data} */
|
||||
let loader;
|
||||
beforeEach(function () {
|
||||
@@ -42,10 +43,26 @@ describe('ol.DataTile', function () {
|
||||
expect(tile.getState()).to.be(TileState.IDLE);
|
||||
tile.load();
|
||||
expect(tile.getState()).to.be(TileState.LOADING);
|
||||
setTimeout(() => {
|
||||
listenOnce(tile, 'change', () => {
|
||||
expect(tile.getState()).to.be(TileState.LOADED);
|
||||
done();
|
||||
}, 16);
|
||||
});
|
||||
});
|
||||
|
||||
it('reloads tiles in an error state', function (done) {
|
||||
const tileCoord = [0, 0, 0];
|
||||
const tile = new DataTile({
|
||||
tileCoord: tileCoord,
|
||||
loader: loader,
|
||||
});
|
||||
tile.state = TileState.ERROR;
|
||||
|
||||
tile.load();
|
||||
expect(tile.getState()).to.be(TileState.LOADING);
|
||||
listenOnce(tile, 'change', () => {
|
||||
expect(tile.getState()).to.be(TileState.LOADED);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user