From a598737ec5679f54809ee6f30e3292f5cb1cc7dc Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Wed, 27 Apr 2016 09:10:27 +0200 Subject: [PATCH] Add unit tests for ol.ImageTile --- test/spec/ol/data/osm-0-0-0.png | Bin 0 -> 5969 bytes test/spec/ol/imagetile.test.js | 65 ++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 test/spec/ol/data/osm-0-0-0.png create mode 100644 test/spec/ol/imagetile.test.js diff --git a/test/spec/ol/data/osm-0-0-0.png b/test/spec/ol/data/osm-0-0-0.png new file mode 100644 index 0000000000000000000000000000000000000000..885def1f00c183960e9aae00bff1c2d8b3bdeb02 GIT binary patch literal 5969 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 HgyH`O%CiPS literal 0 HcmV?d00001 diff --git a/test/spec/ol/imagetile.test.js b/test/spec/ol/imagetile.test.js new file mode 100644 index 0000000000..cb01bdb1a7 --- /dev/null +++ b/test/spec/ol/imagetile.test.js @@ -0,0 +1,65 @@ +goog.provide('ol.test.ImageTile'); + +describe('ol.ImageTile', function() { + + describe('#load()', function() { + + it('can load idle tile', function(done) { + var tileCoord = [0, 0, 0]; + var state = ol.TileState.IDLE; + var src = 'spec/ol/data/osm-0-0-0.png'; + var tileLoadFunction = ol.source.Image.defaultImageLoadFunction; + var tile = new ol.ImageTile(tileCoord, state, src, null, tileLoadFunction); + + var previousState = tile.getState() + + ol.events.listen(tile, ol.events.EventType.CHANGE, function(event) { + var state = tile.getState(); + if (previousState == ol.TileState.IDLE) { + expect(state).to.be(ol.TileState.LOADING); + } else if (previousState == ol.TileState.LOADING) { + expect(state).to.be(ol.TileState.LOADED); + done(); + } else { + expect().fail(); + } + previousState = state; + }); + + tile.load(); + }); + + it('can load error tile', function(done) { + var tileCoord = [0, 0, 0]; + var state = ol.TileState.ERROR; + var src = 'spec/ol/data/osm-0-0-0.png'; + var tileLoadFunction = ol.source.Image.defaultImageLoadFunction; + var tile = new ol.ImageTile(tileCoord, state, src, null, tileLoadFunction); + + var previousState = tile.getState() + + ol.events.listen(tile, ol.events.EventType.CHANGE, function(event) { + var state = tile.getState(); + if (previousState == ol.TileState.ERROR) { + expect(state).to.be(ol.TileState.LOADING); + } else if (previousState == ol.TileState.LOADING) { + expect(state).to.be(ol.TileState.LOADED); + done(); + } else { + expect().fail(); + } + previousState = state; + }); + + tile.load(); + }); + + }); + +}); + +goog.require('ol.events'); +goog.require('ol.events.EventType'); +goog.require('ol.source.Image'); +goog.require('ol.ImageTile'); +goog.require('ol.TileState');