Add tests for listenImage function, fix private variables initialization

This commit is contained in:
Frederic Junod
2019-05-16 16:42:37 +02:00
parent ee9a0bcd05
commit a0e6af425e
4 changed files with 52 additions and 6 deletions

View File

@@ -58,9 +58,9 @@ class ImageWrapper extends ImageBase {
/**
* @private
* @type {Array<import("./events.js").EventsKey>}
* @type {function():void}
*/
this.imageListenerKeys_ = null;
this.unlisten_ = null;
/**
* @protected

View File

@@ -46,9 +46,9 @@ class ImageTile extends Tile {
/**
* @private
* @type {Array<import("./events.js").EventsKey>}
* @type {function():void}
*/
this.imageListenerKeys_ = null;
this.unlisten_ = null;
/**
* @private

View File

@@ -53,9 +53,9 @@ class IconImage extends EventTarget {
/**
* @private
* @type {Array<import("../events.js").EventsKey>}
* @type {function():void}
*/
this.imageListenerKeys_ = null;
this.unlisten_ = null;
/**
* @private

View File

@@ -0,0 +1,46 @@
import {listenImage} from '../../../src/ol/Image.js';
describe('HTML Image loading', function() {
let handleLoad, handleError, img;
beforeEach(function() {
handleLoad = sinon.spy();
handleError = sinon.spy();
img = new Image();
});
it('handles load event', function(done) {
img.src = 'spec/ol/data/dot.png';
listenImage(img, handleLoad, handleError);
setTimeout(function() {
expect(handleLoad).to.be.called();
expect(handleError).not.to.be.called();
done();
}, 200);
});
it('handles error event', function(done) {
img.src = 'invalid.jpeg';
listenImage(img, handleLoad, handleError);
setTimeout(function() {
expect(handleLoad).not.to.be.called();
expect(handleError).to.be.called();
done();
}, 200);
});
it('handles cancelation', function(done) {
img.src = 'spec/ol/data/dot.png';
listenImage(img, handleLoad, handleError)();
setTimeout(function() {
expect(handleLoad).not.to.be.called();
expect(handleError).not.to.be.called();
done();
}, 200);
});
});