From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../browser_ext_menus_context_folder_pane.js | 97 ++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 comm/mail/components/extensions/test/browser/browser_ext_menus_context_folder_pane.js (limited to 'comm/mail/components/extensions/test/browser/browser_ext_menus_context_folder_pane.js') diff --git a/comm/mail/components/extensions/test/browser/browser_ext_menus_context_folder_pane.js b/comm/mail/components/extensions/test/browser/browser_ext_menus_context_folder_pane.js new file mode 100644 index 0000000000..7f55394473 --- /dev/null +++ b/comm/mail/components/extensions/test/browser/browser_ext_menus_context_folder_pane.js @@ -0,0 +1,97 @@ +/* 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/. */ + +// Load subscript shared with all menu tests. +Services.scriptloader.loadSubScript( + new URL("head_menus.js", gTestPath).href, + this +); + +let gAccount, gFolders, gMessage; +add_setup(async () => { + await Services.search.init(); + + gAccount = createAccount(); + addIdentity(gAccount); + gFolders = gAccount.incomingServer.rootFolder.subFolders; + createMessages(gFolders[0], { + count: 1, + body: { + contentType: "text/html", + body: await fetch(`${URL_BASE}/content.html`).then(r => r.text()), + }, + }); + gMessage = [...gFolders[0].messages][0]; + + document.getElementById("tabmail").currentAbout3Pane.restoreState({ + folderPaneVisible: true, + folderURI: gAccount.incomingServer.rootFolder.URI, + }); +}); + +async function subtest_folder_pane(manifest) { + let extension = await getMenuExtension(manifest); + + await extension.startup(); + await extension.awaitMessage("menus-created"); + + let about3Pane = document.getElementById("tabmail").currentAbout3Pane; + let folderTree = about3Pane.document.getElementById("folderTree"); + let menu = about3Pane.document.getElementById("folderPaneContext"); + await rightClick(menu, folderTree.rows[1].querySelector(".container")); + Assert.ok(menu.querySelector("#menus_mochi_test-menuitem-_folder_pane")); + menu.hidePopup(); + + await checkShownEvent( + extension, + { + menuIds: ["folder_pane"], + contexts: ["folder_pane", "all"], + selectedFolder: manifest?.permissions?.includes("accountsRead") + ? { accountId: gAccount.key, path: "/Trash" } + : undefined, + }, + { active: true, index: 0, mailTab: true } + ); + + await rightClick(menu, folderTree.rows[0].querySelector(".container")); + Assert.ok(menu.querySelector("#menus_mochi_test-menuitem-_folder_pane")); + menu.hidePopup(); + + await checkShownEvent( + extension, + { + menuIds: ["folder_pane"], + contexts: ["folder_pane", "all"], + selectedAccount: manifest?.permissions?.includes("accountsRead") + ? { id: gAccount.key, type: "none" } + : undefined, + }, + { active: true, index: 0, mailTab: true } + ); + + await extension.unload(); +} +add_task(async function test_folder_pane_mv2() { + return subtest_folder_pane({ + manifest_version: 2, + permissions: ["accountsRead"], + }); +}); +add_task(async function test_folder_pane_no_permissions_mv2() { + return subtest_folder_pane({ + manifest_version: 2, + }); +}); +add_task(async function test_folder_pane_mv3() { + return subtest_folder_pane({ + manifest_version: 3, + permissions: ["accountsRead"], + }); +}); +add_task(async function test_folder_pane_no_permissions_mv3() { + return subtest_folder_pane({ + manifest_version: 3, + }); +}); -- cgit v1.2.3