fune/browser/components/sessionstore/test/browser_swapDocShells.js
Mike Conley 8cdd233ac6 Bug 1171708 - Fix SessionStore tests to account for async window flushing. r=billm
--HG--
extra : commitid : GukwXUsbANw
extra : rebase_source : 7fd34f268859887633c39db31504b9237126a55b
extra : source : 32196b22b4544981f5658ce028e7566bff3fbca4
2015-11-16 16:17:29 -05:00

35 lines
1 KiB
JavaScript

"use strict";
add_task(function* () {
let tab = gBrowser.selectedTab = gBrowser.addTab("about:mozilla");
yield promiseBrowserLoaded(gBrowser.selectedBrowser);
let win = gBrowser.replaceTabWithWindow(tab);
yield promiseDelayedStartupFinished(win);
yield promiseBrowserHasURL(win.gBrowser.browsers[0], "about:mozilla");
win.duplicateTabIn(win.gBrowser.selectedTab, "tab");
yield promiseTabRestored(win.gBrowser.tabs[1]);
let browser = win.gBrowser.browsers[1];
is(browser.currentURI.spec, "about:mozilla", "tab was duplicated");
yield BrowserTestUtils.closeWindow(win);
});
function promiseDelayedStartupFinished(win) {
let deferred = Promise.defer();
whenDelayedStartupFinished(win, deferred.resolve);
return deferred.promise;
}
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));
}