Add prerender and postrender events for Image layer

This commit is contained in:
ahocevar
2018-12-02 16:59:41 +01:00
parent 3944f0e62b
commit 976863c376
3 changed files with 66 additions and 0 deletions

View File

@@ -1,5 +1,6 @@
import Map from '../../../../../src/ol/Map.js';
import View from '../../../../../src/ol/View.js';
import {get as getProj} from '../../../../../src/ol/proj.js';
import ImageLayer from '../../../../../src/ol/layer/Image.js';
import VectorImageLayer from '../../../../../src/ol/layer/VectorImage.js';
import Feature from '../../../../../src/ol/Feature.js';
@@ -66,6 +67,59 @@ describe('ol.renderer.canvas.ImageLayer', function() {
});
});
describe('Image rendering', function() {
let map, div, layer;
beforeEach(function(done) {
const projection = getProj('EPSG:3857');
layer = new ImageLayer({
source: new Static({
url: 'spec/ol/data/osm-0-0-0.png',
imageExtent: projection.getExtent(),
projection: projection
})
});
div = document.createElement('div');
div.style.width = div.style.height = '100px';
document.body.appendChild(div);
map = new Map({
target: div,
layers: [layer],
view: new View({
center: [0, 0],
zoom: 2
})
});
layer.getSource().on('imageloadend', function() {
done();
});
});
afterEach(function() {
map.setTarget(null);
document.body.removeChild(div);
map.dispose();
});
it('dispatches prerender and postrender events on the image layer', function(done) {
let prerender = 0;
let postrender = 0;
layer.on('prerender', function() {
++prerender;
});
layer.on('postrender', function() {
++postrender;
});
map.on('postrender', function() {
expect(prerender).to.be(1);
expect(postrender).to.be(1);
done();
});
});
});
describe('Vector image rendering', function() {
let map, div, layer;