Merge pull request #4475 from bartvde/ie-test-failures

Fix up failing tests in Internet Explorer
This commit is contained in:
Bart van den Eijnden
2015-11-24 14:53:24 +01:00
12 changed files with 5617 additions and 344 deletions

File diff suppressed because one or more lines are too long

View File

@@ -291,7 +291,7 @@ describe('ol.format.EsriJSON', function() {
it('parses ksfields.geojson', function(done) {
afterLoadText('spec/ol/format/esrijson/ksfields.json', function(text) {
var result = format.readFeatures(text);
expect(result.length).to.be(306);
expect(result.length).to.be(9);
var first = result[0];
expect(first).to.be.a(ol.Feature);
@@ -304,15 +304,15 @@ describe('ol.format.EsriJSON', function() {
-10579560.16462974, 4716567.373073828]))
.to.be(true);
var last = result[305];
var last = result[8];
expect(last).to.be.a(ol.Feature);
expect(last.get('field_name')).to.be('PAOLA-RANTOUL');
expect(last.getId()).to.be(223);
expect(last.get('field_name')).to.be('FEAGINS');
expect(last.getId()).to.be(6030);
var lastGeom = last.getGeometry();
expect(lastGeom).to.be.a(ol.geom.Polygon);
expect(ol.extent.equals(lastGeom.getExtent(),
[-10596945.530910717, 4634530.860533288,
-10538217.991305258, 4691558.678837225]))
[-10555714.026858449, 4576511.565880965,
-10553671.199322715, 4578554.9934867555]))
.to.be(true);
done();
});

View File

@@ -567,10 +567,10 @@ describe('ol.format.GPX', function() {
[[[0, 0], [2, 2], [4, 0], [0, 0]]]);
var feature = new ol.Feature(polygon);
var features = [feature];
var gpx = format.writeFeatures(features);
var gpx = format.writeFeaturesNode(features);
var expected =
'<gpx xmlns="http://www.topografix.com/GPX/1/1"/>';
expect(gpx).to.be(expected);
expect(gpx).to.xmleql(ol.xml.parse(expected));
});
});

View File

@@ -1,75 +1,75 @@
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 xhr = new XMLHttpRequest();
xhr.open('GET', 'spec/ol/data/14-8938-5680.vector.pbf');
xhr.responseType = 'arraybuffer';
xhr.onload = function() {
data = xhr.response;
done();
};
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 data;
beforeEach(function(done) {
var xhr = new XMLHttpRequest();
xhr.open('GET', 'spec/ol/data/14-8938-5680.vector.pbf');
xhr.responseType = 'arraybuffer';
xhr.onload = function() {
data = xhr.response;
done();
};
xhr.send();
});
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]);
describe('#readFeatures', function() {
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]);
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();
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.ext.pbf');

View File

