From 46b7f80fef58ced967dc6d871d48f03cf4501485 Mon Sep 17 00:00:00 2001 From: Bart van den Eijnden Date: Tue, 24 Nov 2015 09:33:56 +0100 Subject: [PATCH] Skip tests for ol.format.MVT in IE9 --- test/spec/ol/format/mvtformat.test.js | 126 +++--- test/spec/ol/source/rastersource.test.js | 495 ++++++++++++----------- 2 files changed, 311 insertions(+), 310 deletions(-) diff --git a/test/spec/ol/format/mvtformat.test.js b/test/spec/ol/format/mvtformat.test.js index 2e722746a8..4451445165 100644 --- a/test/spec/ol/format/mvtformat.test.js +++ b/test/spec/ol/format/mvtformat.test.js @@ -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'); diff --git a/test/spec/ol/source/rastersource.test.js b/test/spec/ol/source/rastersource.test.js index 0603958239..37633fde39 100644 --- a/test/spec/ol/source/rastersource.test.js +++ b/test/spec/ol/source/rastersource.test.js @@ -20,282 +20,283 @@ function itNoPhantom() { (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');