blob: 455987a9083aee96b6801452544d5a40579f50a2 (
plain)
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
|
/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim: set sts=2 sw=2 et tw=80: */
"use strict";
add_task(async function testWindowRemove() {
let extension = ExtensionTestUtils.loadExtension({
async background() {
async function closeWindow(id) {
let window = await browser.windows.get(id);
return new Promise(function (resolve) {
browser.windows.onRemoved.addListener(async function listener(
windowId
) {
browser.windows.onRemoved.removeListener(listener);
await browser.test.assertEq(
windowId,
window.id,
"The right window was closed"
);
await browser.test.assertRejects(
browser.windows.get(windowId),
new RegExp(`Invalid window ID: ${windowId}`),
"The window was really closed."
);
resolve();
});
browser.windows.remove(id);
});
}
browser.test.log("Create a new window and close it by its ID");
let newWindow = await browser.windows.create();
await closeWindow(newWindow.id);
browser.test.log("Create a new window and close it by WINDOW_ID_CURRENT");
await browser.windows.create();
await closeWindow(browser.windows.WINDOW_ID_CURRENT);
browser.test.log("Assert failure for bad parameter.");
await browser.test.assertThrows(
() => browser.windows.remove(-3),
/-3 is too small \(must be at least -2\)/,
"Invalid windowId throws"
);
browser.test.notifyPass("window-remove");
},
});
await extension.startup();
await extension.awaitFinish("window-remove");
await extension.unload();
});
|