Merge pull request #4894 from tschaub/raster-tests
Only run raster operations after image sources have loaded.
This commit is contained in:
@@ -202,5 +202,5 @@ ol.renderer.canvas.ImageLayer.prototype.prepareFrame = function(frameState, laye
|
|||||||
this.updateLogos(frameState, imageSource);
|
this.updateLogos(frameState, imageSource);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return !!this.image_;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -343,7 +343,9 @@ ol.source.Raster.prototype.onWorkerComplete_ = function(frameState, callback, er
|
|||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ol.source.Raster.getImageData_ = function(renderer, frameState, layerState) {
|
ol.source.Raster.getImageData_ = function(renderer, frameState, layerState) {
|
||||||
renderer.prepareFrame(frameState, layerState);
|
if (!renderer.prepareFrame(frameState, layerState)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
var width = frameState.size[0];
|
var width = frameState.size[0];
|
||||||
var height = frameState.size[1];
|
var height = frameState.size[1];
|
||||||
if (!ol.source.Raster.context_) {
|
if (!ol.source.Raster.context_) {
|
||||||
|
|||||||
@@ -9,13 +9,7 @@ var green = 'data:image/gif;base64,R0lGODlhAQABAPAAAAD/AP///yH5BAAAAAAALAAAA' +
|
|||||||
var blue = 'data:image/gif;base64,R0lGODlhAQABAPAAAAAA/////yH5BAAAAAAALAAAAA' +
|
var blue = 'data:image/gif;base64,R0lGODlhAQABAPAAAAAA/////yH5BAAAAAAALAAAAA' +
|
||||||
'ABAAEAAAICRAEAOw==';
|
'ABAAEAAAICRAEAOw==';
|
||||||
|
|
||||||
function itNoPhantom() {
|
var itNoPhantom = window.checkForMocha ? xit : it;
|
||||||
if (window.checkForMocha) {
|
|
||||||
return xit.apply(this, arguments);
|
|
||||||
} else {
|
|
||||||
return it.apply(this, arguments);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var hasImageDataConstructor = true;
|
var hasImageDataConstructor = true;
|
||||||
try {
|
try {
|
||||||
@@ -24,8 +18,9 @@ try {
|
|||||||
hasImageDataConstructor = false;
|
hasImageDataConstructor = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
(hasImageDataConstructor ? describe : xdescribe)('ol.source.Raster',
|
var maybeDescribe = hasImageDataConstructor ? describe : xdescribe;
|
||||||
function() {
|
|
||||||
|
maybeDescribe('ol.source.Raster', function() {
|
||||||
|
|
||||||
var target, map, redSource, greenSource, blueSource, raster;
|
var target, map, redSource, greenSource, blueSource, raster;
|
||||||
|
|
||||||
@@ -84,7 +79,12 @@ try {
|
|||||||
});
|
});
|
||||||
|
|
||||||
afterEach(function() {
|
afterEach(function() {
|
||||||
goog.dispose(map);
|
map.setTarget(null);
|
||||||
|
map.dispose();
|
||||||
|
raster.dispose();
|
||||||
|
greenSource.dispose();
|
||||||
|
redSource.dispose();
|
||||||
|
blueSource.dispose();
|
||||||
document.body.removeChild(target);
|
document.body.removeChild(target);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -103,7 +103,7 @@ try {
|
|||||||
|
|
||||||
var log = [];
|
var log = [];
|
||||||
|
|
||||||
raster = new ol.source.Raster({
|
var source = new ol.source.Raster({
|
||||||
threads: 0,
|
threads: 0,
|
||||||
sources: [redSource, greenSource, blueSource],
|
sources: [redSource, greenSource, blueSource],
|
||||||
operation: function(inputs) {
|
operation: function(inputs) {
|
||||||
@@ -112,7 +112,7 @@ try {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
raster.on('afteroperations', function() {
|
source.once('afteroperations', function() {
|
||||||
expect(log.length).to.equal(4);
|
expect(log.length).to.equal(4);
|
||||||
var inputs = log[0];
|
var inputs = log[0];
|
||||||
var pixel = inputs[0];
|
var pixel = inputs[0];
|
||||||
@@ -120,19 +120,17 @@ try {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
map.getLayers().item(0).setSource(raster);
|
map.getLayers().item(0).setSource(source);
|
||||||
var view = map.getView();
|
var view = map.getView();
|
||||||
view.setCenter([0, 0]);
|
view.setCenter([0, 0]);
|
||||||
view.setZoom(0);
|
view.setZoom(0);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
itNoPhantom('allows operation type to be set to "image"',
|
itNoPhantom('allows operation type to be set to "image"', function(done) {
|
||||||
function(done) {
|
|
||||||
|
|
||||||
var log = [];
|
var log = [];
|
||||||
|
|
||||||
raster = new ol.source.Raster({
|
var source = new ol.source.Raster({
|
||||||
operationType: ol.raster.OperationType.IMAGE,
|
operationType: ol.raster.OperationType.IMAGE,
|
||||||
threads: 0,
|
threads: 0,
|
||||||
sources: [redSource, greenSource, blueSource],
|
sources: [redSource, greenSource, blueSource],
|
||||||
@@ -142,14 +140,14 @@ try {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
raster.on('afteroperations', function() {
|
source.once('afteroperations', function() {
|
||||||
expect(log.length).to.equal(1);
|
expect(log.length).to.equal(1);
|
||||||
var inputs = log[0];
|
var inputs = log[0];
|
||||||
expect(inputs[0]).to.be.an(ImageData);
|
expect(inputs[0]).to.be.an(ImageData);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
map.getLayers().item(0).setSource(raster);
|
map.getLayers().item(0).setSource(source);
|
||||||
var view = map.getView();
|
var view = map.getView();
|
||||||
view.setCenter([0, 0]);
|
view.setCenter([0, 0]);
|
||||||
view.setZoom(0);
|
view.setZoom(0);
|
||||||
@@ -178,7 +176,7 @@ try {
|
|||||||
view.setCenter([0, 0]);
|
view.setCenter([0, 0]);
|
||||||
view.setZoom(0);
|
view.setZoom(0);
|
||||||
|
|
||||||
raster.on('afteroperations', function(event) {
|
raster.once('afteroperations', function(event) {
|
||||||
expect(count).to.equal(4);
|
expect(count).to.equal(4);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
@@ -217,7 +215,7 @@ try {
|
|||||||
return inputs[0];
|
return inputs[0];
|
||||||
});
|
});
|
||||||
|
|
||||||
raster.on('beforeoperations', function(event) {
|
raster.once('beforeoperations', function(event) {
|
||||||
expect(count).to.equal(0);
|
expect(count).to.equal(0);
|
||||||
expect(!!event).to.be(true);
|
expect(!!event).to.be(true);
|
||||||
expect(event.extent).to.be.an('array');
|
expect(event.extent).to.be.an('array');
|
||||||
@@ -244,7 +242,7 @@ try {
|
|||||||
event.data.count = 0;
|
event.data.count = 0;
|
||||||
});
|
});
|
||||||
|
|
||||||
raster.on('afteroperations', function(event) {
|
raster.once('afteroperations', function(event) {
|
||||||
expect(event.data.count).to.equal(4);
|
expect(event.data.count).to.equal(4);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
@@ -267,7 +265,7 @@ try {
|
|||||||
return inputs[0];
|
return inputs[0];
|
||||||
});
|
});
|
||||||
|
|
||||||
raster.on('afteroperations', function(event) {
|
raster.once('afteroperations', function(event) {
|
||||||
expect(count).to.equal(4);
|
expect(count).to.equal(4);
|
||||||
expect(!!event).to.be(true);
|
expect(!!event).to.be(true);
|
||||||
expect(event.extent).to.be.an('array');
|
expect(event.extent).to.be.an('array');
|
||||||
@@ -289,7 +287,7 @@ try {
|
|||||||
return inputs[0];
|
return inputs[0];
|
||||||
});
|
});
|
||||||
|
|
||||||
raster.on('afteroperations', function(event) {
|
raster.once('afteroperations', function(event) {
|
||||||
expect(event.data.message).to.equal('hello world');
|
expect(event.data.message).to.equal('hello world');
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user