diff --git a/tests/Control/PinchZoom.html b/tests/Control/PinchZoom.html index 788642d3da..9fc4a189b6 100644 --- a/tests/Control/PinchZoom.html +++ b/tests/Control/PinchZoom.html @@ -79,6 +79,53 @@ } + function test_pinchMove_preservecenter(t) { + + var control = new OpenLayers.Control.PinchZoom({ + preserveCenter: true + }); + + var map = new OpenLayers.Map({ + div: "map", + controls: [control], + layers: [new OpenLayers.Layer('fake', {isBaseLayer: true})] + }); + map.zoomToMaxExtent(); + + centerPx = map.getPixelFromLonLat(map.getCenter()); + + control.pinchStart = function(evt, pinchData) { + t.eq(control.pinchOrigin, centerPx, "center preserved"); + t.eq(control.currentCenter, centerPx, "center preserved"); + } + + control.pinchStart(null); + + var log = []; + control.applyTransform = function(transform) { + log.push(transform); + } + control.pinchOrigin = map.getPixelFromLonLat(map.getCenter()); + + var cases = [ + {scale: 1, transform: "translate(0px, 0px) scale(1)"}, + {scale: 2, transform: "translate(-128px, -128px) scale(2)"}, + {scale: 2.5, transform: "translate(-192px, -192px) scale(2.5)"}, + {scale: 0.25, transform: "translate(96px, 96px) scale(0.25)"} + ]; + + var len = cases.length; + t.plan(2 + len*2); + + var c; + for (var i=0; i