Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test gets skipped with pattern: os == 'android'
- Manifest: toolkit/profile/test/xpcshell/xpcshell.toml
/* Any copyright is dedicated to the Public Domain.
// Verifies that if multiple profiles match the path then we fail to incrementally flush
add_task(
{
skip_if: () => !AppConstants.MOZ_SELECTABLE_PROFILES,
},
async () => {
let hash = xreDirProvider.getInstallHash();
let defaultProfile = makeRandomProfileDir("default");
let otherProfile = makeRandomProfileDir("other");
let absoluteProfile = gProfD.clone();
absoluteProfile.append("absolute");
absoluteProfile.createUnique(Ci.nsIFile.DIRECTORY_TYPE, 0o755);
let profilesIni = {
profiles: [
{
name: "default1",
path: defaultProfile.leafName,
default: true,
},
{
name: "default2",
path: defaultProfile.leafName,
default: false,
},
],
installs: {
[hash]: {
default: defaultProfile.leafName,
},
},
};
writeProfilesIni(profilesIni);
let service = getProfileService();
let { profile } = selectStartupProfile(["-P", "default1"]);
Assert.equal(
profile.name,
"default1",
"Should have selected the profile based on the command line"
);
// Attempt to change the root dir.
profile.rootDir = otherProfile;
// This fails because there are multiple profiles with the same path, so we can't be sure which one to update.
await Assert.rejects(
service.asyncFlushCurrentProfile(),
/NS_ERROR_UNEXPECTED/,
"Should have failed to flush the profile because of the duplicate path"
);
}
);