mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
161 lines
5.1 KiB
JavaScript
161 lines
5.1 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
let prefsBranch;
|
|
let currentActiveGroupItemId;
|
|
|
|
function test() {
|
|
waitForExplicitFinish();
|
|
|
|
// disable the first run pref
|
|
prefsBranch = Services.prefs.getBranch("browser.panorama.");
|
|
prefsBranch.setBoolPref("experienced_first_run", false);
|
|
|
|
let win =
|
|
window.openDialog(getBrowserURL(), "_blank", "all,dialog=no", "about:blank");
|
|
|
|
let onLoad = function() {
|
|
win.removeEventListener("load", onLoad, false);
|
|
|
|
let theObserver = function(subject, topic, data) {
|
|
Services.obs.removeObserver(
|
|
theObserver, "browser-delayed-startup-finished");
|
|
test1(win);
|
|
}
|
|
Services.obs.addObserver(
|
|
theObserver, "browser-delayed-startup-finished", false);
|
|
};
|
|
|
|
win.addEventListener("load", onLoad, false);
|
|
}
|
|
|
|
// check whether tha menu is hidden when the "experienced_first_run" pref is
|
|
// false
|
|
function test1(win) {
|
|
is(win.gBrowser.tabs.length - win.gBrowser.visibleTabs.length, 0,
|
|
"There are no hidden tabs")
|
|
|
|
let originalTab = win.gBrowser.visibleTabs[0];
|
|
|
|
openTabContextPopup(win, originalTab);
|
|
|
|
ok(win.document.getElementById("context_tabViewMenu").hidden,
|
|
"The menu should be hidden");
|
|
|
|
closeTabContextPopup(win);
|
|
|
|
executeSoon(function() {
|
|
ok(!win.TabView.getContentWindow(), "The tab view iframe is not loaded");
|
|
test2(win);
|
|
});
|
|
}
|
|
|
|
// press the next group key combination and check whether the iframe has loaded or not
|
|
function test2(win) {
|
|
goToNextGroup(win);
|
|
|
|
// give it a delay so we can ensure the iframe has not been loaded
|
|
executeSoon(function() {
|
|
ok(!win.TabView.getContentWindow(),
|
|
"The tab view iframe is not loaded after pressing the next group key combination");
|
|
|
|
test3(win);
|
|
});
|
|
}
|
|
|
|
// first run has happened, open the tab context menupopup and the tabview menu,
|
|
// move a tab to another group including iframe initialization. Then,
|
|
// use the key combination to change to the next group.
|
|
function test3(win) {
|
|
prefsBranch.setBoolPref("experienced_first_run", true);
|
|
|
|
let newTab = win.gBrowser.addTab("about:blank");
|
|
|
|
// open the tab context menupopup and the tabview menupopup
|
|
openTabContextPopup(win, newTab);
|
|
win.document.getElementById("context_tabViewMenuPopup").openPopup(
|
|
win.document.getElementById("context_tabViewMenu"), "end_after", 0, 0,
|
|
true, false);
|
|
|
|
ok(!win.document.getElementById("context_tabViewMenu").hidden,
|
|
"The menu should be visible now");
|
|
is(win.gBrowser.tabs.length - win.gBrowser.visibleTabs.length, 0,
|
|
"There are no hidden tabs")
|
|
ok(!win.TabView.getContentWindow(),
|
|
"The tab view iframe is not loaded after opening tab context menu");
|
|
|
|
let onTabViewFrameInitialized = function() {
|
|
win.removeEventListener(
|
|
"tabviewframeinitialized", onTabViewFrameInitialized, false);
|
|
|
|
let contentWindow = win.document.getElementById("tab-view").contentWindow;
|
|
|
|
// show the tab view to ensure groups are created before checking.
|
|
let onTabViewShown = function() {
|
|
win.removeEventListener("tabviewshown", onTabViewShown, false);
|
|
|
|
ok(win.TabView.isVisible(), "Tab View is visible");
|
|
|
|
is(contentWindow.GroupItems.groupItems.length, 2,
|
|
"There are two group items");
|
|
is(contentWindow.GroupItems.groupItems[0].getChildren().length, 1,
|
|
"There should be one tab item in the first group");
|
|
is(contentWindow.GroupItems.groupItems[1].getChildren().length, 1,
|
|
"There should be one tab item in the second group");
|
|
|
|
// simulate the next group key combination
|
|
currentActiveGroupItemId =
|
|
contentWindow.GroupItems.getActiveGroupItem().id;
|
|
|
|
win.addEventListener("tabviewhidden", onTabViewHidden, false);
|
|
|
|
win.TabView.toggle();
|
|
};
|
|
let onTabViewHidden = function() {
|
|
win.removeEventListener("tabviewhidden", onTabViewHidden, false);
|
|
|
|
goToNextGroup(win);
|
|
|
|
isnot(contentWindow.GroupItems.getActiveGroupItem().id,
|
|
currentActiveGroupItemId, "Just switched to another group");
|
|
|
|
// close the window and finish it
|
|
win.close();
|
|
finish();
|
|
};
|
|
win.addEventListener("tabviewshown", onTabViewShown, false);
|
|
// give it a delay to ensure everything is loaded.
|
|
executeSoon(function() { win.TabView.toggle(); });
|
|
};
|
|
win.addEventListener(
|
|
"tabviewframeinitialized", onTabViewFrameInitialized, false);
|
|
// move the tab to another group using the menu item
|
|
win.document.getElementById("context_tabViewNewGroup").doCommand();
|
|
|
|
// close popups
|
|
win.document.getElementById("context_tabViewMenuPopup").hidePopup();
|
|
closeTabContextPopup(win);
|
|
}
|
|
|
|
function openTabContextPopup(win, tab) {
|
|
win.document.popupNode = tab;
|
|
win.document.getElementById("tabContextMenu").openPopup(
|
|
tab, "end_after", 0, 0, true, false);
|
|
}
|
|
|
|
function closeTabContextPopup(win) {
|
|
win.document.getElementById("tabContextMenu").hidePopup();
|
|
}
|
|
|
|
function goToNextGroup(win) {
|
|
let utils =
|
|
win.QueryInterface(Ci.nsIInterfaceRequestor).
|
|
getInterface(Ci.nsIDOMWindowUtils);
|
|
|
|
const masks = Ci.nsIDOMNSEvent;
|
|
let mval = 0;
|
|
mval |= masks.CONTROL_MASK;
|
|
|
|
utils.sendKeyEvent("keypress", 0, 96, mval);
|
|
}
|