diff options
Diffstat (limited to 'browser/components/customizableui/test/browser_880164_customization_context_menus.js')
-rw-r--r-- | browser/components/customizableui/test/browser_880164_customization_context_menus.js | 414 |
1 files changed, 0 insertions, 414 deletions
diff --git a/browser/components/customizableui/test/browser_880164_customization_context_menus.js b/browser/components/customizableui/test/browser_880164_customization_context_menus.js deleted file mode 100644 index 57a0db773..000000000 --- a/browser/components/customizableui/test/browser_880164_customization_context_menus.js +++ /dev/null @@ -1,414 +0,0 @@ -/* 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"; - -requestLongerTimeout(2); - -const isOSX = (Services.appinfo.OS === "Darwin"); - -// Right-click on the home button should -// show a context menu with options to move it. -add_task(function*() { - let contextMenu = document.getElementById("toolbar-context-menu"); - let shownPromise = popupShown(contextMenu); - let homeButton = document.getElementById("home-button"); - EventUtils.synthesizeMouse(homeButton, 2, 2, {type: "contextmenu", button: 2 }); - yield shownPromise; - - let expectedEntries = [ - [".customize-context-moveToPanel", true], - [".customize-context-removeFromToolbar", true], - ["---"] - ]; - if (!isOSX) { - expectedEntries.push(["#toggle_toolbar-menubar", true]); - } - expectedEntries.push( - ["#toggle_PersonalToolbar", true], - ["---"], - [".viewCustomizeToolbar", true] - ); - checkContextMenu(contextMenu, expectedEntries); - - let hiddenPromise = popupHidden(contextMenu); - contextMenu.hidePopup(); - yield hiddenPromise; -}); - -// Right-click on an empty bit of tabstrip should -// show a context menu without options to move it, -// but with tab-specific options instead. -add_task(function*() { - // ensure there are tabs to reload/bookmark: - let extraTab = gBrowser.selectedTab = gBrowser.addTab(); - yield promiseTabLoadEvent(extraTab, "http://example.com/"); - let contextMenu = document.getElementById("toolbar-context-menu"); - let shownPromise = popupShown(contextMenu); - let tabstrip = document.getElementById("tabbrowser-tabs"); - let rect = tabstrip.getBoundingClientRect(); - EventUtils.synthesizeMouse(tabstrip, rect.width - 2, 2, {type: "contextmenu", button: 2 }); - yield shownPromise; - - let closedTabsAvailable = SessionStore.getClosedTabCount(window) == 0; - info("Closed tabs: " + closedTabsAvailable); - let expectedEntries = [ - ["#toolbar-context-reloadAllTabs", true], - ["#toolbar-context-bookmarkAllTabs", true], - ["#toolbar-context-undoCloseTab", !closedTabsAvailable], - ["---"] - ]; - if (!isOSX) { - expectedEntries.push(["#toggle_toolbar-menubar", true]); - } - expectedEntries.push( - ["#toggle_PersonalToolbar", true], - ["---"], - [".viewCustomizeToolbar", true] - ); - checkContextMenu(contextMenu, expectedEntries); - - let hiddenPromise = popupHidden(contextMenu); - contextMenu.hidePopup(); - yield hiddenPromise; - gBrowser.removeTab(extraTab); -}); - -// Right-click on an empty bit of extra toolbar should -// show a context menu with moving options disabled, -// and a toggle option for the extra toolbar -add_task(function*() { - let contextMenu = document.getElementById("toolbar-context-menu"); - let shownPromise = popupShown(contextMenu); - let toolbar = createToolbarWithPlacements("880164_empty_toolbar", []); - toolbar.setAttribute("context", "toolbar-context-menu"); - toolbar.setAttribute("toolbarname", "Fancy Toolbar for Context Menu"); - EventUtils.synthesizeMouseAtCenter(toolbar, {type: "contextmenu", button: 2 }); - yield shownPromise; - - let expectedEntries = [ - [".customize-context-moveToPanel", false], - [".customize-context-removeFromToolbar", false], - ["---"] - ]; - if (!isOSX) { - expectedEntries.push(["#toggle_toolbar-menubar", true]); - } - expectedEntries.push( - ["#toggle_PersonalToolbar", true], - ["#toggle_880164_empty_toolbar", true], - ["---"], - [".viewCustomizeToolbar", true] - ); - checkContextMenu(contextMenu, expectedEntries); - - let hiddenPromise = popupHidden(contextMenu); - contextMenu.hidePopup(); - yield hiddenPromise; - removeCustomToolbars(); -}); - - -// Right-click on the urlbar-container should -// show a context menu with disabled options to move it. -add_task(function*() { - let contextMenu = document.getElementById("toolbar-context-menu"); - let shownPromise = popupShown(contextMenu); - let urlBarContainer = document.getElementById("urlbar-container"); - // Need to make sure not to click within an edit field. - EventUtils.synthesizeMouse(urlBarContainer, 100, 1, {type: "contextmenu", button: 2 }); - yield shownPromise; - - let expectedEntries = [ - [".customize-context-moveToPanel", false], - [".customize-context-removeFromToolbar", false], - ["---"] - ]; - if (!isOSX) { - expectedEntries.push(["#toggle_toolbar-menubar", true]); - } - expectedEntries.push( - ["#toggle_PersonalToolbar", true], - ["---"], - [".viewCustomizeToolbar", true] - ); - checkContextMenu(contextMenu, expectedEntries); - - let hiddenPromise = popupHidden(contextMenu); - contextMenu.hidePopup(); - yield hiddenPromise; -}); - -// Right-click on the searchbar and moving it to the menu -// and back should move the search-container instead. -add_task(function*() { - let searchbar = document.getElementById("searchbar"); - gCustomizeMode.addToPanel(searchbar); - let placement = CustomizableUI.getPlacementOfWidget("search-container"); - is(placement.area, CustomizableUI.AREA_PANEL, "Should be in panel"); - - let shownPanelPromise = promisePanelShown(window); - PanelUI.toggle({type: "command"}); - yield shownPanelPromise; - let hiddenPanelPromise = promisePanelHidden(window); - PanelUI.toggle({type: "command"}); - yield hiddenPanelPromise; - - gCustomizeMode.addToToolbar(searchbar); - placement = CustomizableUI.getPlacementOfWidget("search-container"); - is(placement.area, CustomizableUI.AREA_NAVBAR, "Should be in navbar"); - gCustomizeMode.removeFromArea(searchbar); - placement = CustomizableUI.getPlacementOfWidget("search-container"); - is(placement, null, "Should be in palette"); - CustomizableUI.reset(); - placement = CustomizableUI.getPlacementOfWidget("search-container"); - is(placement.area, CustomizableUI.AREA_NAVBAR, "Should be in navbar"); -}); - -// Right-click on an item within the menu panel should -// show a context menu with options to move it. -add_task(function*() { - let shownPanelPromise = promisePanelShown(window); - PanelUI.toggle({type: "command"}); - yield shownPanelPromise; - - let contextMenu = document.getElementById("customizationPanelItemContextMenu"); - let shownContextPromise = popupShown(contextMenu); - let newWindowButton = document.getElementById("new-window-button"); - ok(newWindowButton, "new-window-button was found"); - EventUtils.synthesizeMouse(newWindowButton, 2, 2, {type: "contextmenu", button: 2}); - yield shownContextPromise; - - is(PanelUI.panel.state, "open", "The PanelUI should still be open."); - - let expectedEntries = [ - [".customize-context-moveToToolbar", true], - [".customize-context-removeFromPanel", true], - ["---"], - [".viewCustomizeToolbar", true] - ]; - checkContextMenu(contextMenu, expectedEntries); - - let hiddenContextPromise = popupHidden(contextMenu); - contextMenu.hidePopup(); - yield hiddenContextPromise; - - let hiddenPromise = promisePanelHidden(window); - PanelUI.toggle({type: "command"}); - yield hiddenPromise; -}); - -// Right-click on the home button while in customization mode -// should show a context menu with options to move it. -add_task(function*() { - yield startCustomizing(); - let contextMenu = document.getElementById("toolbar-context-menu"); - let shownPromise = popupShown(contextMenu); - let homeButton = document.getElementById("wrapper-home-button"); - EventUtils.synthesizeMouse(homeButton, 2, 2, {type: "contextmenu", button: 2}); - yield shownPromise; - - let expectedEntries = [ - [".customize-context-moveToPanel", true], - [".customize-context-removeFromToolbar", true], - ["---"] - ]; - if (!isOSX) { - expectedEntries.push(["#toggle_toolbar-menubar", true]); - } - expectedEntries.push( - ["#toggle_PersonalToolbar", true], - ["---"], - [".viewCustomizeToolbar", false] - ); - checkContextMenu(contextMenu, expectedEntries); - - let hiddenContextPromise = popupHidden(contextMenu); - contextMenu.hidePopup(); - yield hiddenContextPromise; -}); - -// Right-click on an item in the palette should -// show a context menu with options to move it. -add_task(function*() { - let contextMenu = document.getElementById("customizationPaletteItemContextMenu"); - let shownPromise = popupShown(contextMenu); - let openFileButton = document.getElementById("wrapper-open-file-button"); - EventUtils.synthesizeMouse(openFileButton, 2, 2, {type: "contextmenu", button: 2}); - yield shownPromise; - - let expectedEntries = [ - [".customize-context-addToToolbar", true], - [".customize-context-addToPanel", true] - ]; - checkContextMenu(contextMenu, expectedEntries); - - let hiddenContextPromise = popupHidden(contextMenu); - contextMenu.hidePopup(); - yield hiddenContextPromise; -}); - -// Right-click on an item in the panel while in customization mode -// should show a context menu with options to move it. -add_task(function*() { - let contextMenu = document.getElementById("customizationPanelItemContextMenu"); - let shownPromise = popupShown(contextMenu); - let newWindowButton = document.getElementById("wrapper-new-window-button"); - EventUtils.synthesizeMouse(newWindowButton, 2, 2, {type: "contextmenu", button: 2}); - yield shownPromise; - - let expectedEntries = [ - [".customize-context-moveToToolbar", true], - [".customize-context-removeFromPanel", true], - ["---"], - [".viewCustomizeToolbar", false] - ]; - checkContextMenu(contextMenu, expectedEntries); - - let hiddenContextPromise = popupHidden(contextMenu); - contextMenu.hidePopup(); - yield hiddenContextPromise; - yield endCustomizing(); -}); - -// Test the toolbarbutton panel context menu in customization mode -// without opening the panel before customization mode -add_task(function*() { - this.otherWin = yield openAndLoadWindow(null, true); - - yield new Promise(resolve => waitForFocus(resolve, this.otherWin)); - - yield startCustomizing(this.otherWin); - - let contextMenu = this.otherWin.document.getElementById("customizationPanelItemContextMenu"); - let shownPromise = popupShown(contextMenu); - let newWindowButton = this.otherWin.document.getElementById("wrapper-new-window-button"); - EventUtils.synthesizeMouse(newWindowButton, 2, 2, {type: "contextmenu", button: 2}, this.otherWin); - yield shownPromise; - - let expectedEntries = [ - [".customize-context-moveToToolbar", true], - [".customize-context-removeFromPanel", true], - ["---"], - [".viewCustomizeToolbar", false] - ]; - checkContextMenu(contextMenu, expectedEntries, this.otherWin); - - let hiddenContextPromise = popupHidden(contextMenu); - contextMenu.hidePopup(); - yield hiddenContextPromise; - yield endCustomizing(this.otherWin); - yield promiseWindowClosed(this.otherWin); - this.otherWin = null; - - yield new Promise(resolve => waitForFocus(resolve, window)); -}); - -// Bug 945191 - Combined buttons show wrong context menu options -// when they are in the toolbar. -add_task(function*() { - yield startCustomizing(); - let contextMenu = document.getElementById("customizationPanelItemContextMenu"); - let shownPromise = popupShown(contextMenu); - let zoomControls = document.getElementById("wrapper-zoom-controls"); - EventUtils.synthesizeMouse(zoomControls, 2, 2, {type: "contextmenu", button: 2}); - yield shownPromise; - // Execute the command to move the item from the panel to the toolbar. - contextMenu.childNodes[0].doCommand(); - let hiddenPromise = popupHidden(contextMenu); - contextMenu.hidePopup(); - yield hiddenPromise; - yield endCustomizing(); - - zoomControls = document.getElementById("zoom-controls"); - is(zoomControls.parentNode.id, "nav-bar-customization-target", "Zoom-controls should be on the nav-bar"); - - contextMenu = document.getElementById("toolbar-context-menu"); - shownPromise = popupShown(contextMenu); - EventUtils.synthesizeMouse(zoomControls, 2, 2, {type: "contextmenu", button: 2}); - yield shownPromise; - - let expectedEntries = [ - [".customize-context-moveToPanel", true], - [".customize-context-removeFromToolbar", true], - ["---"] - ]; - if (!isOSX) { - expectedEntries.push(["#toggle_toolbar-menubar", true]); - } - expectedEntries.push( - ["#toggle_PersonalToolbar", true], - ["---"], - [".viewCustomizeToolbar", true] - ); - checkContextMenu(contextMenu, expectedEntries); - - hiddenPromise = popupHidden(contextMenu); - contextMenu.hidePopup(); - yield hiddenPromise; - yield resetCustomization(); -}); - -// Bug 947586 - After customization, panel items show wrong context menu options -add_task(function*() { - yield startCustomizing(); - yield endCustomizing(); - - yield PanelUI.show(); - - let contextMenu = document.getElementById("customizationPanelItemContextMenu"); - let shownContextPromise = popupShown(contextMenu); - let newWindowButton = document.getElementById("new-window-button"); - ok(newWindowButton, "new-window-button was found"); - EventUtils.synthesizeMouse(newWindowButton, 2, 2, {type: "contextmenu", button: 2}); - yield shownContextPromise; - - is(PanelUI.panel.state, "open", "The PanelUI should still be open."); - - let expectedEntries = [ - [".customize-context-moveToToolbar", true], - [".customize-context-removeFromPanel", true], - ["---"], - [".viewCustomizeToolbar", true] - ]; - checkContextMenu(contextMenu, expectedEntries); - - let hiddenContextPromise = popupHidden(contextMenu); - contextMenu.hidePopup(); - yield hiddenContextPromise; - - let hiddenPromise = promisePanelHidden(window); - PanelUI.hide(); - yield hiddenPromise; -}); - - -// Bug 982027 - moving icon around removes custom context menu. -add_task(function*() { - let widgetId = "custom-context-menu-toolbarbutton"; - let expectedContext = "myfancycontext"; - let widget = createDummyXULButton(widgetId, "Test ctxt menu"); - widget.setAttribute("context", expectedContext); - CustomizableUI.addWidgetToArea(widgetId, CustomizableUI.AREA_NAVBAR); - is(widget.getAttribute("context"), expectedContext, "Should have context menu when added to the toolbar."); - - yield startCustomizing(); - is(widget.getAttribute("context"), "", "Should not have own context menu in the toolbar now that we're customizing."); - is(widget.getAttribute("wrapped-context"), expectedContext, "Should keep own context menu wrapped when in toolbar."); - - let panel = PanelUI.contents; - simulateItemDrag(widget, panel); - is(widget.getAttribute("context"), "", "Should not have own context menu when in the panel."); - is(widget.getAttribute("wrapped-context"), expectedContext, "Should keep own context menu wrapped now that we're in the panel."); - - simulateItemDrag(widget, document.getElementById("nav-bar").customizationTarget); - is(widget.getAttribute("context"), "", "Should not have own context menu when back in toolbar because we're still customizing."); - is(widget.getAttribute("wrapped-context"), expectedContext, "Should keep own context menu wrapped now that we're back in the toolbar."); - - yield endCustomizing(); - is(widget.getAttribute("context"), expectedContext, "Should have context menu again now that we're out of customize mode."); - CustomizableUI.removeWidgetFromArea(widgetId); - widget.remove(); - ok(CustomizableUI.inDefaultState, "Should be in default state after removing button."); -}); |