Skip to content
This repository has been archived by the owner on Mar 22, 2024. It is now read-only.

Commit

Permalink
Merge pull request openlayers#3493 from tsauerwein/image-static-load
Browse files Browse the repository at this point in the history
Add image loading events to ol.source.ImageStatic
  • Loading branch information
Tobias Sauerwein committed Apr 4, 2015
2 parents 5eb7e58 + 7c83581 commit 28a13e3
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/ol/source/imagestaticsource.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
goog.provide('ol.source.ImageStatic');

goog.require('goog.events');
goog.require('goog.events.EventType');
goog.require('ol.Image');
goog.require('ol.extent');
goog.require('ol.proj');
Expand Down Expand Up @@ -49,6 +50,8 @@ ol.source.ImageStatic = function(options) {
*/
this.image_ = new ol.Image(imageExtent, resolution, 1, attributions,
options.url, crossOrigin, imageLoadFunction);
goog.events.listen(this.image_, goog.events.EventType.CHANGE,
this.handleImageChange, false, this);

};
goog.inherits(ol.source.ImageStatic, ol.source.Image);
Expand Down
Binary file added test/spec/ol/source/images/12-655-1583.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
45 changes: 45 additions & 0 deletions test/spec/ol/source/imagestaticsource.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
goog.provide('ol.test.source.ImageStatic');

describe('ol.source.ImageStatic', function() {

var extent, pixelRatio, projection, resolution;
beforeEach(function() {
extent = [
-13637278.73946974, 4543799.13271362,
-13617443.330629736, 4553927.038961405];
pixelRatio = 1;
projection = ol.proj.get('EPSG:3857');
resolution = 38;
});

describe('#getImage', function() {

it('triggers image load events', function(done) {
var source = new ol.source.ImageStatic({
url: 'spec/ol/source/images/12-655-1583.png',
imageExtent: [
-13629027.891360067, 4539747.983913189,
-13619243.951739565, 4549531.923533691],
projection: projection,
imageSize: [256, 256]
});

var imageloadstart = sinon.spy();
var imageloaderror = sinon.spy();

source.on('imageloadstart', imageloadstart);
source.on('imageloaderror', imageloaderror);
source.on('imageloadend', function(event) {
expect(imageloadstart.callCount).to.be(1);
expect(imageloaderror.callCount).to.be(0);
done();
});

var image = source.getImage(extent, resolution, pixelRatio, projection);
image.load();
});
});
});

goog.require('ol.source.ImageStatic');
goog.require('ol.proj');

0 comments on commit 28a13e3

Please sign in to comment.