Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
let { ResetProfile } = ChromeUtils.importESModule(
);
// For this test to work properly, this profile actually needs to be
// "reset-able", which requires that it be recognized by the profile service
add_setup(async function () {
let profileDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile);
let profileName = profileDirectory.leafName;
let profileService = Cc["@mozilla.org/toolkit/profile-service;1"].getService(
Ci.nsIToolkitProfileService
);
let createdProfile = profileService.createProfile(
profileDirectory,
profileName
);
profileService.flush();
registerCleanupFunction(async function cleanup() {
// Pass false to remove it from the profile service without deleting files.
createdProfile.remove(false);
});
});
async function test_reset_disabled({ disabled }) {
is(
ResetProfile.resetSupported(),
!disabled,
"Reset should only be supported if policy has not been applied"
);
is(
Services.prefs.getBoolPref("browser.disableResetPrompt", undefined),
disabled,
"Reset prompt should only be shown if policy has not been applied"
);
is(
Services.prefs.prefIsLocked("browser.disableResetPrompt"),
disabled,
"Reset prompt pref should be locked if the policy has been applied"
);
let tab = await BrowserTestUtils.openNewForegroundTab(
gBrowser,
"about:support"
);
await SpecialPowers.spawn(
tab.linkedBrowser,
[{ disabled }],
async function ({
// eslint-disable-next-line no-shadow
disabled,
}) {
let resetBox = content.document.getElementById("reset-box");
let elementStyle = content.window.getComputedStyle(resetBox);
let expectedDisplayValue = disabled ? "none" : "block";
is(
elementStyle.display,
expectedDisplayValue,
"about:support Reset button box should be hidden"
);
}
);
await BrowserTestUtils.removeTab(tab);
}
add_task(async function test_initial_conditions() {
await test_reset_disabled({ disabled: false });
});
add_task(async function test_policy_disable_reset() {
await setupPolicyEngineWithJson({
policies: {
DisableProfileRefresh: true,
},
});
await test_reset_disabled({ disabled: true });
});