fune/browser/base/content/test/general/browser_bug623893.js
Blake Kaplan f2b1e8dbda Bug 1307015 - Remove CPOWs from browser_bug623893.js r=felipe
It took me a little bit to understand what the test was doing. It was actually
using the default tab to navigate to three pages. Then, it duplicated it
immediatedly closed that tab. Finally, it duplicated the original tab, then
duplicated the duplicate before closing both of those tabs.

MozReview-Commit-ID: 85eY3FhZniA
2017-02-21 14:50:54 -08:00

37 lines
1.3 KiB
JavaScript

add_task(function* test() {
yield BrowserTestUtils.withNewTab("data:text/plain;charset=utf-8,1", function* (browser) {
BrowserTestUtils.loadURI(browser, "data:text/plain;charset=utf-8,2");
yield BrowserTestUtils.browserLoaded(browser);
BrowserTestUtils.loadURI(browser, "data:text/plain;charset=utf-8,3");
yield BrowserTestUtils.browserLoaded(browser);
yield duplicate(0, "maintained the original index");
yield BrowserTestUtils.removeTab(gBrowser.selectedTab);
yield duplicate(-1, "went back");
yield duplicate(1, "went forward");
yield BrowserTestUtils.removeTab(gBrowser.selectedTab);
yield BrowserTestUtils.removeTab(gBrowser.selectedTab);
});
});
function promiseGetIndex(browser) {
return ContentTask.spawn(browser, null, function() {
let shistory = docShell.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsISHistory);
return shistory.index;
});
}
let duplicate = Task.async(function* (delta, msg, cb) {
var startIndex = yield promiseGetIndex(gBrowser.selectedBrowser);
duplicateTabIn(gBrowser.selectedTab, "tab", delta);
let tab = gBrowser.selectedTab;
yield BrowserTestUtils.waitForEvent(tab, "SSTabRestored");
let endIndex = yield promiseGetIndex(gBrowser.selectedBrowser);
is(endIndex, startIndex + delta, msg);
});