--- a/toolkit/components/extensions/test/xpcshell/test_ext_telemetry.js
+++ b/toolkit/components/extensions/test/xpcshell/test_ext_telemetry.js
@@ -1,11 +1,12 @@
"use strict";
ChromeUtils.import("resource://gre/modules/TelemetryArchive.jsm", this);
+ChromeUtils.import("resource://gre/modules/TelemetryUtils.jsm", this);
function createExtension(backgroundScript, permissions) {
let extensionData = {
background: backgroundScript,
manifest: {permissions},
};
return ExtensionTestUtils.loadExtension(extensionData);
}
@@ -323,8 +324,38 @@ add_task(async function test_telemetry_s
},
doneSignal: "submit_ping",
});
let pings = await TelemetryArchive.promiseArchivedPingList();
equal(pings.length, 1);
equal(pings[0].type, "webext-test");
});
+
+add_task(async function test_telemetry_can_upload_enabled() {
+ Services.prefs.setBoolPref(TelemetryUtils.Preferences.FhrUploadEnabled, true);
+
+ await run({
+ backgroundScript: async () => {
+ const result = await browser.telemetry.canUpload();
+ browser.test.assertTrue(result);
+ browser.test.notifyPass("can_upload_enabled");
+ },
+ doneSignal: "can_upload_enabled",
+ });
+
+ Services.prefs.clearUserPref(TelemetryUtils.Preferences.FhrUploadEnabled);
+});
+
+add_task(async function test_telemetry_can_upload_disabled() {
+ Services.prefs.setBoolPref(TelemetryUtils.Preferences.FhrUploadEnabled, false);
+
+ await run({
+ backgroundScript: async () => {
+ const result = await browser.telemetry.canUpload();
+ browser.test.assertFalse(result);
+ browser.test.notifyPass("can_upload_disabled");
+ },
+ doneSignal: "can_upload_disabled",
+ });
+
+ Services.prefs.clearUserPref(TelemetryUtils.Preferences.FhrUploadEnabled);
+});