diff options
Diffstat (limited to 'browser/base/content/test/tabs/browser_navigatePinnedTab.js')
-rw-r--r-- | browser/base/content/test/tabs/browser_navigatePinnedTab.js | 71 |
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); +}); |