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/customizableui/test/browser_973641_button_addon.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/customizableui/test/browser_973641_button_addon.js')
-rwxr-xr-x | browser/components/customizableui/test/browser_973641_button_addon.js | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/browser/components/customizableui/test/browser_973641_button_addon.js b/browser/components/customizableui/test/browser_973641_button_addon.js new file mode 100755 index 000000000..796bf3d0e --- /dev/null +++ b/browser/components/customizableui/test/browser_973641_button_addon.js @@ -0,0 +1,71 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +"use strict"; + +const kButton = "test_button_for_addon"; +var initialLocation = gBrowser.currentURI.spec; + +add_task(function*() { + info("Check addon button functionality"); + + // create mocked addon button on the navigation bar + let widgetSpec = { + id: kButton, + type: 'button', + onClick: function() { + gBrowser.selectedTab = gBrowser.addTab("about:addons"); + } + }; + CustomizableUI.createWidget(widgetSpec); + CustomizableUI.addWidgetToArea(kButton, CustomizableUI.AREA_NAVBAR); + + // check the button's functionality in navigation bar + let addonButton = document.getElementById(kButton); + let navBar = document.getElementById("nav-bar"); + ok(addonButton, "Addon button exists"); + ok(navBar.contains(addonButton), "Addon button is in the navbar"); + yield checkButtonFunctionality(addonButton); + + resetTabs(); + + // move the add-on button in the Panel Menu + CustomizableUI.addWidgetToArea(kButton, CustomizableUI.AREA_PANEL); + ok(!navBar.contains(addonButton), "Addon button was removed from the browser bar"); + + // check the addon button's functionality in the Panel Menu + yield PanelUI.show(); + var panelMenu = document.getElementById("PanelUI-mainView"); + let addonButtonInPanel = panelMenu.getElementsByAttribute("id", kButton); + ok(panelMenu.contains(addonButton), "Addon button was added to the Panel Menu"); + yield checkButtonFunctionality(addonButtonInPanel[0]); +}); + +add_task(function* asyncCleanup() { + resetTabs(); + + // reset the UI to the default state + yield resetCustomization(); + ok(CustomizableUI.inDefaultState, "The UI is in default state again."); + + // destroy the widget + CustomizableUI.destroyWidget(kButton); +}); + +function resetTabs() { + // close all opened tabs + while (gBrowser.tabs.length > 1) { + gBrowser.removeTab(gBrowser.selectedTab); + } + + // restore the initial tab + gBrowser.addTab(initialLocation); + gBrowser.removeTab(gBrowser.selectedTab); +} + +function* checkButtonFunctionality(aButton) { + aButton.click(); + yield waitForCondition(() => gBrowser.currentURI && + gBrowser.currentURI.spec == "about:addons"); +} |