summaryrefslogtreecommitdiffstats
path: root/toolkit/crashreporter/test/unit_ipc/test_content_annotation.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/crashreporter/test/unit_ipc/test_content_annotation.js')
-rw-r--r--toolkit/crashreporter/test/unit_ipc/test_content_annotation.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/toolkit/crashreporter/test/unit_ipc/test_content_annotation.js b/toolkit/crashreporter/test/unit_ipc/test_content_annotation.js
new file mode 100644
index 0000000000..badc15c27d
--- /dev/null
+++ b/toolkit/crashreporter/test/unit_ipc/test_content_annotation.js
@@ -0,0 +1,33 @@
+/* import-globals-from ../unit/head_crashreporter.js */
+load("../unit/head_crashreporter.js");
+
+add_task(async function run_test() {
+ if (!("@mozilla.org/toolkit/crash-reporter;1" in Cc)) {
+ dump(
+ "INFO | test_content_annotation.js | Can't test crashreporter in a non-libxul build.\n"
+ );
+ return;
+ }
+
+ // TelemetrySession setup will trigger the session annotation
+ let { TelemetryController } = ChromeUtils.importESModule(
+ "resource://gre/modules/TelemetryController.sys.mjs"
+ );
+ TelemetryController.testSetup();
+
+ // Try crashing with a runtime abort
+ await do_content_crash(
+ function () {
+ crashType = CrashTestUtils.CRASH_MOZ_CRASH;
+ crashReporter.annotateCrashReport("TestKey", "TestValue");
+ crashReporter.appendAppNotesToCrashReport("!!!foo!!!");
+ },
+ function (mdump, extra) {
+ Assert.equal(extra.TestKey, "TestValue");
+ Assert.ok("ProcessType" in extra);
+ Assert.ok("StartupTime" in extra);
+ Assert.ok("TelemetrySessionId" in extra);
+ Assert.notEqual(extra.Notes.indexOf("!!!foo!!!"), -1);
+ }
+ );
+});