Skip tests for ol.format.MVT in IE9

This commit is contained in:
Bart van den Eijnden
2015-11-24 09:33:56 +01:00
parent 890b515e44
commit 46b7f80fef
2 changed files with 311 additions and 310 deletions
+63 -63
View File
@@ -1,75 +1,75 @@
goog.provide('ol.test.format.MVT'); goog.provide('ol.test.format.MVT');
(typeof ArrayBuffer == 'function' ? describe : xdescribe)('ol.format.MVT',
function() {
describe('ol.format.MVT', function() { var data;
beforeEach(function(done) {
var data; var xhr = new XMLHttpRequest();
beforeEach(function(done) { xhr.open('GET', 'spec/ol/data/14-8938-5680.vector.pbf');
var xhr = new XMLHttpRequest(); xhr.responseType = 'arraybuffer';
xhr.open('GET', 'spec/ol/data/14-8938-5680.vector.pbf'); xhr.onload = function() {
xhr.responseType = 'arraybuffer'; data = xhr.response;
xhr.onload = function() { done();
data = xhr.response; };
done(); xhr.send();
};
xhr.send();
});
describe('#readFeatures', function() {
it('uses ol.render.Feature as feature class by default', function() {
var format = new ol.format.MVT({layers: ['water']});
var features = format.readFeatures(data);
expect(features[0]).to.be.a(ol.render.Feature);
});
it('parses only specified layers', function() {
var format = new ol.format.MVT({layers: ['water']});
var features = format.readFeatures(data);
expect(features.length).to.be(10);
});
it('parses geometries correctly', function() {
var format = new ol.format.MVT({
featureClass: ol.Feature,
layers: ['poi_label']
}); });
var pbf = new ol.ext.pbf(data);
var tile = new ol.ext.vectortile.VectorTile(pbf);
var geometry, rawGeometry;
rawGeometry = tile.layers['poi_label'].feature(0).loadGeometry(); describe('#readFeatures', function() {
geometry = format.readFeatures(data)[0]
.getGeometry();
expect(geometry.getType()).to.be('Point');
expect(geometry.getCoordinates())
.to.eql([rawGeometry[0][0].x, rawGeometry[0][0].y]);
rawGeometry = tile.layers['water'].feature(0).loadGeometry(); it('uses ol.render.Feature as feature class by default', function() {
format.setLayers(['water']); var format = new ol.format.MVT({layers: ['water']});
geometry = format.readFeatures(data)[0] var features = format.readFeatures(data);
.getGeometry(); expect(features[0]).to.be.a(ol.render.Feature);
expect(geometry.getType()).to.be('Polygon'); });
expect(rawGeometry[0].length)
.to.equal(geometry.getCoordinates()[0].length); it('parses only specified layers', function() {
expect(geometry.getCoordinates()[0][0]) var format = new ol.format.MVT({layers: ['water']});
.to.eql([rawGeometry[0][0].x, rawGeometry[0][0].y]); var features = format.readFeatures(data);
expect(features.length).to.be(10);
});
it('parses geometries correctly', function() {
var format = new ol.format.MVT({
featureClass: ol.Feature,
layers: ['poi_label']
});
var pbf = new ol.ext.pbf(data);
var tile = new ol.ext.vectortile.VectorTile(pbf);
var geometry, rawGeometry;
rawGeometry = tile.layers['poi_label'].feature(0).loadGeometry();
geometry = format.readFeatures(data)[0]
.getGeometry();
expect(geometry.getType()).to.be('Point');
expect(geometry.getCoordinates())
.to.eql([rawGeometry[0][0].x, rawGeometry[0][0].y]);
rawGeometry = tile.layers['water'].feature(0).loadGeometry();
format.setLayers(['water']);
geometry = format.readFeatures(data)[0]
.getGeometry();
expect(geometry.getType()).to.be('Polygon');
expect(rawGeometry[0].length)
.to.equal(geometry.getCoordinates()[0].length);
expect(geometry.getCoordinates()[0][0])
.to.eql([rawGeometry[0][0].x, rawGeometry[0][0].y]);
rawGeometry = tile.layers['barrier_line'].feature(0).loadGeometry();
format.setLayers(['barrier_line']);
geometry = format.readFeatures(data)[0]
.getGeometry();
expect(geometry.getType()).to.be('MultiLineString');
expect(rawGeometry[1].length)
.to.equal(geometry.getCoordinates()[1].length);
expect(geometry.getCoordinates()[1][0])
.to.eql([rawGeometry[1][0].x, rawGeometry[1][0].y]);
});
});
rawGeometry = tile.layers['barrier_line'].feature(0).loadGeometry();
format.setLayers(['barrier_line']);
geometry = format.readFeatures(data)[0]
.getGeometry();
expect(geometry.getType()).to.be('MultiLineString');
expect(rawGeometry[1].length)
.to.equal(geometry.getCoordinates()[1].length);
expect(geometry.getCoordinates()[1][0])
.to.eql([rawGeometry[1][0].x, rawGeometry[1][0].y]);
}); });
});
});
goog.require('ol.Feature'); goog.require('ol.Feature');
goog.require('ol.ext.pbf'); goog.require('ol.ext.pbf');
+248 -247
View File
@@ -20,282 +20,283 @@ function itNoPhantom() {
(typeof ImageData == 'function' ? describe : xdescribe)('ol.source.Raster', (typeof ImageData == 'function' ? describe : xdescribe)('ol.source.Raster',
function() { function() {
var target, map, redSource, greenSource, blueSource; var target, map, redSource, greenSource, blueSource;
beforeEach(function() { beforeEach(function() {
target = document.createElement('div'); target = document.createElement('div');
var style = target.style; var style = target.style;
style.position = 'absolute'; style.position = 'absolute';
style.left = '-1000px'; style.left = '-1000px';
style.top = '-1000px'; style.top = '-1000px';
style.width = '2px'; style.width = '2px';
style.height = '2px'; style.height = '2px';
document.body.appendChild(target); document.body.appendChild(target);
var extent = [-1, -1, 1, 1]; var extent = [-1, -1, 1, 1];
redSource = new ol.source.ImageStatic({ redSource = new ol.source.ImageStatic({
url: red, url: red,
imageExtent: extent imageExtent: extent
}); });
greenSource = new ol.source.ImageStatic({ greenSource = new ol.source.ImageStatic({
url: green, url: green,
imageExtent: extent imageExtent: extent
}); });
blueSource = new ol.source.ImageStatic({ blueSource = new ol.source.ImageStatic({
url: blue, url: blue,
imageExtent: extent imageExtent: extent
}); });
raster = new ol.source.Raster({ raster = new ol.source.Raster({
threads: 0, threads: 0,
sources: [redSource, greenSource, blueSource], sources: [redSource, greenSource, blueSource],
operation: function(inputs) { operation: function(inputs) {
return inputs[0]; return inputs[0];
} }
}); });
map = new ol.Map({ map = new ol.Map({
target: target, target: target,
view: new ol.View({ view: new ol.View({
resolutions: [1], resolutions: [1],
projection: new ol.proj.Projection({ projection: new ol.proj.Projection({
code: 'image', code: 'image',
units: 'pixels', units: 'pixels',
extent: extent extent: extent
}) })
}), }),
layers: [ layers: [
new ol.layer.Image({ new ol.layer.Image({
source: raster source: raster
}) })
] ]
}); });
});
afterEach(function() {
goog.dispose(map);
document.body.removeChild(target);
});
describe('constructor', function() {
it('returns a tile source', function() {
var source = new ol.source.Raster({
threads: 0,
sources: [new ol.source.Tile({})]
});
expect(source).to.be.a(ol.source.Source);
expect(source).to.be.a(ol.source.Raster);
});
itNoPhantom('defaults to "pixel" operation', function(done) {
var log = [];
raster = new ol.source.Raster({
threads: 0,
sources: [redSource, greenSource, blueSource],
operation: function(inputs) {
log.push(inputs);
return inputs[0];
}
}); });
raster.on('afteroperations', function() { afterEach(function() {
expect(log.length).to.equal(4); goog.dispose(map);
var inputs = log[0]; document.body.removeChild(target);
var pixel = inputs[0];
expect(pixel).to.be.an('array');
done();
}); });
map.getLayers().item(0).setSource(raster); describe('constructor', function() {
var view = map.getView();
view.setCenter([0, 0]);
view.setZoom(0);
}); it('returns a tile source', function() {
var source = new ol.source.Raster({
threads: 0,
sources: [new ol.source.Tile({})]
});
expect(source).to.be.a(ol.source.Source);
expect(source).to.be.a(ol.source.Raster);
});
itNoPhantom('allows operation type to be set to "image"', function(done) { itNoPhantom('defaults to "pixel" operation', function(done) {
var log = []; var log = [];
raster = new ol.source.Raster({
threads: 0,
sources: [redSource, greenSource, blueSource],
operation: function(inputs) {
log.push(inputs);
return inputs[0];
}
});
raster.on('afteroperations', function() {
expect(log.length).to.equal(4);
var inputs = log[0];
var pixel = inputs[0];
expect(pixel).to.be.an('array');
done();
});
map.getLayers().item(0).setSource(raster);
var view = map.getView();
view.setCenter([0, 0]);
view.setZoom(0);
});
itNoPhantom('allows operation type to be set to "image"',
function(done) {
var log = [];
raster = new ol.source.Raster({
operationType: ol.raster.OperationType.IMAGE,
threads: 0,
sources: [redSource, greenSource, blueSource],
operation: function(inputs) {
log.push(inputs);
return inputs[0];
}
});
raster.on('afteroperations', function() {
expect(log.length).to.equal(1);
var inputs = log[0];
expect(inputs[0]).to.be.an(ImageData);
done();
});
map.getLayers().item(0).setSource(raster);
var view = map.getView();
view.setCenter([0, 0]);
view.setZoom(0);
});
raster = new ol.source.Raster({
operationType: ol.raster.OperationType.IMAGE,
threads: 0,
sources: [redSource, greenSource, blueSource],
operation: function(inputs) {
log.push(inputs);
return inputs[0];
}
}); });
raster.on('afteroperations', function() { describe('#setOperation()', function() {
expect(log.length).to.equal(1);
var inputs = log[0]; itNoPhantom('allows operation to be set', function(done) {
expect(inputs[0]).to.be.an(ImageData);
done(); var count = 0;
raster.setOperation(function(pixels) {
++count;
var redPixel = pixels[0];
var greenPixel = pixels[1];
var bluePixel = pixels[2];
expect(redPixel).to.eql([255, 0, 0, 255]);
expect(greenPixel).to.eql([0, 255, 0, 255]);
expect(bluePixel).to.eql([0, 0, 255, 255]);
return pixels[0];
});
var view = map.getView();
view.setCenter([0, 0]);
view.setZoom(0);
raster.on('afteroperations', function(event) {
expect(count).to.equal(4);
done();
});
});
itNoPhantom('updates and re-runs the operation', function(done) {
var view = map.getView();
view.setCenter([0, 0]);
view.setZoom(0);
var count = 0;
raster.on('afteroperations', function(event) {
++count;
if (count === 1) {
raster.setOperation(function(inputs) {
return inputs[0];
});
} else {
done();
}
});
});
}); });
map.getLayers().item(0).setSource(raster); describe('beforeoperations', function() {
var view = map.getView();
view.setCenter([0, 0]);
view.setZoom(0);
}); itNoPhantom('gets called before operations are run', function(done) {
}); var count = 0;
describe('#setOperation()', function() {
itNoPhantom('allows operation to be set', function(done) {
var count = 0;
raster.setOperation(function(pixels) {
++count;
var redPixel = pixels[0];
var greenPixel = pixels[1];
var bluePixel = pixels[2];
expect(redPixel).to.eql([255, 0, 0, 255]);
expect(greenPixel).to.eql([0, 255, 0, 255]);
expect(bluePixel).to.eql([0, 0, 255, 255]);
return pixels[0];
});
var view = map.getView();
view.setCenter([0, 0]);
view.setZoom(0);
raster.on('afteroperations', function(event) {
expect(count).to.equal(4);
done();
});
});
itNoPhantom('updates and re-runs the operation', function(done) {
var view = map.getView();
view.setCenter([0, 0]);
view.setZoom(0);
var count = 0;
raster.on('afteroperations', function(event) {
++count;
if (count === 1) {
raster.setOperation(function(inputs) { raster.setOperation(function(inputs) {
++count;
return inputs[0]; return inputs[0];
}); });
} else {
done(); raster.on('beforeoperations', function(event) {
} expect(count).to.equal(0);
expect(!!event).to.be(true);
expect(event.extent).to.be.an('array');
expect(event.resolution).to.be.a('number');
expect(event.data).to.be.an('object');
done();
});
var view = map.getView();
view.setCenter([0, 0]);
view.setZoom(0);
});
itNoPhantom('allows data to be set for the operation', function(done) {
raster.setOperation(function(inputs, data) {
++data.count;
return inputs[0];
});
raster.on('beforeoperations', function(event) {
event.data.count = 0;
});
raster.on('afteroperations', function(event) {
expect(event.data.count).to.equal(4);
done();
});
var view = map.getView();
view.setCenter([0, 0]);
view.setZoom(0);
});
});
describe('afteroperations', function() {
itNoPhantom('gets called after operations are run', function(done) {
var count = 0;
raster.setOperation(function(inputs) {
++count;
return inputs[0];
});
raster.on('afteroperations', function(event) {
expect(count).to.equal(4);
expect(!!event).to.be(true);
expect(event.extent).to.be.an('array');
expect(event.resolution).to.be.a('number');
expect(event.data).to.be.an('object');
done();
});
var view = map.getView();
view.setCenter([0, 0]);
view.setZoom(0);
});
itNoPhantom('receives data set by the operation', function(done) {
raster.setOperation(function(inputs, data) {
data.message = 'hello world';
return inputs[0];
});
raster.on('afteroperations', function(event) {
expect(event.data.message).to.equal('hello world');
done();
});
var view = map.getView();
view.setCenter([0, 0]);
view.setZoom(0);
});
}); });
}); });
});
describe('beforeoperations', function() {
itNoPhantom('gets called before operations are run', function(done) {
var count = 0;
raster.setOperation(function(inputs) {
++count;
return inputs[0];
});
raster.on('beforeoperations', function(event) {
expect(count).to.equal(0);
expect(!!event).to.be(true);
expect(event.extent).to.be.an('array');
expect(event.resolution).to.be.a('number');
expect(event.data).to.be.an('object');
done();
});
var view = map.getView();
view.setCenter([0, 0]);
view.setZoom(0);
});
itNoPhantom('allows data to be set for the operation', function(done) {
raster.setOperation(function(inputs, data) {
++data.count;
return inputs[0];
});
raster.on('beforeoperations', function(event) {
event.data.count = 0;
});
raster.on('afteroperations', function(event) {
expect(event.data.count).to.equal(4);
done();
});
var view = map.getView();
view.setCenter([0, 0]);
view.setZoom(0);
});
});
describe('afteroperations', function() {
itNoPhantom('gets called after operations are run', function(done) {
var count = 0;
raster.setOperation(function(inputs) {
++count;
return inputs[0];
});
raster.on('afteroperations', function(event) {
expect(count).to.equal(4);
expect(!!event).to.be(true);
expect(event.extent).to.be.an('array');
expect(event.resolution).to.be.a('number');
expect(event.data).to.be.an('object');
done();
});
var view = map.getView();
view.setCenter([0, 0]);
view.setZoom(0);
});
itNoPhantom('receives data set by the operation', function(done) {
raster.setOperation(function(inputs, data) {
data.message = 'hello world';
return inputs[0];
});
raster.on('afteroperations', function(event) {
expect(event.data.message).to.equal('hello world');
done();
});
var view = map.getView();
view.setCenter([0, 0]);
view.setZoom(0);
});
});
});
goog.require('ol.Map'); goog.require('ol.Map');
goog.require('ol.View'); goog.require('ol.View');
goog.require('ol.layer.Image'); goog.require('ol.layer.Image');