diff options
Diffstat (limited to 'browser/components/uitour/test/browser_backgroundTab.js')
-rw-r--r-- | browser/components/uitour/test/browser_backgroundTab.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/browser/components/uitour/test/browser_backgroundTab.js b/browser/components/uitour/test/browser_backgroundTab.js new file mode 100644 index 000000000..c4117c698 --- /dev/null +++ b/browser/components/uitour/test/browser_backgroundTab.js @@ -0,0 +1,46 @@ +"use strict"; + +var gTestTab; +var gContentAPI; +var gContentWindow; + +requestLongerTimeout(2); +add_task(setup_UITourTest); + +add_UITour_task(function* test_bg_getConfiguration() { + info("getConfiguration is on the allowed list so should work"); + yield* loadForegroundTab(); + let data = yield getConfigurationPromise("availableTargets"); + ok(data, "Got data from getConfiguration"); + yield BrowserTestUtils.removeTab(gBrowser.selectedTab); +}); + +add_UITour_task(function* test_bg_showInfo() { + info("showInfo isn't on the allowed action list so should be denied"); + yield* loadForegroundTab(); + + yield showInfoPromise("appMenu", "Hello from the background", "Surprise!").then( + () => ok(false, "panel shouldn't have shown from a background tab"), + () => ok(true, "panel wasn't shown from a background tab")); + + yield BrowserTestUtils.removeTab(gBrowser.selectedTab); +}); + + +function* loadForegroundTab() { + // Spawn a content task that resolves once we're sure the visibilityState was + // changed. This state is what the tests in this file rely on. + let promise = ContentTask.spawn(gBrowser.selectedTab.linkedBrowser, null, function* () { + return new Promise(resolve => { + let document = content.document; + document.addEventListener("visibilitychange", function onStateChange() { + Assert.equal(document.visibilityState, "hidden", "UITour page should be hidden now."); + document.removeEventListener("visibilitychange", onStateChange); + resolve(); + }); + }); + }); + yield BrowserTestUtils.openNewForegroundTab(gBrowser); + yield promise; + isnot(gBrowser.selectedTab, gTestTab, "Make sure tour tab isn't selected"); +} |