Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

/* Any copyright is dedicated to the Public Domain.
"use strict";
const { AppConstants } = ChromeUtils.importESModule(
"resource://gre/modules/AppConstants.sys.mjs"
);
const { StartupTelemetry } = ChromeUtils.importESModule(
"moz-src:///browser/components/StartupTelemetry.sys.mjs"
);
let WindowsLaunchOnLogin;
if (AppConstants.platform == "win") {
({ WindowsLaunchOnLogin } = ChromeUtils.importESModule(
"resource://gre/modules/WindowsLaunchOnLogin.sys.mjs"
));
}
add_setup(function test_setup() {
do_get_profile();
Services.fog.initializeFOG();
});
add_task(async function test_not_supported_on_non_windows() {
if (AppConstants.platform == "win") {
return;
}
Services.fog.testResetFOG();
await StartupTelemetry.launchOnLoginState();
Assert.equal(
Glean.osEnvironment.launchOnLoginState.testGetValue(),
"not_supported",
"Should report not_supported on non-Windows platforms"
);
});
add_task(async function test_enabled() {
if (AppConstants.platform != "win") {
return;
}
Services.fog.testResetFOG();
let original = WindowsLaunchOnLogin.getLaunchOnLoginEnablementDetails;
WindowsLaunchOnLogin.getLaunchOnLoginEnablementDetails = async () => ({
isEnabled: true,
isSupported: true,
isAllowedByPolicy: true,
});
await StartupTelemetry.launchOnLoginState();
Assert.equal(
Glean.osEnvironment.launchOnLoginState.testGetValue(),
"enabled",
"Should report enabled when launch on login is active"
);
WindowsLaunchOnLogin.getLaunchOnLoginEnablementDetails = original;
});
add_task(async function test_disabled() {
if (AppConstants.platform != "win") {
return;
}
Services.fog.testResetFOG();
let original = WindowsLaunchOnLogin.getLaunchOnLoginEnablementDetails;
WindowsLaunchOnLogin.getLaunchOnLoginEnablementDetails = async () => ({
isEnabled: false,
isSupported: true,
isAllowedByPolicy: true,
});
await StartupTelemetry.launchOnLoginState();
Assert.equal(
Glean.osEnvironment.launchOnLoginState.testGetValue(),
"disabled",
"Should report disabled when user has not enabled launch on login"
);
WindowsLaunchOnLogin.getLaunchOnLoginEnablementDetails = original;
});
add_task(async function test_disabled_by_settings() {
if (AppConstants.platform != "win") {
return;
}
Services.fog.testResetFOG();
let original = WindowsLaunchOnLogin.getLaunchOnLoginEnablementDetails;
WindowsLaunchOnLogin.getLaunchOnLoginEnablementDetails = async () => ({
isEnabled: false,
isSupported: true,
isAllowedByPolicy: false,
});
await StartupTelemetry.launchOnLoginState();
Assert.equal(
Glean.osEnvironment.launchOnLoginState.testGetValue(),
"disabled_by_settings",
"Should report disabled_by_settings when OS settings or policy block the feature"
);
WindowsLaunchOnLogin.getLaunchOnLoginEnablementDetails = original;
});
add_task(async function test_error_on_exception() {
if (AppConstants.platform != "win") {
return;
}
Services.fog.testResetFOG();
let original = WindowsLaunchOnLogin.getLaunchOnLoginEnablementDetails;
WindowsLaunchOnLogin.getLaunchOnLoginEnablementDetails = async () => {
throw new Error("simulated enablement details failure");
};
await StartupTelemetry.launchOnLoginState();
Assert.equal(
Glean.osEnvironment.launchOnLoginState.testGetValue(),
"error",
"Should report error when an exception occurs"
);
WindowsLaunchOnLogin.getLaunchOnLoginEnablementDetails = original;
});