gecko-dev/browser/base/content/test/tabcrashed/browser_withoutDump.js
Mike Conley a792e520a7 Bug 1340842 - Allow BrowserTestUtils.removeTab to pass options along to tabbrowser's removeTab method. r=mossop
There were options already being passed to BrowserTestUtils.removeTab, with only
a single property being observed, "dontRemove". This caused BrowserTestUtils.removeTab
to return a Promise once a tab is removed, but didn't actually remove the tab (as the
calling test would be responsible for that themselves). This patch removes that option,
and adds a method to BrowserTestUtils called tabRemoved to use for that case instead.

The options being passed to removeTab are now forwarded along directly to tabbrowser's
removeTab method.

MozReview-Commit-ID: JzfZuoZmlJ0

--HG--
extra : rebase_source : 71afc1f82ecd979b101a9f1a1ef1766185eefd75
2017-03-17 09:59:38 -04:00

44 lines
1.3 KiB
JavaScript

"use strict";
const PAGE = "data:text/html,<html><body>A%20regular,%20everyday,%20normal%20page.";
/**
* Monkey patches TabCrashHandler.getDumpID to return null in order to test
* about:tabcrashed when a dump is not available.
*/
add_task(function* setup() {
let originalGetDumpID = TabCrashHandler.getDumpID;
TabCrashHandler.getDumpID = function(browser) { return null; };
registerCleanupFunction(() => {
TabCrashHandler.getDumpID = originalGetDumpID;
});
});
/**
* Tests tab crash page when a dump is not available.
*/
add_task(function* test_without_dump() {
return BrowserTestUtils.withNewTab({
gBrowser,
url: PAGE,
}, function*(browser) {
let tab = gBrowser.getTabForBrowser(browser);
yield BrowserTestUtils.crashBrowser(browser);
let tabRemovedPromise = BrowserTestUtils.tabRemoved(tab);
yield ContentTask.spawn(browser, null, function*() {
let doc = content.document;
Assert.ok(!doc.documentElement.classList.contains("crashDumpAvailable"),
"doesn't have crash dump");
let options = doc.getElementById("options");
Assert.ok(options, "has crash report options");
Assert.ok(options.hidden, "crash report options are hidden");
doc.getElementById("closeTab").click();
});
yield tabRemovedPromise;
});
});