gecko-dev/browser/base/content/test/tabs/browser_navigatePinnedTab.js
Razvan Maries 10425eddfc Backed out 7 changesets (bug 1658084, bug 1671983) for perma failures on browser_async_remove_tab.js and browser_e10s_chrome_process.js. CLOSED TREE
Backed out changeset 2e6309c1cdbd (bug 1658084)
Backed out changeset 99aafd9304ef (bug 1671983)
Backed out changeset 80280b85280a (bug 1671983)
Backed out changeset 008db2659002 (bug 1671983)
Backed out changeset 32bd45c7fe3a (bug 1671983)
Backed out changeset 56e227e6580c (bug 1671983)
Backed out changeset a404f809f79d (bug 1671983)
2020-11-04 04:23:47 +02:00

67 lines
2 KiB
JavaScript

/* 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,
"http://example.com/"
);
await BrowserTestUtils.loadURI(appTab.linkedBrowser, "http://example.com/");
info("Started loading example.com");
await pageLoadPromise;
info("Loaded example.com");
let newTabPromise = BrowserTestUtils.waitForNewTab(
gBrowser,
"http://example.org/"
);
await SpecialPowers.spawn(browser, [], async function() {
let link = content.document.createElement("a");
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);
});