Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

/* Any copyright is dedicated to the Public Domain.
"use strict";
async function checkLoginDisplayed(browser, testGuid) {
await SpecialPowers.spawn(browser, [testGuid], async function (guid) {
let loginList = Cu.waiveXrays(content.document.querySelector("login-list"));
let loginFound = await ContentTaskUtils.waitForCondition(() => {
return (
loginList._loginGuidsSortedOrder.length == 1 &&
loginList._loginGuidsSortedOrder[0] == guid
);
}, "Waiting for login to be displayed in page");
Assert.ok(loginFound, "Confirming that login is displayed in page");
});
}
add_task(async function () {
TEST_LOGIN1 = await addLogin(TEST_LOGIN1);
registerCleanupFunction(() => {
Services.logins.removeAllUserFacingLogins();
});
const testGuid = TEST_LOGIN1.guid;
const tab = BrowserTestUtils.addTab(gBrowser, "about:logins");
const browser = gBrowser.getBrowserForTab(tab);
await BrowserTestUtils.browserLoaded(browser);
await checkLoginDisplayed(browser, testGuid);
BrowserTestUtils.removeTab(tab);
info("Adding a lazy about:logins tab...");
let lazyTab = BrowserTestUtils.addTab(gBrowser, "about:logins", {
createLazyBrowser: true,
});
Assert.equal(lazyTab.linkedPanel, null, "Tab is lazy");
let tabLoaded = new Promise(resolve => {
gBrowser.addTabsProgressListener({
async onLocationChange(aBrowser) {
if (lazyTab.linkedBrowser == aBrowser) {
gBrowser.removeTabsProgressListener(this);
await Promise.resolve();
resolve();
}
},
});
});
info("Switching tab to cause it to get restored");
const browserLoaded = BrowserTestUtils.browserLoaded(lazyTab.linkedBrowser);
await BrowserTestUtils.switchTab(gBrowser, lazyTab);
await tabLoaded;
await browserLoaded;
let lazyBrowser = lazyTab.linkedBrowser;
await checkLoginDisplayed(lazyBrowser, testGuid);
BrowserTestUtils.removeTab(lazyTab);
});