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) {