From 5f8de423f190bbb79a62f804151bc24824fa32d8 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 2 Feb 2018 04:16:08 -0500 Subject: Add m-esr52 at 52.6.0 --- .../test/browser_884402_customize_from_overflow.js | 81 ++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 browser/components/customizableui/test/browser_884402_customize_from_overflow.js (limited to 'browser/components/customizableui/test/browser_884402_customize_from_overflow.js') diff --git a/browser/components/customizableui/test/browser_884402_customize_from_overflow.js b/browser/components/customizableui/test/browser_884402_customize_from_overflow.js new file mode 100644 index 000000000..f50767c06 --- /dev/null +++ b/browser/components/customizableui/test/browser_884402_customize_from_overflow.js @@ -0,0 +1,81 @@ +"use strict"; + +var overflowPanel = document.getElementById("widget-overflow"); + +const isOSX = (Services.appinfo.OS === "Darwin"); + +var originalWindowWidth; +registerCleanupFunction(function() { + overflowPanel.removeAttribute("animate"); + window.resizeTo(originalWindowWidth, window.outerHeight); +}); + +// Right-click on an item within the overflow panel should +// show a context menu with options to move it. +add_task(function*() { + + overflowPanel.setAttribute("animate", "false"); + + originalWindowWidth = window.outerWidth; + let navbar = document.getElementById(CustomizableUI.AREA_NAVBAR); + ok(!navbar.hasAttribute("overflowing"), "Should start with a non-overflowing toolbar."); + window.resizeTo(400, window.outerHeight); + + yield waitForCondition(() => navbar.hasAttribute("overflowing")); + ok(navbar.hasAttribute("overflowing"), "Should have an overflowing toolbar."); + + let chevron = document.getElementById("nav-bar-overflow-button"); + let shownPanelPromise = promisePanelElementShown(window, overflowPanel); + chevron.click(); + yield shownPanelPromise; + + let contextMenu = document.getElementById("toolbar-context-menu"); + let shownContextPromise = popupShown(contextMenu); + let homeButton = document.getElementById("home-button"); + ok(homeButton, "home-button was found"); + is(homeButton.getAttribute("overflowedItem"), "true", "Home button is overflowing"); + EventUtils.synthesizeMouse(homeButton, 2, 2, {type: "contextmenu", button: 2}); + yield shownContextPromise; + + is(overflowPanel.state, "open", "The widget overflow panel should still be open."); + + 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 hiddenContextPromise = popupHidden(contextMenu); + let hiddenPromise = promisePanelElementHidden(window, overflowPanel); + let moveToPanel = contextMenu.querySelector(".customize-context-moveToPanel"); + if (moveToPanel) { + moveToPanel.click(); + } + contextMenu.hidePopup(); + yield hiddenContextPromise; + yield hiddenPromise; + + let homeButtonPlacement = CustomizableUI.getPlacementOfWidget("home-button"); + ok(homeButtonPlacement, "Home button should still have a placement"); + is(homeButtonPlacement && homeButtonPlacement.area, "PanelUI-contents", "Home button should be in the panel now"); + CustomizableUI.reset(); + + // In some cases, it can take a tick for the navbar to overflow again. Wait for it: + yield waitForCondition(() => navbar.hasAttribute("overflowing")); + ok(navbar.hasAttribute("overflowing"), "Should have an overflowing toolbar."); + + homeButtonPlacement = CustomizableUI.getPlacementOfWidget("home-button"); + ok(homeButtonPlacement, "Home button should still have a placement"); + is(homeButtonPlacement && homeButtonPlacement.area, "nav-bar", "Home button should be back in the navbar now"); + + is(homeButton.getAttribute("overflowedItem"), "true", "Home button should still be overflowed"); +}); -- cgit v1.2.3