1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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();
});
|