diff options
Diffstat (limited to 'browser/components/uitour/test/browser_no_tabs.js')
-rw-r--r-- | browser/components/uitour/test/browser_no_tabs.js | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/browser/components/uitour/test/browser_no_tabs.js b/browser/components/uitour/test/browser_no_tabs.js deleted file mode 100644 index 62048b156..000000000 --- a/browser/components/uitour/test/browser_no_tabs.js +++ /dev/null @@ -1,102 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -"use strict"; - -var HiddenFrame = Cu.import("resource:///modules/HiddenFrame.jsm", {}).HiddenFrame; - -const HTML_NS = "http://www.w3.org/1999/xhtml"; -const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; - -/** - * Create a frame in the |hiddenDOMWindow| to host a |browser|, then load the URL in the - * latter. - * - * @param aURL - * The URL to open in the browser. - **/ -function createHiddenBrowser(aURL) { - let frame = new HiddenFrame(); - return new Promise(resolve => - frame.get().then(aFrame => { - let doc = aFrame.document; - let browser = doc.createElementNS(XUL_NS, "browser"); - browser.setAttribute("type", "content"); - browser.setAttribute("disableglobalhistory", "true"); - browser.setAttribute("src", aURL); - - doc.documentElement.appendChild(browser); - resolve({frame: frame, browser: browser}); - })); -} - -/** - * Remove the browser and the HiddenFrame. - * - * @param aFrame - * The HiddenFrame to dismiss. - * @param aBrowser - * The browser to dismiss. - */ -function destroyHiddenBrowser(aFrame, aBrowser) { - // Dispose of the hidden browser. - aBrowser.remove(); - - // Take care of the frame holding our invisible browser. - aFrame.destroy(); -} - -/** - * Test that UITour works when called when no tabs are available (e.g., when using windowless - * browsers). - */ -add_task(function* test_windowless_UITour() { - // Get the URL for the test page. - let pageURL = getRootDirectory(gTestPath) + "uitour.html"; - - // Allow the URL to use the UITour. - info("Adding UITour permission to the test page."); - let pageURI = Services.io.newURI(pageURL, null, null); - Services.perms.add(pageURI, "uitour", Services.perms.ALLOW_ACTION); - - // UITour's ping will resolve this promise. - let deferredPing = Promise.defer(); - - // Create a windowless browser and test that UITour works in it. - let browserPromise = createHiddenBrowser(pageURL); - browserPromise.then(frameInfo => { - isnot(frameInfo.browser, null, "The browser must exist and not be null."); - - // Load UITour frame script. - frameInfo.browser.messageManager.loadFrameScript( - "chrome://browser/content/content-UITour.js", false); - - // When the page loads, try to use UITour API. - frameInfo.browser.addEventListener("load", function loadListener() { - info("The test page was correctly loaded."); - - frameInfo.browser.removeEventListener("load", loadListener, true); - - // Get a reference to the UITour API. - info("Testing access to the UITour API."); - let contentWindow = Cu.waiveXrays(frameInfo.browser.contentDocument.defaultView); - isnot(contentWindow, null, "The content window must exist and not be null."); - - let uitourAPI = contentWindow.Mozilla.UITour; - - // Test the UITour API with a ping. - uitourAPI.ping(function() { - info("Ping response received from the UITour API."); - - // Make sure to clean up. - destroyHiddenBrowser(frameInfo.frame, frameInfo.browser); - - // Resolve our promise. - deferredPing.resolve(); - }); - }, true); - }); - - // Wait for the UITour ping to complete. - yield deferredPing.promise; -}); |