gecko/browser/components/sessionstore/test/browser_swapDocShells.js
Tim Taubert 35960eba28 Bug 936911 - Export TabState.onSwapDocShells() in TabState.jsm r=billm
From adcf642ed40bccc0b6fed3232bcc733228d7b7da Mon Sep 17 00:00:00 2001
2013-11-10 18:53:03 +01:00

40 lines
1.2 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
function test() {
waitForExplicitFinish();
Task.spawn(function task() {
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");
let browser = win.gBrowser.browsers[1];
yield promiseBrowserLoaded(browser);
is(browser.currentURI.spec, "about:mozilla", "tab was duplicated");
win.close();
}).then(finish);
}
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));
}