diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /browser/base/content/test/general/browser_menuButtonFitts.js | |
parent | Initial commit. (diff) | |
download | firefox-upstream.tar.xz firefox-upstream.zip |
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'browser/base/content/test/general/browser_menuButtonFitts.js')
-rw-r--r-- | browser/base/content/test/general/browser_menuButtonFitts.js | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/browser/base/content/test/general/browser_menuButtonFitts.js b/browser/base/content/test/general/browser_menuButtonFitts.js new file mode 100644 index 0000000000..3905cdb652 --- /dev/null +++ b/browser/base/content/test/general/browser_menuButtonFitts.js @@ -0,0 +1,60 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ + */ + +"use strict"; + +/** + * Clicking the right end of a maximized window should open the hamburger menu. + */ +add_task(async function test_clicking_hamburger_edge_fitts() { + let oldWidth = window.outerWidth; + let maximizeDone = BrowserTestUtils.waitForEvent( + window, + "resize", + false, + () => window.outerWidth >= screen.width - 1 + ); + window.maximize(); + // Ensure we actually finish the resize before continuing. + await maximizeDone; + + // Find where the nav-bar is vertically. + var navBar = document.getElementById("nav-bar"); + var boundingRect = navBar.getBoundingClientRect(); + var yPixel = boundingRect.top + Math.floor(boundingRect.height / 2); + var xPixel = boundingRect.width - 1; // Use the last pixel of the screen since it is maximized. + + let popupHiddenResolve; + let popupHiddenPromise = new Promise(resolve => { + popupHiddenResolve = resolve; + }); + async function onPopupHidden() { + PanelUI.panel.removeEventListener("popuphidden", onPopupHidden); + let restoreDone = BrowserTestUtils.waitForEvent( + window, + "resize", + false, + () => { + let w = window.outerWidth; + return w > oldWidth - 5 && w < oldWidth + 5; + } + ); + window.restore(); + await restoreDone; + popupHiddenResolve(); + } + function onPopupShown() { + PanelUI.panel.removeEventListener("popupshown", onPopupShown); + ok(true, "Clicking at the far edge of the window opened the menu popup."); + PanelUI.panel.addEventListener("popuphidden", onPopupHidden); + PanelUI.hide(); + } + registerCleanupFunction(function() { + PanelUI.panel.removeEventListener("popupshown", onPopupShown); + PanelUI.panel.removeEventListener("popuphidden", onPopupHidden); + }); + PanelUI.panel.addEventListener("popupshown", onPopupShown); + EventUtils.synthesizeMouseAtPoint(xPixel, yPixel, {}, window); + await popupHiddenPromise; +}); |