Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test runs only with pattern: os != 'android'
- Manifest: browser/components/tests/unit/xpcshell.toml
/* Any copyright is dedicated to the Public Domain.
"use strict";
const MOZILLAONLINE_INI = `
[Global]
id=MozillaOnline
version=1.0
about=Mozilla Online distribution
[Preferences]
distribution.test.mozillaonline=true
`;
async function setupDistributionDir(iniContent) {
Services.prefs.setBoolPref("distribution.testing.loadFromProfile", true);
let distroDir = gProfD.clone();
distroDir.leafName = "distribution";
await IOUtils.makeDirectory(distroDir.path, { ignoreExisting: true });
let iniFile = distroDir.clone();
iniFile.append("distribution.ini");
await IOUtils.writeUTF8(iniFile.path, iniContent);
}
registerCleanupFunction(async function () {
let folderPath = PathUtils.join(PathUtils.profileDir, "distribution");
await IOUtils.remove(folderPath, { ignoreAbsent: true, recursive: true });
Services.prefs.clearUserPref("distribution.testing.loadFromProfile");
Services.prefs.clearUserPref("distribution.mozillaonline.ignore");
Services.fog.testResetFOG();
});
add_setup(async function () {
do_get_profile();
Services.fog.initializeFOG();
await setupDistributionDir(MOZILLAONLINE_INI);
});
add_task(async function test_mozillaonline_distribution_ignored() {
Services.prefs.setBoolPref("distribution.mozillaonline.ignore", true);
let { DistributionManagement } = ChromeUtils.importESModule(
"resource:///modules/distribution.sys.mjs"
);
DistributionManagement.applyCustomizations();
let defaultBranch = Services.prefs.getDefaultBranch(null);
Assert.throws(
() => defaultBranch.getCharPref("distribution.id"),
/NS_ERROR_UNEXPECTED/,
"distribution.id should not be set for mozillaonline"
);
Assert.throws(
() => defaultBranch.getBoolPref("distribution.test.mozillaonline"),
/NS_ERROR_UNEXPECTED/,
"distribution prefs should not be applied for mozillaonline"
);
Assert.ok(
Glean.distribution.mozillaonlineIgnored.testGetValue(),
"mozillaonline_ignored should be set to true"
);
});