diff options
Diffstat (limited to 'comm/mail/components/extensions/test/browser/browser_ext_commands_onCommand_bug1845236.js')
-rw-r--r-- | comm/mail/components/extensions/test/browser/browser_ext_commands_onCommand_bug1845236.js | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/comm/mail/components/extensions/test/browser/browser_ext_commands_onCommand_bug1845236.js b/comm/mail/components/extensions/test/browser/browser_ext_commands_onCommand_bug1845236.js new file mode 100644 index 0000000000..3a240cc1ce --- /dev/null +++ b/comm/mail/components/extensions/test/browser/browser_ext_commands_onCommand_bug1845236.js @@ -0,0 +1,74 @@ +/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set sts=2 sw=2 et tw=80: */ +"use strict"; + +add_task(async function test_multiple_messages_selected() { + let account = createAccount(); + let rootFolder = account.incomingServer.rootFolder; + let subFolders = rootFolder.subFolders; + createMessages(subFolders[0], 2); + await TestUtils.waitForCondition( + () => subFolders[0].messages.hasMoreElements(), + "Messages should be added to folder" + ); + + async function background() { + browser.commands.onCommand.addListener((commandName, activeTab) => { + browser.test.sendMessage("oncommand event received", { + commandName, + activeTab, + }); + }); + + let { messages } = await browser.messages.query({}); + await browser.mailTabs.setSelectedMessages(messages.map(m => m.id)); + let { messages: selectedMessages } = + await browser.mailTabs.getSelectedMessages(); + browser.test.assertEq( + selectedMessages.length, + 2, + "Should have two messages selected" + ); + + browser.test.sendMessage("ready"); + } + + let extension = ExtensionTestUtils.loadExtension({ + manifest: { + permissions: ["accountsRead", "messagesRead"], + commands: { + "test-multi-message": { + suggested_key: { + default: "Ctrl+Up", + }, + }, + }, + }, + background, + }); + + await extension.startup(); + await extension.awaitMessage("ready"); + + // Trigger the registered command. + await BrowserTestUtils.synthesizeKey( + "VK_UP", + { + accelKey: true, + }, + window.browsingContext + ); + let message = await extension.awaitMessage("oncommand event received"); + is( + message.commandName, + "test-multi-message", + `Expected onCommand listener to fire with the correct name: test-multi-message` + ); + is( + message.activeTab.type, + "mail", + `Expected onCommand listener to fire with the correct tab type: mail` + ); + + await extension.unload(); +}); |