Bug 1261949 - Complete test coverage for browser.windows events, r?kmag
Add coverage for:
* browser.windows.onCreated
* browser.windows.onRemoved
MozReview-Commit-ID: FMhcNBnijce
--- a/browser/components/extensions/test/browser/browser.ini
+++ b/browser/components/extensions/test/browser/browser.ini
@@ -53,16 +53,17 @@ support-files =
[browser_ext_tabs_move_window.js]
[browser_ext_tabs_move_window_multiple.js]
[browser_ext_tabs_move_window_pinned.js]
[browser_ext_tabs_onHighlighted.js]
[browser_ext_tabs_reload.js]
[browser_ext_windows_create.js]
tags = fullscreen
[browser_ext_windows_create_tabId.js]
+[browser_ext_windows_events.js]
[browser_ext_windows.js]
[browser_ext_windows_size.js]
skip-if = os == 'mac' # Fails when windows are randomly opened in fullscreen mode
[browser_ext_windows_update.js]
tags = fullscreen
[browser_ext_contentscript_connect.js]
[browser_ext_tab_runtimeConnect.js]
[browser_ext_topwindowid.js]
new file mode 100644
--- /dev/null
+++ b/browser/components/extensions/test/browser/browser_ext_windows_events.js
@@ -0,0 +1,39 @@
+/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set sts=2 sw=2 et tw=80: */
+"use strict";
+
+add_task(function* testWindowsEvents() {
+ function background() {
+ browser.windows.onCreated.addListener(function listener(window) {
+ browser.windows.onCreated.removeListener(listener);
+ browser.test.assertTrue(Number.isInteger(window.id),
+ "Window object's id is an integer");
+ browser.test.assertEq("normal", window.type,
+ "Window object returned with the correct type");
+ browser.test.sendMessage("window-created", window.id);
+ });
+
+ browser.windows.onRemoved.addListener(function listener(windowId) {
+ browser.windows.onRemoved.removeListener(listener);
+ browser.test.assertTrue(Number.isInteger(windowId),
+ "windowId is an integer");
+ browser.test.sendMessage(`window-removed-${windowId}`);
+ browser.test.notifyPass("windows.events");
+ });
+
+ browser.test.sendMessage("ready");
+ }
+
+ let extension = ExtensionTestUtils.loadExtension({
+ background: `(${background})()`,
+ });
+
+ yield extension.startup();
+ yield extension.awaitMessage("ready");
+ let win1 = yield BrowserTestUtils.openNewBrowserWindow();
+ let windowId = yield extension.awaitMessage("window-created");
+ yield BrowserTestUtils.closeWindow(win1);
+ yield extension.awaitMessage(`window-removed-${windowId}`);
+ yield extension.awaitFinish("windows.events");
+ yield extension.unload();
+});