mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
94 lines
2.6 KiB
JavaScript
94 lines
2.6 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
var prefsBranch = Cc["@mozilla.org/preferences-service;1"].
|
|
getService(Ci.nsIPrefService).
|
|
getBranch("browser.panorama.");
|
|
|
|
function animateZoom() prefsBranch.getBoolPref("animate_zoom");
|
|
|
|
let contentWindow = null;
|
|
|
|
registerCleanupFunction(function() {
|
|
// reset to default: true
|
|
prefsBranch.setBoolPref("animate_zoom", true);
|
|
});
|
|
|
|
function test() {
|
|
waitForExplicitFinish();
|
|
|
|
ok(!TabView.isVisible(), "Tab View is not visible");
|
|
|
|
window.addEventListener("tabviewshown", startTesting, false);
|
|
TabView.toggle();
|
|
}
|
|
|
|
function startTesting() {
|
|
window.removeEventListener("tabviewshown", startTesting, false);
|
|
|
|
contentWindow = document.getElementById("tab-view").contentWindow;
|
|
|
|
ok(TabView.isVisible(), "Tab View is visible");
|
|
|
|
ok(animateZoom(), "By default, we want to animate");
|
|
|
|
function finishOnHidden() {
|
|
contentWindow.removeEventListener("tabviewhidden", finishOnHidden, false);
|
|
ok(!TabView.isVisible(), "Tab View is not visible");
|
|
finish();
|
|
}
|
|
|
|
function wrapup() {
|
|
contentWindow.addEventListener("tabviewhidden", finishOnHidden, false);
|
|
TabView.hide();
|
|
}
|
|
|
|
function part2() {
|
|
prefsBranch.setBoolPref("animate_zoom", false);
|
|
ok(!animateZoom(), "animate_zoom = false");
|
|
zoomInAndOut(false, wrapup);
|
|
}
|
|
|
|
function part1() {
|
|
prefsBranch.setBoolPref("animate_zoom",true);
|
|
ok(animateZoom(), "animate_zoom = true");
|
|
zoomInAndOut(true, part2);
|
|
}
|
|
|
|
// start it up!
|
|
part1();
|
|
}
|
|
|
|
function zoomInAndOut(transitionsExpected, callback) {
|
|
let transitioned = 0;
|
|
|
|
contentWindow.document.addEventListener("transitionend", onTransitionEnd, false);
|
|
function onTransitionEnd(event) {
|
|
transitioned++;
|
|
}
|
|
|
|
let onHidden = function() {
|
|
contentWindow.removeEventListener("tabviewhidden", onHidden, false);
|
|
if (transitionsExpected)
|
|
ok(transitioned >= 0, "There can be transitions");
|
|
else
|
|
ok(!transitioned, "There should have been no transitions");
|
|
TabView.toggle();
|
|
};
|
|
|
|
let onShownAgain = function() {
|
|
contentWindow.removeEventListener("tabviewshown", onShownAgain, false);
|
|
if (transitionsExpected)
|
|
ok(transitioned >= 0, "There can be transitions");
|
|
else
|
|
ok(!transitioned, "There should have been no transitions");
|
|
callback();
|
|
};
|
|
|
|
contentWindow.addEventListener("tabviewhidden", onHidden, false);
|
|
contentWindow.addEventListener("tabviewshown", onShownAgain, false);
|
|
|
|
// get this party started by hiding tab view
|
|
TabView.toggle();
|
|
}
|