summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/tabs/browser_file_to_http_named_popup.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/tabs/browser_file_to_http_named_popup.js')
-rw-r--r--browser/base/content/test/tabs/browser_file_to_http_named_popup.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/browser/base/content/test/tabs/browser_file_to_http_named_popup.js b/browser/base/content/test/tabs/browser_file_to_http_named_popup.js
new file mode 100644
index 0000000000..57e5ec7ad3
--- /dev/null
+++ b/browser/base/content/test/tabs/browser_file_to_http_named_popup.js
@@ -0,0 +1,60 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
+
+const TEST_FILE = fileURL("dummy_page.html");
+const TEST_HTTP = httpURL("dummy_page.html");
+
+// Test for Bug 1634252
+add_task(async function () {
+ await BrowserTestUtils.withNewTab(TEST_FILE, async function (fileBrowser) {
+ info("Tab ready");
+
+ async function summonPopup(firstRun) {
+ var winPromise;
+ if (firstRun) {
+ winPromise = BrowserTestUtils.waitForNewWindow({
+ url: TEST_HTTP,
+ });
+ }
+
+ await SpecialPowers.spawn(
+ fileBrowser,
+ [TEST_HTTP, firstRun],
+ (target, firstRun_) => {
+ var win = content.open(target, "named", "width=400,height=400");
+ win.focus();
+ ok(win, "window.open was successful");
+ if (firstRun_) {
+ content.document.firstWindow = win;
+ } else {
+ content.document.otherWindow = win;
+ }
+ }
+ );
+
+ if (firstRun) {
+ // We should only wait for the window the first time, because only the
+ // later times no new window should be created.
+ info("Waiting for new window");
+ var win = await winPromise;
+ ok(win, "Got a window");
+ }
+ }
+
+ info("Opening window");
+ await summonPopup(true);
+ info("Opening window again");
+ await summonPopup(false);
+
+ await SpecialPowers.spawn(fileBrowser, [], () => {
+ ok(content.document.firstWindow, "Window is non-null");
+ is(
+ content.document.otherWindow,
+ content.document.firstWindow,
+ "Windows are the same"
+ );
+
+ content.document.firstWindow.close();
+ });
+ });
+});