blob: 839f060e73bca00823c0f3de9d34b2987ff6d90c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
"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));
}
|