Bug 1261949 - Complete test coverage for browser.windows events, r?kmag draft
authorbsilverberg <bsilverberg@mozilla.com>
Mon, 04 Apr 2016 18:11:42 -0400
changeset 348653 1215d2a75f779b0f3d0cee9411140d6b8728a09d
parent 348652 16ad4d244d7d34af26301d63862b00a975eac294
child 517884 8d7f8bd0aa55e4dec336e22519fa305439c397f2
push id14864
push userbmo:bob.silverberg@gmail.com
push dateThu, 07 Apr 2016 20:44:31 +0000
reviewerskmag
bugs1261949
milestone48.0a1
Bug 1261949 - Complete test coverage for browser.windows events, r?kmag Add coverage for: * browser.windows.onCreated * browser.windows.onRemoved MozReview-Commit-ID: FMhcNBnijce
browser/components/extensions/test/browser/browser.ini
browser/components/extensions/test/browser/browser_ext_windows_events.js
--- 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();
+});