summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/tabcrashed/browser_shown.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/tabcrashed/browser_shown.js')
-rw-r--r--browser/base/content/test/tabcrashed/browser_shown.js203
1 files changed, 0 insertions, 203 deletions
diff --git a/browser/base/content/test/tabcrashed/browser_shown.js b/browser/base/content/test/tabcrashed/browser_shown.js
deleted file mode 100644
index d09d9438f..000000000
--- a/browser/base/content/test/tabcrashed/browser_shown.js
+++ /dev/null
@@ -1,203 +0,0 @@
-"use strict";
-
-const SERVER_URL = "http://example.com/browser/toolkit/crashreporter/test/browser/crashreport.sjs";
-const PAGE = "data:text/html,<html><body>A%20regular,%20everyday,%20normal%20page.";
-const COMMENTS = "Here's my test comment!";
-const EMAIL = "foo@privacy.com";
-
-/**
- * Sets up the browser to send crash reports to the local crash report
- * testing server.
- */
-add_task(function* setup() {
- // The test harness sets MOZ_CRASHREPORTER_NO_REPORT, which disables crash
- // reports. This test needs them enabled. The test also needs a mock
- // report server, and fortunately one is already set up by toolkit/
- // crashreporter/test/Makefile.in. Assign its URL to MOZ_CRASHREPORTER_URL,
- // which CrashSubmit.jsm uses as a server override.
- let env = Cc["@mozilla.org/process/environment;1"]
- .getService(Components.interfaces.nsIEnvironment);
- let noReport = env.get("MOZ_CRASHREPORTER_NO_REPORT");
- let serverUrl = env.get("MOZ_CRASHREPORTER_URL");
- env.set("MOZ_CRASHREPORTER_NO_REPORT", "");
- env.set("MOZ_CRASHREPORTER_URL", SERVER_URL);
-
- // On debug builds, crashing tabs results in much thinking, which
- // slows down the test and results in intermittent test timeouts,
- // so we'll pump up the expected timeout for this test.
- requestLongerTimeout(2);
-
- registerCleanupFunction(function() {
- env.set("MOZ_CRASHREPORTER_NO_REPORT", noReport);
- env.set("MOZ_CRASHREPORTER_URL", serverUrl);
- });
-});
-
-/**
- * This function returns a Promise that resolves once the following
- * actions have taken place:
- *
- * 1) A new tab is opened up at PAGE
- * 2) The tab is crashed
- * 3) The about:tabcrashed page's fields are set in accordance with
- * fieldValues
- * 4) The tab is restored
- * 5) A crash report is received from the testing server
- * 6) Any tab crash prefs that were overwritten are reset
- *
- * @param fieldValues
- * An Object describing how to set the about:tabcrashed
- * fields. The following properties are accepted:
- *
- * comments (String)
- * The comments to put in the comment textarea
- * email (String)
- * The email address to put in the email address input
- * emailMe (bool)
- * The checked value of the "Email me" checkbox
- * includeURL (bool)
- * The checked value of the "Include URL" checkbox
- *
- * If any of these fields are missing, the defaults from
- * the user preferences are used.
- * @param expectedExtra
- * An Object describing the expected values that the submitted
- * crash report's extra data should contain.
- * @returns Promise
- */
-function crashTabTestHelper(fieldValues, expectedExtra) {
- return BrowserTestUtils.withNewTab({
- gBrowser,
- url: PAGE,
- }, function*(browser) {
- let prefs = TabCrashHandler.prefs;
- let originalSendReport = prefs.getBoolPref("sendReport");
- let originalEmailMe = prefs.getBoolPref("emailMe");
- let originalIncludeURL = prefs.getBoolPref("includeURL");
- let originalEmail = prefs.getCharPref("email");
-
- let tab = gBrowser.getTabForBrowser(browser);
- yield BrowserTestUtils.crashBrowser(browser);
- let doc = browser.contentDocument;
-
- // Since about:tabcrashed will run in the parent process, we can safely
- // manipulate its DOM nodes directly
- let comments = doc.getElementById("comments");
- let email = doc.getElementById("email");
- let emailMe = doc.getElementById("emailMe");
- let includeURL = doc.getElementById("includeURL");
-
- if (fieldValues.hasOwnProperty("comments")) {
- comments.value = fieldValues.comments;
- }
-
- if (fieldValues.hasOwnProperty("email")) {
- email.value = fieldValues.email;
- }
-
- if (fieldValues.hasOwnProperty("emailMe")) {
- emailMe.checked = fieldValues.emailMe;
- }
-
- if (fieldValues.hasOwnProperty("includeURL")) {
- includeURL.checked = fieldValues.includeURL;
- }
-
- let crashReport = promiseCrashReport(expectedExtra);
- let restoreTab = browser.contentDocument.getElementById("restoreTab");
- restoreTab.click();
- yield BrowserTestUtils.waitForEvent(tab, "SSTabRestored");
- yield crashReport;
-
- // Submitting the crash report may have set some prefs regarding how to
- // send tab crash reports. Let's reset them for the next test.
- prefs.setBoolPref("sendReport", originalSendReport);
- prefs.setBoolPref("emailMe", originalEmailMe);
- prefs.setBoolPref("includeURL", originalIncludeURL);
- prefs.setCharPref("email", originalEmail);
- });
-}
-
-/**
- * Tests what we send with the crash report by default. By default, we do not
- * send any comments, the URL of the crashing page, or the email address of
- * the user.
- */
-add_task(function* test_default() {
- yield crashTabTestHelper({}, {
- "Comments": null,
- "URL": "",
- "Email": null,
- });
-});
-
-/**
- * Test just sending a comment.
- */
-add_task(function* test_just_a_comment() {
- yield crashTabTestHelper({
- comments: COMMENTS,
- }, {
- "Comments": COMMENTS,
- "URL": "",
- "Email": null,
- });
-});
-
-/**
- * Test that we don't send email if emailMe is unchecked
- */
-add_task(function* test_no_email() {
- yield crashTabTestHelper({
- email: EMAIL,
- emailMe: false,
- }, {
- "Comments": null,
- "URL": "",
- "Email": null,
- });
-});
-
-/**
- * Test that we can send an email address if emailMe is checked
- */
-add_task(function* test_yes_email() {
- yield crashTabTestHelper({
- email: EMAIL,
- emailMe: true,
- }, {
- "Comments": null,
- "URL": "",
- "Email": EMAIL,
- });
-});
-
-/**
- * Test that we will send the URL of the page if includeURL is checked.
- */
-add_task(function* test_send_URL() {
- yield crashTabTestHelper({
- includeURL: true,
- }, {
- "Comments": null,
- "URL": PAGE,
- "Email": null,
- });
-});
-
-/**
- * Test that we can send comments, the email address, and the URL
- */
-add_task(function* test_send_all() {
- yield crashTabTestHelper({
- includeURL: true,
- emailMe: true,
- email: EMAIL,
- comments: COMMENTS,
- }, {
- "Comments": COMMENTS,
- "URL": PAGE,
- "Email": EMAIL,
- });
-});
-