diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /browser/base/content/test/contextMenu/browser_contextmenu_iframe.js | |
parent | Initial commit. (diff) | |
download | firefox-esr-upstream.tar.xz firefox-esr-upstream.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'browser/base/content/test/contextMenu/browser_contextmenu_iframe.js')
-rw-r--r-- | browser/base/content/test/contextMenu/browser_contextmenu_iframe.js | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/browser/base/content/test/contextMenu/browser_contextmenu_iframe.js b/browser/base/content/test/contextMenu/browser_contextmenu_iframe.js new file mode 100644 index 0000000000..bd52862eb4 --- /dev/null +++ b/browser/base/content/test/contextMenu/browser_contextmenu_iframe.js @@ -0,0 +1,73 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +const TEST_LINK = "https://example.com/"; +const RESOURCE_LINK = + getRootDirectory(gTestPath).replace( + "chrome://mochitests/content", + "https://example.com" + ) + "test_contextmenu_iframe.html"; + +/* This test checks that a context menu can open up + * a frame into it's own tab. */ + +add_task(async function test_open_iframe() { + let testTab = await BrowserTestUtils.openNewForegroundTab( + gBrowser, + RESOURCE_LINK + ); + const selector = "#iframe"; + const openPromise = BrowserTestUtils.waitForNewTab( + gBrowser, + TEST_LINK, + false + ); + const contextMenu = document.getElementById("contentAreaContextMenu"); + is(contextMenu.state, "closed", "checking if popup is closed"); + let awaitPopupShown = BrowserTestUtils.waitForEvent( + contextMenu, + "popupshown" + ); + await BrowserTestUtils.synthesizeMouseAtCenter( + selector, + { + type: "contextmenu", + button: 2, + centered: true, + }, + gBrowser.selectedBrowser + ); + await awaitPopupShown; + info("Popup Shown"); + const awaitPopupHidden = BrowserTestUtils.waitForEvent( + contextMenu, + "popuphidden" + ); + + // Open frame submenu + const frameItem = contextMenu.querySelector("#frame"); + const menuPopup = frameItem.menupopup; + const menuPopupPromise = BrowserTestUtils.waitForEvent( + menuPopup, + "popupshown" + ); + frameItem.openMenu(true); + await menuPopupPromise; + + let domItem = contextMenu.querySelector("#context-openframeintab"); + info("Going to click item " + domItem.id); + ok( + BrowserTestUtils.is_visible(domItem), + "DOM context menu item tab should be visible" + ); + ok(!domItem.disabled, "DOM context menu item tab shouldn't be disabled"); + contextMenu.activateItem(domItem); + + let openedTab = await openPromise; + await awaitPopupHidden; + await BrowserTestUtils.removeTab(openedTab); + + BrowserTestUtils.removeTab(testTab); +}); |