Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

"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();
if (
browser.contentDocument.readyState === "complete" &&
browser.currentURI.spec === url
) {
return promise;
}
return promise.then(() => promiseBrowserHasURL(browser, url));
}