summaryrefslogtreecommitdiffstats
path: root/dom/base/test/browser_bug1691214.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/base/test/browser_bug1691214.js')
-rw-r--r--dom/base/test/browser_bug1691214.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/dom/base/test/browser_bug1691214.js b/dom/base/test/browser_bug1691214.js
new file mode 100644
index 0000000000..26167b6f73
--- /dev/null
+++ b/dom/base/test/browser_bug1691214.js
@@ -0,0 +1,53 @@
+/* -*- Mode: JavaScript; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+const BASE_URL = "http://mochi.test:8888/browser/dom/base/test/";
+
+add_task(async function() {
+ await BrowserTestUtils.withNewTab(
+ BASE_URL + "file_bug1691214.html",
+ async function(browser) {
+ let win;
+
+ {
+ let newWindow = BrowserTestUtils.domWindowOpenedAndLoaded();
+ let delayedStartupPromise = BrowserTestUtils.waitForNewWindow();
+
+ await BrowserTestUtils.synthesizeMouseAtCenter("#link-1", {}, browser);
+ win = await newWindow;
+ ok(win, "First navigation should've opened the new window");
+ // New windows get focused after the first paint, see bug 1262946
+ await BrowserTestUtils.waitForContentEvent(
+ win.gBrowser.selectedBrowser,
+ "MozAfterPaint"
+ );
+ await delayedStartupPromise;
+ is(Services.focus.focusedWindow, win, "New window should be focused");
+ }
+
+ {
+ let focusBack = BrowserTestUtils.waitForEvent(window, "focus", true);
+ window.focus();
+ await focusBack;
+ is(Services.focus.focusedWindow, window, "should focus back");
+ }
+
+ {
+ let focus = BrowserTestUtils.waitForEvent(win, "focus", true);
+ await BrowserTestUtils.synthesizeMouseAtCenter("#link-2", {}, browser);
+ await focus;
+ }
+
+ is(
+ Services.focus.focusedWindow,
+ win,
+ "Existing window should've been targeted and focused"
+ );
+
+ win.close();
+ }
+ );
+});