gecko/browser/base/content/test/tabview/browser_tabview_rtl.js

62 lines
1.7 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
let tabViewShownCount = 0;
// ----------
function test() {
waitForExplicitFinish();
// verify initial state
ok(!TabView.isVisible(), "Tab View starts hidden");
// use the Tab View button to launch it for the first time
window.addEventListener("tabviewshown", onTabViewLoadedAndShown("ltr"), false);
toggleTabView();
}
function toggleTabView() {
let tabViewCommand = document.getElementById("Browser:ToggleTabView");
tabViewCommand.doCommand();
}
// ----------
function onTabViewLoadedAndShown(dir) {
return function() {
window.removeEventListener("tabviewshown", arguments.callee, false);
ok(TabView.isVisible(), "Tab View is visible.");
let contentWindow = document.getElementById("tab-view").contentWindow;
let contentDocument = contentWindow.document;
is(contentDocument.documentElement.getAttribute("dir"), dir,
"The direction should be set to " + dir.toUpperCase());
// kick off the series
window.addEventListener("tabviewhidden", onTabViewHidden(dir), false);
TabView.toggle();
};
}
// ----------
function onTabViewHidden(dir) {
return function() {
window.removeEventListener("tabviewhidden", arguments.callee, false);
ok(!TabView.isVisible(), "Tab View is hidden.");
if (dir == "ltr") {
// Switch to RTL mode
Services.prefs.setCharPref("intl.uidirection.en-US", "rtl");
// use the Tab View button to launch it for the second time
window.addEventListener("tabviewshown", onTabViewLoadedAndShown("rtl"), false);
toggleTabView();
} else {
// Switch to LTR mode
Services.prefs.clearUserPref("intl.uidirection.en-US");
finish();
}
};
}