summaryrefslogtreecommitdiffstats
path: root/browser/components/uitour/test/browser_UITour_detach_tab.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/uitour/test/browser_UITour_detach_tab.js')
-rw-r--r--browser/components/uitour/test/browser_UITour_detach_tab.js94
1 files changed, 0 insertions, 94 deletions
diff --git a/browser/components/uitour/test/browser_UITour_detach_tab.js b/browser/components/uitour/test/browser_UITour_detach_tab.js
deleted file mode 100644
index b8edf6dc4..000000000
--- a/browser/components/uitour/test/browser_UITour_detach_tab.js
+++ /dev/null
@@ -1,94 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Detaching a tab to a new window shouldn't break the menu panel.
- */
-
-"use strict";
-
-var gTestTab;
-var gContentAPI;
-var gContentWindow;
-var gContentDoc;
-
-function test() {
- registerCleanupFunction(function() {
- gContentDoc = null;
- });
- UITourTest();
-}
-
-/**
- * When tab is changed we're tearing the tour down. So the UITour client has to always be aware of this
- * fact and therefore listens to visibilitychange events.
- * In particular this scenario happens for detaching the tab (ie. moving it to a new window).
- */
-var tests = [
- taskify(function* test_move_tab_to_new_window() {
- const myDocIdentifier = "Hello, I'm a unique expando to identify this document.";
-
- let highlight = document.getElementById("UITourHighlight");
- let windowDestroyedDeferred = Promise.defer();
- let onDOMWindowDestroyed = (aWindow) => {
- if (gContentWindow && aWindow == gContentWindow) {
- Services.obs.removeObserver(onDOMWindowDestroyed, "dom-window-destroyed", false);
- windowDestroyedDeferred.resolve();
- }
- };
-
- let browserStartupDeferred = Promise.defer();
- Services.obs.addObserver(function onBrowserDelayedStartup(aWindow) {
- Services.obs.removeObserver(onBrowserDelayedStartup, "browser-delayed-startup-finished");
- browserStartupDeferred.resolve(aWindow);
- }, "browser-delayed-startup-finished", false);
-
- yield ContentTask.spawn(gBrowser.selectedBrowser, myDocIdentifier, myDocIdentifier => {
- let onVisibilityChange = () => {
- if (!content.document.hidden) {
- let win = Cu.waiveXrays(content);
- win.Mozilla.UITour.showHighlight("appMenu");
- }
- };
- content.document.addEventListener("visibilitychange", onVisibilityChange);
- content.document.myExpando = myDocIdentifier;
- });
- gContentAPI.showHighlight("appMenu");
-
- yield elementVisiblePromise(highlight);
-
- gContentWindow = gBrowser.replaceTabWithWindow(gBrowser.selectedTab);
- yield browserStartupDeferred.promise;
-
- // This highlight should be shown thanks to the visibilitychange listener.
- let newWindowHighlight = gContentWindow.document.getElementById("UITourHighlight");
- yield elementVisiblePromise(newWindowHighlight);
-
- let selectedTab = gContentWindow.gBrowser.selectedTab;
- yield ContentTask.spawn(selectedTab.linkedBrowser, myDocIdentifier, myDocIdentifier => {
- is(content.document.myExpando, myDocIdentifier, "Document should be selected in new window");
- });
- ok(UITour.tourBrowsersByWindow && UITour.tourBrowsersByWindow.has(gContentWindow), "Window should be known");
- ok(UITour.tourBrowsersByWindow.get(gContentWindow).has(selectedTab.linkedBrowser), "Selected browser should be known");
-
- // Need this because gContentAPI in e10s land will try to use gTestTab to
- // spawn a content task, which doesn't work if the tab is dead, for obvious
- // reasons.
- gTestTab = gContentWindow.gBrowser.selectedTab;
-
- let shownPromise = promisePanelShown(gContentWindow);
- gContentAPI.showMenu("appMenu");
- yield shownPromise;
-
- isnot(gContentWindow.PanelUI.panel.state, "closed", "Panel should be open");
- ok(gContentWindow.PanelUI.contents.children.length > 0, "Panel contents should have children");
- gContentAPI.hideHighlight();
- gContentAPI.hideMenu("appMenu");
- gTestTab = null;
-
- Services.obs.addObserver(onDOMWindowDestroyed, "dom-window-destroyed", false);
- gContentWindow.close();
-
- yield windowDestroyedDeferred.promise;
- }),
-];