diff -r 000000000000 -r 6474c204b198 browser/devtools/tilt/test/browser_tilt_zoom.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browser/devtools/tilt/test/browser_tilt_zoom.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,91 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ +"use strict"; + +const ZOOM = 2; +const RESIZE = 50; +let tiltOpened = false; + +function test() { + if (!isTiltEnabled()) { + info("Skipping controller test because Tilt isn't enabled."); + return; + } + if (!isWebGLSupported()) { + info("Skipping controller test because WebGL isn't supported."); + return; + } + + waitForExplicitFinish(); + + createTab(function() { + TiltUtils.setDocumentZoom(window, ZOOM); + + createTilt({ + onTiltOpen: function(instance) + { + tiltOpened = true; + + ok(isApprox(instance.presenter._getPageZoom(), ZOOM), + "The Highlighter zoom doesn't have the expected results."); + + ok(isApprox(instance.presenter.transforms.zoom, ZOOM), + "The presenter transforms zoom wasn't initially set correctly."); + + let contentWindow = gBrowser.selectedBrowser.contentWindow; + let initialWidth = contentWindow.innerWidth; + let initialHeight = contentWindow.innerHeight; + + let renderer = instance.presenter._renderer; + let arcball = instance.controller.arcball; + + ok(isApprox(contentWindow.innerWidth * ZOOM, renderer.width, 1), + "The renderer width wasn't set correctly before the resize."); + ok(isApprox(contentWindow.innerHeight * ZOOM, renderer.height, 1), + "The renderer height wasn't set correctly before the resize."); + + ok(isApprox(contentWindow.innerWidth * ZOOM, arcball.width, 1), + "The arcball width wasn't set correctly before the resize."); + ok(isApprox(contentWindow.innerHeight * ZOOM, arcball.height, 1), + "The arcball height wasn't set correctly before the resize."); + + + window.resizeBy(-RESIZE * ZOOM, -RESIZE * ZOOM); + + executeSoon(function() { + ok(isApprox(contentWindow.innerWidth + RESIZE, initialWidth, 1), + "The content window width wasn't set correctly after the resize."); + ok(isApprox(contentWindow.innerHeight + RESIZE, initialHeight, 1), + "The content window height wasn't set correctly after the resize."); + + ok(isApprox(contentWindow.innerWidth * ZOOM, renderer.width, 1), + "The renderer width wasn't set correctly after the resize."); + ok(isApprox(contentWindow.innerHeight * ZOOM, renderer.height, 1), + "The renderer height wasn't set correctly after the resize."); + + ok(isApprox(contentWindow.innerWidth * ZOOM, arcball.width, 1), + "The arcball width wasn't set correctly after the resize."); + ok(isApprox(contentWindow.innerHeight * ZOOM, arcball.height, 1), + "The arcball height wasn't set correctly after the resize."); + + + window.resizeBy(RESIZE * ZOOM, RESIZE * ZOOM); + + + Services.obs.addObserver(cleanup, DESTROYED, false); + Tilt.destroy(Tilt.currentWindowId); + }); + } + }, false, function suddenDeath() + { + info("Tilt could not be initialized properly."); + cleanup(); + }); + }); +} + +function cleanup() { + if (tiltOpened) { Services.obs.removeObserver(cleanup, DESTROYED); } + gBrowser.removeCurrentTab(); + finish(); +}