summaryrefslogtreecommitdiffstats
path: root/dom/base/test/browser_bug1554070.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/base/test/browser_bug1554070.js')
-rw-r--r--dom/base/test/browser_bug1554070.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/dom/base/test/browser_bug1554070.js b/dom/base/test/browser_bug1554070.js
new file mode 100644
index 0000000000..a5efc17e19
--- /dev/null
+++ b/dom/base/test/browser_bug1554070.js
@@ -0,0 +1,49 @@
+"use strict";
+
+const HTTPS_TEST_ROOT = getRootDirectory(gTestPath).replace(
+ "chrome://mochitests/content",
+ "https://example.com"
+);
+
+const URL0 = HTTPS_TEST_ROOT + "file_bug1554070_1.html";
+const URL1 = HTTPS_TEST_ROOT + "file_bug1554070_2.html";
+const URL2 = "https://example.org/";
+
+add_task(async function () {
+ let tab = await BrowserTestUtils.openNewForegroundTab({
+ gBrowser,
+ waitForLoad: true,
+ });
+
+ let browser = tab.linkedBrowser;
+
+ function click() {
+ return SpecialPowers.spawn(browser, [], () => {
+ let anchor = content.document.querySelector("a");
+ anchor.click();
+ });
+ }
+
+ // Load file_bug1554070_1.html.
+ BrowserTestUtils.loadURIString(browser, URL0);
+ await BrowserTestUtils.browserLoaded(browser, false, URL0);
+ is(gBrowser.currentURI.spec, URL0, "loaded file_bug1554070_1.html");
+
+ // Click the link in file_bug1554070_1.html. It should open
+ // file_bug1554070_2.html in the current tab.
+ await click();
+ await BrowserTestUtils.browserLoaded(browser, false, URL1);
+ is(gBrowser.currentURI.spec, URL1, "loaded file_bug1554070_2.html");
+
+ // Click the link in file_bug1554070_2.html. It should open example.org in
+ // a new tab.
+ await Promise.all([
+ click(),
+ BrowserTestUtils.waitForNewTab(gBrowser, URL2, true),
+ ]);
+ is(gBrowser.tabs.length, 3, "got new tab");
+ is(gBrowser.currentURI.spec, URL2, "loaded example.org");
+
+ BrowserTestUtils.removeTab(gBrowser.selectedTab);
+ BrowserTestUtils.removeTab(tab);
+});