browser/components/sessionstore/test/browser_swapDocShells.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:2f978dd22639
1 /* Any copyright is dedicated to the Public Domain.
2 * http://creativecommons.org/publicdomain/zero/1.0/ */
3
4 function test() {
5 waitForExplicitFinish();
6
7 Task.spawn(function task() {
8 let tab = gBrowser.selectedTab = gBrowser.addTab("about:mozilla");
9 yield promiseBrowserLoaded(gBrowser.selectedBrowser);
10
11 let win = gBrowser.replaceTabWithWindow(tab);
12 yield promiseDelayedStartupFinished(win);
13 yield promiseBrowserHasURL(win.gBrowser.browsers[0], "about:mozilla");
14
15 win.duplicateTabIn(win.gBrowser.selectedTab, "tab");
16 let browser = win.gBrowser.browsers[1];
17 yield promiseBrowserLoaded(browser);
18 is(browser.currentURI.spec, "about:mozilla", "tab was duplicated");
19
20 win.close();
21 }).then(finish);
22 }
23
24 function promiseDelayedStartupFinished(win) {
25 let deferred = Promise.defer();
26 whenDelayedStartupFinished(win, deferred.resolve);
27 return deferred.promise;
28 }
29
30 function promiseBrowserHasURL(browser, url) {
31 let promise = Promise.resolve();
32
33 if (browser.contentDocument.readyState === "complete" &&
34 browser.currentURI.spec === url) {
35 return promise;
36 }
37
38 return promise.then(() => promiseBrowserHasURL(browser, url));
39 }

mercurial