Merge pull request #4894 from tschaub/raster-tests

Only run raster operations after image sources have loaded.
This commit is contained in:
Tim Schaub
2016-02-23 16:10:07 -07:00
3 changed files with 257 additions and 257 deletions
@@ -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_;
}; };
+3 -1
View File
@@ -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_) {
+22 -24
View File
@@ -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();
}); });