65 lines
2 KiB
JavaScript
65 lines
2 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/
|
|
*/
|
|
|
|
// Enable the collection (during test) for all products so even products
|
|
// that don't collect the data will be able to run the test without failure.
|
|
Services.prefs.setBoolPref(
|
|
"toolkit.telemetry.testing.overrideProductsCheck",
|
|
true
|
|
);
|
|
|
|
add_setup(async function test_setup() {
|
|
// Addon manager needs a profile directory
|
|
do_get_profile();
|
|
});
|
|
|
|
add_task(async function test_register_twice_fails() {
|
|
TelemetryController.registerSyncPingShutdown(() => {});
|
|
Assert.throws(
|
|
() => TelemetryController.registerSyncPingShutdown(() => {}),
|
|
/The sync ping shutdown handler is already registered./
|
|
);
|
|
await TelemetryController.testReset();
|
|
});
|
|
|
|
add_task(async function test_reset_clears_handler() {
|
|
await TelemetryController.testSetup();
|
|
TelemetryController.registerSyncPingShutdown(() => {});
|
|
await TelemetryController.testReset();
|
|
// If this works the reset must have cleared it.
|
|
TelemetryController.registerSyncPingShutdown(() => {});
|
|
await TelemetryController.testReset();
|
|
});
|
|
|
|
add_task(async function test_shutdown_handler_submits() {
|
|
let handlerCalled = false;
|
|
await TelemetryController.testSetup();
|
|
TelemetryController.registerSyncPingShutdown(() => {
|
|
handlerCalled = true;
|
|
// and submit a ping.
|
|
let ping = {
|
|
why: "shutdown",
|
|
};
|
|
TelemetryController.submitExternalPing("sync", ping);
|
|
});
|
|
|
|
await TelemetryController.testShutdown();
|
|
Assert.ok(handlerCalled);
|
|
await TelemetryController.testReset();
|
|
});
|
|
|
|
add_task(async function test_shutdown_handler_no_submit() {
|
|
let handlerCalled = false;
|
|
await TelemetryController.testSetup();
|
|
TelemetryController.registerSyncPingShutdown(() => {
|
|
handlerCalled = true;
|
|
// but don't submit a ping.
|
|
});
|
|
|
|
await TelemetryController.testShutdown();
|
|
Assert.ok(handlerCalled);
|
|
});
|
|
|
|
// NB: The last test in this file *must not* restart TelemetryController, or it
|
|
// will cause intermittent timeouts for this test.
|