diff --git a/browser/modules/test/browser_UITour.js b/browser/modules/test/browser_UITour.js index 80563c39533e..aecd842446d7 100644 --- a/browser/modules/test/browser_UITour.js +++ b/browser/modules/test/browser_UITour.js @@ -9,79 +9,13 @@ let gContentWindow; Components.utils.import("resource:///modules/UITour.jsm"); -function loadTestPage(callback, host = "https://example.com/") { - if (gTestTab) - gBrowser.removeTab(gTestTab); - - let url = getRootDirectory(gTestPath) + "uitour.html"; - url = url.replace("chrome://mochitests/content/", host); - - gTestTab = gBrowser.addTab(url); - gBrowser.selectedTab = gTestTab; - - gTestTab.linkedBrowser.addEventListener("load", function onLoad() { - gTestTab.linkedBrowser.removeEventListener("load", onLoad); - - gContentWindow = Components.utils.waiveXrays(gTestTab.linkedBrowser.contentDocument.defaultView); - gContentAPI = gContentWindow.Mozilla.UITour; - - waitForFocus(callback, gContentWindow); - }, true); -} - function test() { - Services.prefs.setBoolPref("browser.uitour.enabled", true); - let testUri = Services.io.newURI("http://example.com", null, null); - Services.perms.add(testUri, "uitour", Services.perms.ALLOW_ACTION); - - waitForExplicitFinish(); - - registerCleanupFunction(function() { - delete window.UITour; - delete window.gContentWindow; - delete window.gContentAPI; - if (gTestTab) - gBrowser.removeTab(gTestTab); - delete window.gTestTab; - Services.prefs.clearUserPref("browser.uitour.enabled", true); - Services.perms.remove("example.com", "uitour"); - }); - - function done() { - if (gTestTab) - gBrowser.removeTab(gTestTab); - gTestTab = null; - - let highlight = document.getElementById("UITourHighlightContainer"); - is_element_hidden(highlight, "Highlight should be closed/hidden after UITour tab is closed"); - - let tooltip = document.getElementById("UITourTooltip"); - is_element_hidden(tooltip, "Tooltip should be closed/hidden after UITour tab is closed"); - - ok(!PanelUI.panel.hasAttribute("noautohide"), "@noautohide on the menu panel should have been cleaned up"); - - is(UITour.pinnedTabs.get(window), null, "Any pinned tab should be closed after UITour tab is closed"); - - executeSoon(nextTest); - } - - function nextTest() { - if (tests.length == 0) { - finish(); - return; - } - let test = tests.shift(); - info("Starting " + test.name); - loadTestPage(function() { - test(done); - }); - } - nextTest(); + UITourTest(); } let tests = [ function test_untrusted_host(done) { - loadTestPage(function() { + loadUITourTestPage(function() { let bookmarksMenu = document.getElementById("bookmarks-menu-button"); ise(bookmarksMenu.open, false, "Bookmark menu should initially be closed"); @@ -92,7 +26,7 @@ let tests = [ }, "http://mochi.test:8888/"); }, function test_unsecure_host(done) { - loadTestPage(function() { + loadUITourTestPage(function() { let bookmarksMenu = document.getElementById("bookmarks-menu-button"); ise(bookmarksMenu.open, false, "Bookmark menu should initially be closed"); @@ -104,7 +38,7 @@ let tests = [ }, function test_unsecure_host_override(done) { Services.prefs.setBoolPref("browser.uitour.requireSecure", false); - loadTestPage(function() { + loadUITourTestPage(function() { let highlight = document.getElementById("UITourHighlight"); is_element_hidden(highlight, "Highlight should initially be hidden"); diff --git a/browser/modules/test/browser_UITour2.js b/browser/modules/test/browser_UITour2.js index 3f27f9b56025..5806afa1700a 100644 --- a/browser/modules/test/browser_UITour2.js +++ b/browser/modules/test/browser_UITour2.js @@ -9,74 +9,8 @@ let gContentWindow; Components.utils.import("resource:///modules/UITour.jsm"); -function loadTestPage(callback, host = "https://example.com/") { - if (gTestTab) - gBrowser.removeTab(gTestTab); - - let url = getRootDirectory(gTestPath) + "uitour.html"; - url = url.replace("chrome://mochitests/content/", host); - - gTestTab = gBrowser.addTab(url); - gBrowser.selectedTab = gTestTab; - - gTestTab.linkedBrowser.addEventListener("load", function onLoad() { - gTestTab.linkedBrowser.removeEventListener("load", onLoad); - - gContentWindow = Components.utils.waiveXrays(gTestTab.linkedBrowser.contentDocument.defaultView); - gContentAPI = gContentWindow.Mozilla.UITour; - - waitForFocus(callback, gContentWindow); - }, true); -} - function test() { - Services.prefs.setBoolPref("browser.uitour.enabled", true); - let testUri = Services.io.newURI("http://example.com", null, null); - Services.perms.add(testUri, "uitour", Services.perms.ALLOW_ACTION); - - waitForExplicitFinish(); - - registerCleanupFunction(function() { - delete window.UITour; - delete window.gContentWindow; - delete window.gContentAPI; - if (gTestTab) - gBrowser.removeTab(gTestTab); - delete window.gTestTab; - Services.prefs.clearUserPref("browser.uitour.enabled", true); - Services.perms.remove("example.com", "uitour"); - }); - - function done() { - if (gTestTab) - gBrowser.removeTab(gTestTab); - gTestTab = null; - - let highlight = document.getElementById("UITourHighlightContainer"); - is_element_hidden(highlight, "Highlight should be closed/hidden after UITour tab is closed"); - - let tooltip = document.getElementById("UITourTooltip"); - is_element_hidden(tooltip, "Tooltip should be closed/hidden after UITour tab is closed"); - - ok(!PanelUI.panel.hasAttribute("noautohide"), "@noautohide on the menu panel should have been cleaned up"); - - is(UITour.pinnedTabs.get(window), null, "Any pinned tab should be closed after UITour tab is closed"); - - executeSoon(nextTest); - } - - function nextTest() { - if (tests.length == 0) { - finish(); - return; - } - let test = tests.shift(); - info("Starting " + test.name); - loadTestPage(function() { - test(done); - }); - } - nextTest(); + UITourTest(); } let tests = [ diff --git a/browser/modules/test/browser_UITour3.js b/browser/modules/test/browser_UITour3.js index 28c91630c46c..8d04d96fbb0d 100644 --- a/browser/modules/test/browser_UITour3.js +++ b/browser/modules/test/browser_UITour3.js @@ -9,74 +9,8 @@ let gContentWindow; Components.utils.import("resource:///modules/UITour.jsm"); -function loadTestPage(callback, host = "https://example.com/") { - if (gTestTab) - gBrowser.removeTab(gTestTab); - - let url = getRootDirectory(gTestPath) + "uitour.html"; - url = url.replace("chrome://mochitests/content/", host); - - gTestTab = gBrowser.addTab(url); - gBrowser.selectedTab = gTestTab; - - gTestTab.linkedBrowser.addEventListener("load", function onLoad() { - gTestTab.linkedBrowser.removeEventListener("load", onLoad); - - gContentWindow = Components.utils.waiveXrays(gTestTab.linkedBrowser.contentDocument.defaultView); - gContentAPI = gContentWindow.Mozilla.UITour; - - waitForFocus(callback, gContentWindow); - }, true); -} - function test() { - Services.prefs.setBoolPref("browser.uitour.enabled", true); - let testUri = Services.io.newURI("http://example.com", null, null); - Services.perms.add(testUri, "uitour", Services.perms.ALLOW_ACTION); - - waitForExplicitFinish(); - - registerCleanupFunction(function() { - delete window.UITour; - delete window.gContentWindow; - delete window.gContentAPI; - if (gTestTab) - gBrowser.removeTab(gTestTab); - delete window.gTestTab; - Services.prefs.clearUserPref("browser.uitour.enabled", true); - Services.perms.remove("example.com", "uitour"); - }); - - function done() { - if (gTestTab) - gBrowser.removeTab(gTestTab); - gTestTab = null; - - let highlight = document.getElementById("UITourHighlightContainer"); - is_element_hidden(highlight, "Highlight should be closed/hidden after UITour tab is closed"); - - let tooltip = document.getElementById("UITourTooltip"); - is_element_hidden(tooltip, "Tooltip should be closed/hidden after UITour tab is closed"); - - ok(!PanelUI.panel.hasAttribute("noautohide"), "@noautohide on the menu panel should have been cleaned up"); - - is(UITour.pinnedTabs.get(window), null, "Any pinned tab should be closed after UITour tab is closed"); - - executeSoon(nextTest); - } - - function nextTest() { - if (tests.length == 0) { - finish(); - return; - } - let test = tests.shift(); - info("Starting " + test.name); - loadTestPage(function() { - test(done); - }); - } - nextTest(); + UITourTest(); } let tests = [ diff --git a/browser/modules/test/browser_UITour_sync.js b/browser/modules/test/browser_UITour_sync.js index c022b873663d..936924320ac9 100644 --- a/browser/modules/test/browser_UITour_sync.js +++ b/browser/modules/test/browser_UITour_sync.js @@ -9,75 +9,11 @@ let gContentWindow; Components.utils.import("resource:///modules/UITour.jsm"); -function loadTestPage(callback, host = "https://example.com/") { - if (gTestTab) - gBrowser.removeTab(gTestTab); - - let url = getRootDirectory(gTestPath) + "uitour.html"; - url = url.replace("chrome://mochitests/content/", host); - - gTestTab = gBrowser.addTab(url); - gBrowser.selectedTab = gTestTab; - - gTestTab.linkedBrowser.addEventListener("load", function onLoad() { - gTestTab.linkedBrowser.removeEventListener("load", onLoad); - - gContentWindow = Components.utils.waiveXrays(gTestTab.linkedBrowser.contentDocument.defaultView); - gContentAPI = gContentWindow.Mozilla.UITour; - - waitForFocus(callback, gContentWindow); - }, true); -} - function test() { - Services.prefs.setBoolPref("browser.uitour.enabled", true); - let testUri = Services.io.newURI("http://example.com", null, null); - Services.perms.add(testUri, "uitour", Services.perms.ALLOW_ACTION); - - waitForExplicitFinish(); - registerCleanupFunction(function() { - delete window.UITour; - delete window.gContentWindow; - delete window.gContentAPI; - if (gTestTab) - gBrowser.removeTab(gTestTab); - delete window.gTestTab; - Services.prefs.clearUserPref("browser.uitour.enabled", true); Services.prefs.clearUserPref("services.sync.username"); - Services.perms.remove("example.com", "uitour"); }); - - function done() { - executeSoon(() => { - if (gTestTab) - gBrowser.removeTab(gTestTab); - gTestTab = null; - - let highlight = document.getElementById("UITourHighlightContainer"); - is_element_hidden(highlight, "Highlight should be closed/hidden after UITour tab is closed"); - - let tooltip = document.getElementById("UITourTooltip"); - is_element_hidden(tooltip, "Tooltip should be closed/hidden after UITour tab is closed"); - - is(UITour.pinnedTabs.get(window), null, "Any pinned tab should be closed after UITour tab is closed"); - - executeSoon(nextTest); - }); - } - - function nextTest() { - if (tests.length == 0) { - finish(); - return; - } - let test = tests.shift(); - info("Starting " + test.name); - loadTestPage(function() { - test(done); - }); - } - nextTest(); + UITourTest(); } let tests = [ diff --git a/browser/modules/test/head.js b/browser/modules/test/head.js index ff6da1a8e191..24832815e3fe 100644 --- a/browser/modules/test/head.js +++ b/browser/modules/test/head.js @@ -67,3 +67,75 @@ function is_element_hidden(element, msg) { isnot(element, null, "Element should not be null, when checking visibility"); ok(is_hidden(element), msg); } + +function loadUITourTestPage(callback, host = "https://example.com/") { + if (gTestTab) + gBrowser.removeTab(gTestTab); + + let url = getRootDirectory(gTestPath) + "uitour.html"; + url = url.replace("chrome://mochitests/content/", host); + + gTestTab = gBrowser.addTab(url); + gBrowser.selectedTab = gTestTab; + + gTestTab.linkedBrowser.addEventListener("load", function onLoad() { + gTestTab.linkedBrowser.removeEventListener("load", onLoad); + + gContentWindow = Components.utils.waiveXrays(gTestTab.linkedBrowser.contentDocument.defaultView); + gContentAPI = gContentWindow.Mozilla.UITour; + + waitForFocus(callback, gContentWindow); + }, true); +} + +function UITourTest() { + Services.prefs.setBoolPref("browser.uitour.enabled", true); + let testUri = Services.io.newURI("http://example.com", null, null); + Services.perms.add(testUri, "uitour", Services.perms.ALLOW_ACTION); + + waitForExplicitFinish(); + + registerCleanupFunction(function() { + delete window.UITour; + delete window.gContentWindow; + delete window.gContentAPI; + if (gTestTab) + gBrowser.removeTab(gTestTab); + delete window.gTestTab; + Services.prefs.clearUserPref("browser.uitour.enabled", true); + Services.perms.remove("example.com", "uitour"); + }); + + function done() { + executeSoon(() => { + if (gTestTab) + gBrowser.removeTab(gTestTab); + gTestTab = null; + + let highlight = document.getElementById("UITourHighlightContainer"); + is_element_hidden(highlight, "Highlight should be closed/hidden after UITour tab is closed"); + + let tooltip = document.getElementById("UITourTooltip"); + is_element_hidden(tooltip, "Tooltip should be closed/hidden after UITour tab is closed"); + + ok(!PanelUI.panel.hasAttribute("noautohide"), "@noautohide on the menu panel should have been cleaned up"); + + is(UITour.pinnedTabs.get(window), null, "Any pinned tab should be closed after UITour tab is closed"); + + executeSoon(nextTest); + }); + } + + function nextTest() { + if (tests.length == 0) { + finish(); + return; + } + let test = tests.shift(); + info("Starting " + test.name); + loadUITourTestPage(function() { + test(done); + }); + } + nextTest(); +}