summaryrefslogtreecommitdiffstats
path: root/comm/mail/base/test/browser/browser_fileMenu.js
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mail/base/test/browser/browser_fileMenu.js')
-rw-r--r--comm/mail/base/test/browser/browser_fileMenu.js137
1 files changed, 137 insertions, 0 deletions
diff --git a/comm/mail/base/test/browser/browser_fileMenu.js b/comm/mail/base/test/browser/browser_fileMenu.js
new file mode 100644
index 0000000000..927628eb93
--- /dev/null
+++ b/comm/mail/base/test/browser/browser_fileMenu.js
@@ -0,0 +1,137 @@
+/* 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/. */
+
+const { MessageGenerator } = ChromeUtils.import(
+ "resource://testing-common/mailnews/MessageGenerator.jsm"
+);
+
+/** @type MenuData */
+const fileMenuData = {
+ menu_New: {},
+ menu_newNewMsgCmd: {},
+ "calendar-new-event-menuitem": { hidden: true },
+ "calendar-new-task-menuitem": { hidden: true },
+ menu_newFolder: { hidden: ["mailMessageTab", "contentTab"] },
+ menu_newVirtualFolder: { hidden: ["mailMessageTab", "contentTab"] },
+ newCreateEmailAccountMenuItem: {},
+ newMailAccountMenuItem: {},
+ newIMAccountMenuItem: {},
+ newFeedAccountMenuItem: {},
+ newNewsgroupAccountMenuItem: {},
+ "calendar-new-calendar-menuitem": {},
+ menu_newCard: {},
+ newIMContactMenuItem: { disabled: true },
+ menu_Open: {},
+ openMessageFileMenuitem: {},
+ "calendar-open-calendar-file-menuitem": {},
+ menu_close: {},
+ "calendar-save-menuitem": { hidden: true },
+ "calendar-save-and-close-menuitem": { hidden: true },
+ menu_saveAs: {},
+ menu_saveAsFile: { disabled: ["mail3PaneTab", "contentTab"] },
+ menu_saveAsTemplate: { disabled: ["mail3PaneTab", "contentTab"] },
+ menu_getAllNewMsg: {},
+ menu_getnewmsgs_all_accounts: { disabled: true },
+ menu_getnewmsgs_current_account: { disabled: true },
+ menu_getnextnmsg: { hidden: true },
+ menu_sendunsentmsgs: { disabled: true },
+ menu_subscribe: { disabled: true },
+ menu_deleteFolder: { disabled: true },
+ menu_renameFolder: { disabled: true },
+ menu_compactFolder: { disabled: ["mailMessageTab", "contentTab"] },
+ menu_emptyTrash: { disabled: ["mailMessageTab", "contentTab"] },
+ offlineMenuItem: {},
+ goOfflineMenuItem: {},
+ menu_synchronizeOffline: {},
+ menu_settingsOffline: { disabled: true },
+ menu_downloadFlagged: { disabled: true },
+ menu_downloadSelected: { disabled: true },
+ printMenuItem: { disabled: ["mail3PaneTab"] },
+ menu_FileQuitItem: {},
+};
+let helper = new MenuTestHelper("menu_File", fileMenuData);
+
+let tabmail = document.getElementById("tabmail");
+let inboxFolder, plainFolder, rootFolder, testMessages, trashFolder;
+
+add_setup(async function () {
+ document.getElementById("toolbar-menubar").removeAttribute("autohide");
+
+ let generator = new MessageGenerator();
+
+ MailServices.accounts.createLocalMailAccount();
+ let account = MailServices.accounts.accounts[0];
+ account.addIdentity(MailServices.accounts.createIdentity());
+ rootFolder = account.incomingServer.rootFolder;
+
+ rootFolder.createSubfolder("file menu inbox", null);
+ inboxFolder = rootFolder
+ .getChildNamed("file menu inbox")
+ .QueryInterface(Ci.nsIMsgLocalMailFolder);
+ inboxFolder.setFlag(Ci.nsMsgFolderFlags.Inbox);
+ inboxFolder.addMessageBatch(
+ generator.makeMessages({ count: 5 }).map(message => message.toMboxString())
+ );
+ testMessages = [...inboxFolder.messages];
+
+ rootFolder.createSubfolder("file menu plain", null);
+ plainFolder = rootFolder.getChildNamed("file menu plain");
+
+ trashFolder = rootFolder.getFolderWithFlags(Ci.nsMsgFolderFlags.Trash);
+
+ window.OpenMessageInNewTab(testMessages[0], { background: true });
+ await BrowserTestUtils.waitForEvent(
+ tabmail.tabInfo[1].chromeBrowser,
+ "MsgLoaded"
+ );
+
+ window.openTab("contentTab", {
+ url: "https://example.com/",
+ background: true,
+ });
+
+ registerCleanupFunction(() => {
+ tabmail.closeOtherTabs(0);
+ MailServices.accounts.removeAccount(account, false);
+ });
+});
+
+add_task(async function test3PaneTab() {
+ tabmail.currentAbout3Pane.displayFolder(rootFolder);
+ await helper.testAllItems("mail3PaneTab");
+
+ tabmail.currentAbout3Pane.displayFolder(inboxFolder);
+ await helper.testItems({
+ menu_deleteFolder: { disabled: true },
+ menu_renameFolder: { disabled: true },
+ menu_compactFolder: { disabled: false },
+ menu_emptyTrash: {},
+ });
+
+ tabmail.currentAbout3Pane.displayFolder(plainFolder);
+ await helper.testItems({
+ menu_deleteFolder: { disabled: false },
+ menu_renameFolder: { disabled: false },
+ menu_compactFolder: { disabled: false },
+ menu_emptyTrash: {},
+ });
+
+ tabmail.currentAbout3Pane.displayFolder(trashFolder);
+ await helper.testItems({
+ menu_deleteFolder: { disabled: true },
+ menu_renameFolder: { disabled: true },
+ menu_compactFolder: { disabled: false },
+ menu_emptyTrash: {},
+ });
+});
+
+add_task(async function testMessageTab() {
+ tabmail.switchToTab(1);
+ await helper.testAllItems("mailMessageTab");
+});
+
+add_task(async function testContentTab() {
+ tabmail.switchToTab(2);
+ await helper.testAllItems("contentTab");
+});