@@ -17,284 +17,286 @@ function itNoPhantom() {
}
}
describe('ol.source.Raster', function() {
(typeof ImageData == 'function' ? describe : xdescribe)('ol.source.Raster',
function() {
var target, map, redSource, greenSource, blueSource;
var target, map, redSource, greenSource, blueSource;
beforeEach(function() {
target = document.createElement('div');
beforeEach(function() {
target = document.createElement('div');
var style = target.style;
style.position = 'absolute';
style.left = '-1000px';
style.top = '-1000px';
style.width = '2px';
style.height = '2px';
document.body.appendChild(target);
var style = target.style;
style.position = 'absolute';
style.left = '-1000px';
style.top = '-1000px';
style.width = '2px';
style.height = '2px';
document.body.appendChild(target);
var extent = [-1, -1, 1, 1];
var extent = [-1, -1, 1, 1];
redSource = new ol.source.ImageStatic({
url: red,
imageExtent: extent
});
redSource = new ol.source.ImageStatic({
url: red,
imageExtent: extent
});
greenSource = new ol.source.ImageStatic({
url: green,
imageExtent: extent
});
greenSource = new ol.source.ImageStatic({
url: green,
imageExtent: extent
});
blueSource = new ol.source.ImageStatic({
url: blue,
imageExtent: extent
});
blueSource = new ol.source.ImageStatic({
url: blue,
imageExtent: extent
});
raster = new ol.source.Raster({
threads: 0,
sources: [redSource, greenSource, blueSource],
operation: function(inputs) {
return inputs[0];
}
});
raster = new ol.source.Raster({
threads: 0,
sources: [redSource, greenSource, blueSource],
operation: function(inputs) {
return inputs[0];
}
});
map = new ol.Map({
target: target,
view: new ol.View({
resolutions: [1],
projection: new ol.proj.Projection({
code: 'image',
units: 'pixels',
extent: extent
})
}),
layers: [
new ol.layer.Image({
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];
}
map = new ol.Map({
target: target,
view: new ol.View({
resolutions: [1],
projection: new ol.proj.Projection({
code: 'image',
units: 'pixels',
extent: extent
})
}),
layers: [
new ol.layer.Image({
source: raster
})
]
});
});
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();
afterEach(function() {
goog.dispose(map);
document.body.removeChild(target);
});
map.getLayers().item(0).setSource(raster);
var view = map.getView();
view.setCenter([0, 0]);
view.setZoom(0);
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('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() {
expect(log.length).to.equal(1);
var inputs = log[0];
expect(inputs[0]).to.be.an(ImageData);
done();
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) {
return inputs[0];
});
} else {
done();
}
});
});
});
map.getLayers().item(0).setSource(raster);
var view = map.getView();
view.setCenter([0, 0]);
view.setZoom(0);
describe('beforeoperations', function() {
});
itNoPhantom('gets called before operations are run', function(done) {
});
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) {
var count = 0;
raster.setOperation(function(inputs) {
++count;
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.View');
goog.require('ol.layer.Image');

View File

@@ -22,9 +22,11 @@ describe('ol.source.TileArcGISRest', function() {
expect(uri.getDomain()).to.be('example.com');
expect(uri.getPath()).to.be('/MapServer/export');
var queryData = uri.getQueryData();
expect(queryData.get('BBOX')).to.be(
'-10018754.171394622,-15028131.257091936,' +
'-5009377.085697311,-10018754.171394624');
var bbox = queryData.get('BBOX').split(',').map(parseFloat);
expect(bbox[0]).roughlyEqual(-10018754.171394622, 1e-9);
expect(bbox[1]).roughlyEqual(-15028131.257091936, 1e-9);
expect(bbox[2]).roughlyEqual(-5009377.085697311, 1e-9);
expect(bbox[3]).roughlyEqual(-10018754.171394624, 1e-9);
expect(queryData.get('FORMAT')).to.be('PNG32');
expect(queryData.get('SIZE')).to.be('256,256');
expect(queryData.get('IMAGESR')).to.be('3857');
@@ -54,9 +56,11 @@ describe('ol.source.TileArcGISRest', function() {
expect(uri.getDomain()).to.match(/test[12]\.com/);
expect(uri.getPath()).to.be('/MapServer/export');
var queryData = uri.getQueryData();
expect(queryData.get('BBOX')).to.be(
'-10018754.171394622,-15028131.257091936,' +
'-5009377.085697311,-10018754.171394624');
var bbox = queryData.get('BBOX').split(',').map(parseFloat);
expect(bbox[0]).roughlyEqual(-10018754.171394622, 1e-9);
expect(bbox[1]).roughlyEqual(-15028131.257091936, 1e-9);
expect(bbox[2]).roughlyEqual(-5009377.085697311, 1e-9);
expect(bbox[3]).roughlyEqual(-10018754.171394624, 1e-9);
expect(queryData.get('FORMAT')).to.be('PNG32');
expect(queryData.get('SIZE')).to.be('256,256');
expect(queryData.get('IMAGESR')).to.be('3857');
@@ -75,9 +79,11 @@ describe('ol.source.TileArcGISRest', function() {
expect(uri.getDomain()).to.be('example.com');
expect(uri.getPath()).to.be('/ImageServer/exportImage');
var queryData = uri.getQueryData();
expect(queryData.get('BBOX')).to.be(
'-10018754.171394622,-15028131.257091936,' +
'-5009377.085697311,-10018754.171394624');
var bbox = queryData.get('BBOX').split(',').map(parseFloat);
expect(bbox[0]).roughlyEqual(-10018754.171394622, 1e-9);
expect(bbox[1]).roughlyEqual(-15028131.257091936, 1e-9);
expect(bbox[2]).roughlyEqual(-5009377.085697311, 1e-9);
expect(bbox[3]).roughlyEqual(-10018754.171394624, 1e-9);
expect(queryData.get('FORMAT')).to.be('PNG32');
expect(queryData.get('SIZE')).to.be('256,256');
expect(queryData.get('IMAGESR')).to.be('3857');

View File

@@ -34,9 +34,11 @@ describe('ol.source.TileWMS', function() {
expect(uri.getDomain()).to.be('example.com');
expect(uri.getPath()).to.be('/wms');
var queryData = uri.getQueryData();
expect(queryData.get('BBOX')).to.be(
'-10018754.171394622,-15028131.257091936,' +
'-5009377.085697311,-10018754.171394624');
var bbox = queryData.get('BBOX').split(',').map(parseFloat);
expect(bbox[0]).roughlyEqual(-10018754.171394622, 1e-9);
expect(bbox[1]).roughlyEqual(-15028131.257091936, 1e-9);
expect(bbox[2]).roughlyEqual(-5009377.085697311, 1e-9);
expect(bbox[3]).roughlyEqual(-10018754.171394624, 1e-9);
expect(queryData.get('CRS')).to.be('EPSG:3857');
expect(queryData.get('FORMAT')).to.be('image/png');
expect(queryData.get('HEIGHT')).to.be('256');
@@ -199,9 +201,11 @@ describe('ol.source.TileWMS', function() {
expect(uri.getDomain()).to.be('example.com');
expect(uri.getPath()).to.be('/wms');
var queryData = uri.getQueryData();
expect(queryData.get('BBOX')).to.be(
'-10018754.171394622,-15028131.257091936,' +
'-5009377.085697311,-10018754.171394624');
var bbox = queryData.get('BBOX').split(',').map(parseFloat);
expect(bbox[0]).roughlyEqual(-10018754.171394622, 1e-9);
expect(bbox[1]).roughlyEqual(-15028131.257091936, 1e-9);
expect(bbox[2]).roughlyEqual(-5009377.085697311, 1e-9);
expect(bbox[3]).roughlyEqual(-10018754.171394624, 1e-9);
expect(queryData.get('CRS')).to.be('EPSG:3857');
expect(queryData.get('FORMAT')).to.be('image/png');
expect(queryData.get('HEIGHT')).to.be('256');
@@ -231,9 +235,11 @@ describe('ol.source.TileWMS', function() {
expect(uri.getDomain()).to.be('example.com');
expect(uri.getPath()).to.be('/wms');
var queryData = uri.getQueryData();
expect(queryData.get('BBOX')).to.be(
'-10018754.171394622,-15028131.257091936,' +
'-5009377.085697311,-10018754.171394624');
var bbox = queryData.get('BBOX').split(',').map(parseFloat);
expect(bbox[0]).roughlyEqual(-10018754.171394622, 1e-9);
expect(bbox[1]).roughlyEqual(-15028131.257091936, 1e-9);
expect(bbox[2]).roughlyEqual(-5009377.085697311, 1e-9);
expect(bbox[3]).roughlyEqual(-10018754.171394624, 1e-9);
expect(queryData.get('CRS')).to.be('EPSG:3857');
expect(queryData.get('FORMAT')).to.be('image/png');
expect(queryData.get('HEIGHT')).to.be('256');