mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-07 20:17:37 +00:00
92 lines
3.1 KiB
JavaScript
92 lines
3.1 KiB
JavaScript
/* 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();
|
|
}
|