diff --git a/tests/Control/PinchZoom.html b/tests/Control/PinchZoom.html index 1aa68f9c04..3fc5ba6851 100644 --- a/tests/Control/PinchZoom.html +++ b/tests/Control/PinchZoom.html @@ -45,8 +45,8 @@ }); var log = []; - control.applyTransform = function(transform) { - log.push(transform); + map.applyTransform = function(x, y, scale) { + log.push([x, y, scale]); } map.layerContainerOriginPx = { @@ -58,12 +58,12 @@ }; var cases = [ - {x: 100, y: 60, scale: 1, transform: "translate(0px, 10px) scale(1)"}, - {x: 150, y: 60, scale: 1, transform: "translate(50px, 10px) scale(1)"}, - {x: 150, y: 60, scale: 2, transform: "translate(-100px, -90px) scale(2)"}, - {x: 50, y: 20, scale: 2.5, transform: "translate(-275px, -180px) scale(2.5)"}, - {x: 150, y: 60, scale: 2, transform: "translate(-100px, -90px) scale(2)"}, - {x: 50, y: 20, scale: 0.25, transform: "translate(63px, 45px) scale(0.25)"} + {x: 100, y: 60, scale: 1, transform: [-50, -40, 1]}, + {x: 150, y: 60, scale: 1, transform: [0, -40, 1]}, + {x: 150, y: 60, scale: 2, transform: [-150, -140, 2]}, + {x: 50, y: 20, scale: 2.5, transform: [-325, -230, 2.5]}, + {x: 150, y: 60, scale: 2, transform: [-150, -140, 2]}, + {x: 50, y: 20, scale: 0.25, transform: [13, -5, 0.25]} ]; var len = cases.length; diff --git a/tests/Layer/Grid.html b/tests/Layer/Grid.html index 6e7d4181bf..c9cff3e57d 100644 --- a/tests/Layer/Grid.html +++ b/tests/Layer/Grid.html @@ -25,7 +25,7 @@ function test_constructor (t) { - t.plan( 8 ); + t.plan( 7 ); layer = new OpenLayers.Layer.Grid(name, url, params, null); t.ok( layer instanceof OpenLayers.Layer.Grid, "returns OpenLayers.Layer.Grid object" ); @@ -34,7 +34,6 @@ t.eq( layer.numLoadingTiles, 0, "numLoadingTiles starts at 0"); t.ok( layer.tileClass === OpenLayers.Tile.Image, "tileClass default is OpenLayers.Tile.Image"); t.eq( layer.className, 'olLayerGrid', "className default is olLayerGrid"); - t.eq( layer.removeBackBufferDelay, 2500, "removeBackBufferDelay default is 2500"); var obj = {}; var func = function() {}; @@ -1014,7 +1013,7 @@ } function test_applyBackBuffer(t) { - t.plan(12); + t.plan(9); var map = new OpenLayers.Map('map2'); var layer = new OpenLayers.Layer.WMS('', '', {}, { @@ -1071,24 +1070,6 @@ t.eq(layer.backBuffer.style.top, '295px', 'back buffer has correct top'); - // test #4 - // and a back buffer in the layer and do as if back buffer removal - // has been scheduled, and test that applyBackBuffer removes the - // back buffer and clears the timer - layer.createBackBuffer = function() { - return; - }; - backBuffer = document.createElement('div'); - layer.div.insertBefore(backBuffer, layer.div.firstChild); - layer.backBuffer = backBuffer; - layer.backBufferTimerId = 'fake'; - layer.applyBackBuffer(2); - t.ok(backBuffer.parentNode !== layer.div, - 'back buffer is not child node of layer div'); - t.eq(layer.backBuffer, null, - 'back buffer not set in layer'); - t.eq(layer.backBufferTimerId, null, - 'back buffer timer cleared'); map.destroy(); } @@ -1141,7 +1122,7 @@ } function test_removeBackBuffer(t) { - t.plan(4); + t.plan(3); var map = new OpenLayers.Map('map'); var layer = new OpenLayers.Layer.WMS('', '', {}, {isBaseLayer: true}); @@ -1153,17 +1134,12 @@ layer.div.appendChild(backBuffer); layer.backBufferResolution = 32; - // add a fake back buffer removal timer - layer.backBufferTimerId = 'fake'; - layer.removeBackBuffer(); t.eq(layer.backBuffer, null, 'backBuffer set to null in layer'); t.eq(layer.backBufferResolution, null, 'backBufferResolution set to null in layer'); t.ok(backBuffer.parentNode !== layer.div, 'back buffer removed from layer'); - t.eq(layer.backBufferTimerId, null, - 'backBufferTimerId set to null in layer'); map.destroy(); } @@ -1307,52 +1283,6 @@ OpenLayers.Tile.Image.prototype.createBackBuffer = origCreateBackBuffer } - function test_delayed_back_buffer_removal(t) { - // - // Test that the delaying of the back buffer removal behaves - // as expected. - // - - t.plan(5); - - // set up - - var map = new OpenLayers.Map('map', { - resolutions: [32, 16, 8, 4, 2, 1] - }); - var layer = new OpenLayers.Layer.WMS('', '', {}, { - isBaseLayer: true, - transitionEffect: 'resize' - }); - map.addLayer(layer); - map.setCenter(new OpenLayers.LonLat(0, 0), 0); - - map.zoomTo(1); - - // Mark one tile loaded, to see if back buffer removal gets scheduled. - layer.grid[1][1].onImageLoad(); - - t.ok(layer.backBuffer.parentNode === layer.div, - '[a] back buffer is a child of layer div'); - t.ok(layer.backBufferTimerId !== null, - '[a] back buffer scheduled for removal'); - - var backBuffer = layer.backBuffer; - - map.zoomTo(2); - - t.ok(layer.backBuffer !== backBuffer, - '[b] a new back buffer was created'); - t.ok(layer.backBuffer.parentNode === layer.div, - '[b] back buffer is a child of layer div'); - t.ok(layer.backBufferTimerId === null, - '[b] back buffer no longer scheduled for removal'); - - // tear down - - map.destroy(); - } - function test_getGridData(t) { t.plan(12); diff --git a/tests/Map.html b/tests/Map.html index b072585a2b..e57020b065 100644 --- a/tests/Map.html +++ b/tests/Map.html @@ -928,8 +928,13 @@ map.setBaseLayer(tmsLayer); map.zoomIn(); map.pan(0, -200, {animate:false}); + var log = []; + map.applyTransform = function(x, y, scale) { + log.push([x || map.layerContainerOriginPx.x, y || map.layerContainerOriginPx.y, scale]); + OpenLayers.Map.prototype.applyTransform.apply(this, arguments); + }; map.setBaseLayer(wmsLayer); - t.eq(map.layerContainerDiv.style.top, "0px", "layerContainer is recentered after setBaseLayer"); + t.eq(log[0][0], 0, "layerContainer is recentered after setBaseLayer"); map.destroy(); } @@ -1959,7 +1964,7 @@ } function test_moveByPx(t) { - t.plan(16); + t.plan(14); var moved; var Layer = OpenLayers.Class(OpenLayers.Layer, { @@ -1979,14 +1984,19 @@ {isBaseLayer: false, minResolution:2}) ] }); + var log = []; + map.applyTransform = function(x, y, scale) { + log.push([x || map.layerContainerOriginPx.x, y || map.layerContainerOriginPx.y, scale]); + OpenLayers.Map.prototype.applyTransform.apply(this, arguments); + } moved = {}; map.zoomToExtent(new OpenLayers.Bounds(-1, -1, 1, 1)); // check initial state - t.eq(map.layerContainerDiv.style.left, '0px', + t.eq(log[0][0], 0, '[initial state] layer container left correct'); - t.eq(map.layerContainerDiv.style.top, '0px', + t.eq(log[0][1], 0, '[initial state] layer container top correct'); t.eq(moved['base'], undefined, '[initial state] base layer not moved'); @@ -1996,9 +2006,9 @@ // move to a valid position moved = {}; map.moveByPx(-455, 455); - t.eq(map.layerContainerDiv.style.left, '455px', + t.eq(log[1][0], 455, '[valid position] layer container left correct'); - t.eq(map.layerContainerDiv.style.top, '-455px', + t.eq(log[1][1], -455, '[valid position] layer container top correct'); t.eq(moved['base'], true, '[valid position] base layer moved'); @@ -2008,10 +2018,8 @@ // move outside the max extent moved = {}; map.moveByPx(-4500, 4500); - t.eq(map.layerContainerDiv.style.left, '455px', - '[outside max extent] layer container left correct'); - t.eq(map.layerContainerDiv.style.top, '-455px', - '[outside max extent] layer container top correct'); + t.eq(log.length, 2, + '[outside max extent] layer container offset unchanged'); t.eq(moved['base'], undefined, '[outside max extent] base layer not moved'); t.eq(moved['outofrange'], undefined, @@ -2020,10 +2028,8 @@ // move outside the restricted extent moved = {}; map.moveByPx(-500, 500); - t.eq(map.layerContainerDiv.style.left, '455px', - '[outside restricted extent] layer container left correct'); - t.eq(map.layerContainerDiv.style.top, '-455px', - '[outside restricted extent] layer container top correct'); + t.eq(log.length, 2, + '[outside restricted extent] layer container offset unchanged'); t.eq(moved['base'], undefined, '[outside restricted extent] base layer not moved'); t.eq(moved['outofrange'], undefined, @@ -2047,9 +2053,45 @@ map.zoomToExtent(new OpenLayers.Bounds(-11.25, 0, 11.25, 11.25)); + var log = []; + map.applyTransform = function(x, y, scale) { + log.push([x || map.layerContainerOriginPx.x, y || map.layerContainerOriginPx.y, scale]); + OpenLayers.Map.prototype.applyTransform.apply(this, arguments); + } + map.moveByPx(-10, -10); - t.eq(map.layerContainerDiv.style.left, '10px', 'layer container left correct'); - t.eq(map.layerContainerDiv.style.top, '0px', 'layer container top correct'); + t.eq(log[0][0], 10, 'layer container left correct'); + t.eq(log[0][1], 0, 'layer container top correct'); + } + + function test_applyTransform(t) { + t.plan(4); + + var map = new OpenLayers.Map('map'); + map.layerContainerDiv = {style: {}}; + delete map.applyTransform.transform; + delete map.applyTransform.template; + var origStylePrefix = OpenLayers.Util.vendorPrefix.style; + OpenLayers.Util.vendorPrefix.style = function(key) { return 'transform'; }; + map.applyTransform(1, 2, 3); + OpenLayers.Util.vendorPrefix.style = origStylePrefix; + t.eq(map.layerContainerDiv.style.transform, 'translate3d(1px,2px,0) scale3d(3,3,1)', '3d transform and scale used when available'); + + delete map.applyTransform.template; + var origIndexOf = String.prototype.indexOf; + String.prototype.indexOf = function() { return -1; }; + map.applyTransform(1, 2, 3); + String.prototype.indexOf = origIndexOf; + t.eq(map.layerContainerDiv.style.transform, 'translate(1px,2px) scale(3,3)', '2d translate and scale correct'); + + map.applyTransform.transform = null; + map.applyTransform(4, 5, 6); + t.eq(map.layerContainerDiv.style.left, '4px', 'style.left set when transform not available') + t.eq(map.layerContainerDiv.style.top, '5px', 'style.top set when transform not available') + + map.destroy(); + delete map.applyTransform.transform; + delete map.applyTransform.template; } function test_options(t) {