From 3cef9f2e004bbee9601066ad507ece335c2d472f Mon Sep 17 00:00:00 2001 From: ahocevar Date: Fri, 19 Jul 2019 17:09:24 +0200 Subject: [PATCH] Use Image.prototype.decode only when src is already set --- src/ol/Image.js | 2 +- test/spec/ol/image.test.js | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/ol/Image.js b/src/ol/Image.js index bf4601d6fb..f9d39dc8b3 100644 --- a/src/ol/Image.js +++ b/src/ol/Image.js @@ -159,7 +159,7 @@ class ImageWrapper extends ImageBase { export function listenImage(image, loadHandler, errorHandler) { const img = /** @type {HTMLImageElement} */ (image); - if (IMAGE_DECODE) { + if (img.src && IMAGE_DECODE) { const promise = img.decode(); let listening = true; const unlisten = function() { diff --git a/test/spec/ol/image.test.js b/test/spec/ol/image.test.js index 99798a0610..34a49159fa 100644 --- a/test/spec/ol/image.test.js +++ b/test/spec/ol/image.test.js @@ -21,6 +21,17 @@ describe('HTML Image loading', function() { }, 200); }); + it('handles load event when src is set later', function(done) { + listenImage(img, handleLoad, handleError); + img.src = 'spec/ol/data/dot.png'; + + 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);