diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /browser/components/uitour/test/browser_UITour_availableTargets.js | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'browser/components/uitour/test/browser_UITour_availableTargets.js')
-rw-r--r-- | browser/components/uitour/test/browser_UITour_availableTargets.js | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/browser/components/uitour/test/browser_UITour_availableTargets.js b/browser/components/uitour/test/browser_UITour_availableTargets.js new file mode 100644 index 000000000..a6e96e31f --- /dev/null +++ b/browser/components/uitour/test/browser_UITour_availableTargets.js @@ -0,0 +1,114 @@ +"use strict"; + +var gTestTab; +var gContentAPI; +var gContentWindow; + +var hasWebIDE = Services.prefs.getBoolPref("devtools.webide.widget.enabled"); +var hasPocket = Services.prefs.getBoolPref("extensions.pocket.enabled"); + +requestLongerTimeout(2); +add_task(setup_UITourTest); + +add_UITour_task(function* test_availableTargets() { + let data = yield getConfigurationPromise("availableTargets"); + ok_targets(data, [ + "accountStatus", + "addons", + "appMenu", + "backForward", + "bookmarks", + "customize", + "help", + "home", + "devtools", + ...(hasPocket ? ["pocket"] : []), + "privateWindow", + "quit", + "readerMode-urlBar", + "search", + "searchIcon", + "trackingProtection", + "urlbar", + ...(hasWebIDE ? ["webide"] : []) + ]); + + ok(UITour.availableTargetsCache.has(window), + "Targets should now be cached"); +}); + +add_UITour_task(function* test_availableTargets_changeWidgets() { + CustomizableUI.removeWidgetFromArea("bookmarks-menu-button"); + ok(!UITour.availableTargetsCache.has(window), + "Targets should be evicted from cache after widget change"); + let data = yield getConfigurationPromise("availableTargets"); + ok_targets(data, [ + "accountStatus", + "addons", + "appMenu", + "backForward", + "customize", + "help", + "devtools", + "home", + ...(hasPocket ? ["pocket"] : []), + "privateWindow", + "quit", + "readerMode-urlBar", + "search", + "searchIcon", + "trackingProtection", + "urlbar", + ...(hasWebIDE ? ["webide"] : []) + ]); + + ok(UITour.availableTargetsCache.has(window), + "Targets should now be cached again"); + CustomizableUI.reset(); + ok(!UITour.availableTargetsCache.has(window), + "Targets should not be cached after reset"); +}); + +add_UITour_task(function* test_availableTargets_exceptionFromGetTarget() { + // The query function for the "search" target will throw if it's not found. + // Make sure the callback still fires with the other available targets. + CustomizableUI.removeWidgetFromArea("search-container"); + let data = yield getConfigurationPromise("availableTargets"); + // Default minus "search" and "searchIcon" + ok_targets(data, [ + "accountStatus", + "addons", + "appMenu", + "backForward", + "bookmarks", + "customize", + "help", + "home", + "devtools", + ...(hasPocket ? ["pocket"] : []), + "privateWindow", + "quit", + "readerMode-urlBar", + "trackingProtection", + "urlbar", + ...(hasWebIDE ? ["webide"] : []) + ]); + + CustomizableUI.reset(); +}); + +function ok_targets(actualData, expectedTargets) { + // Depending on how soon after page load this is called, the selected tab icon + // may or may not be showing the loading throbber. Check for its presence and + // insert it into expectedTargets if it's visible. + let selectedTabIcon = + document.getAnonymousElementByAttribute(gBrowser.selectedTab, + "anonid", + "tab-icon-image"); + if (selectedTabIcon && UITour.isElementVisible(selectedTabIcon)) + expectedTargets.push("selectedTabIcon"); + + ok(Array.isArray(actualData.targets), "data.targets should be an array"); + is(actualData.targets.sort().toString(), expectedTargets.sort().toString(), + "Targets should be as expected"); +} |