fune/browser/components/sessionstore/test/browser_swapDocShells.js
Mark Banner 01008c7d57 Bug 1412778 - Enable ESLint rule no-cpows-in-tests across the whole tree. r=florian
MozReview-Commit-ID: 8pidN7x6MYh

--HG--
extra : rebase_source : 6a0d6800091231fc1535223bd7fc6df0ba40d47b
2017-10-30 09:55:39 +00:00

36 lines
1.1 KiB
JavaScript

"use strict";
add_task(async function() {
let tab = gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser, "about:mozilla");
await promiseBrowserLoaded(gBrowser.selectedBrowser);
let win = gBrowser.replaceTabWithWindow(tab);
await promiseDelayedStartupFinished(win);
await promiseBrowserHasURL(win.gBrowser.browsers[0], "about:mozilla");
win.duplicateTabIn(win.gBrowser.selectedTab, "tab");
await promiseTabRestored(win.gBrowser.tabs[1]);
let browser = win.gBrowser.browsers[1];
is(browser.currentURI.spec, "about:mozilla", "tab was duplicated");
await BrowserTestUtils.closeWindow(win);
});
function promiseDelayedStartupFinished(win) {
return new Promise(resolve => {
whenDelayedStartupFinished(win, resolve);
});
}
function promiseBrowserHasURL(browser, url) {
let promise = Promise.resolve();
// eslint-disable-next-line mozilla/no-cpows-in-tests
if (browser.contentDocument.readyState === "complete" &&
browser.currentURI.spec === url) {
return promise;
}
return promise.then(() => promiseBrowserHasURL(browser, url));
}