summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/tabs/browser_navigatePinnedTab.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/tabs/browser_navigatePinnedTab.js')
-rw-r--r--browser/base/content/test/tabs/browser_navigatePinnedTab.js71
1 files changed, 71 insertions, 0 deletions
diff --git a/browser/base/content/test/tabs/browser_navigatePinnedTab.js b/browser/base/content/test/tabs/browser_navigatePinnedTab.js
new file mode 100644
index 0000000000..f1828af9c6
--- /dev/null
+++ b/browser/base/content/test/tabs/browser_navigatePinnedTab.js
@@ -0,0 +1,71 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+add_task(async function () {
+ // Test that changing the URL in a pinned tab works correctly
+
+ let TEST_LINK_INITIAL = "about:mozilla";
+ let TEST_LINK_CHANGED = "about:support";
+
+ let appTab = BrowserTestUtils.addTab(gBrowser, TEST_LINK_INITIAL);
+ let browser = appTab.linkedBrowser;
+ await BrowserTestUtils.browserLoaded(browser);
+
+ gBrowser.pinTab(appTab);
+ is(appTab.pinned, true, "Tab was successfully pinned");
+
+ let initialTabsNo = gBrowser.tabs.length;
+
+ gBrowser.selectedTab = appTab;
+ gURLBar.focus();
+ gURLBar.value = TEST_LINK_CHANGED;
+
+ gURLBar.goButton.click();
+ await BrowserTestUtils.browserLoaded(browser);
+
+ is(
+ appTab.linkedBrowser.currentURI.spec,
+ TEST_LINK_CHANGED,
+ "New page loaded in the app tab"
+ );
+ is(gBrowser.tabs.length, initialTabsNo, "No additional tabs were opened");
+
+ // Now check that opening a link that does create a new tab works,
+ // and also that it nulls out the opener.
+ let pageLoadPromise = BrowserTestUtils.browserLoaded(
+ appTab.linkedBrowser,
+ false,
+ // eslint-disable-next-line @microsoft/sdl/no-insecure-url
+ "http://example.com/"
+ );
+ // eslint-disable-next-line @microsoft/sdl/no-insecure-url
+ BrowserTestUtils.loadURIString(appTab.linkedBrowser, "http://example.com/");
+ info("Started loading example.com");
+ await pageLoadPromise;
+ info("Loaded example.com");
+ let newTabPromise = BrowserTestUtils.waitForNewTab(
+ gBrowser,
+ // eslint-disable-next-line @microsoft/sdl/no-insecure-url
+ "http://example.org/"
+ );
+ await SpecialPowers.spawn(browser, [], async function () {
+ let link = content.document.createElement("a");
+ // eslint-disable-next-line @microsoft/sdl/no-insecure-url
+ link.href = "http://example.org/";
+ content.document.body.appendChild(link);
+ link.click();
+ });
+ info("Created & clicked link");
+ let extraTab = await newTabPromise;
+ info("Got a new tab");
+ await SpecialPowers.spawn(extraTab.linkedBrowser, [], async function () {
+ is(content.opener, null, "No opener should be available");
+ });
+ BrowserTestUtils.removeTab(extraTab);
+});
+
+registerCleanupFunction(function () {
+ gBrowser.removeTab(gBrowser.selectedTab);
+});