79 lines
2 KiB
JavaScript
79 lines
2 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
/**
|
|
* Tests that calling nsIToolkitProfile.remove on the default profile correctly
|
|
* removes the profile.
|
|
*/
|
|
|
|
add_task(async () => {
|
|
let hash = xreDirProvider.getInstallHash();
|
|
let defaultProfile = makeRandomProfileDir("default");
|
|
|
|
let profilesIni = {
|
|
profiles: [
|
|
{
|
|
name: "default",
|
|
path: defaultProfile.leafName,
|
|
default: true,
|
|
},
|
|
],
|
|
installs: {
|
|
[hash]: {
|
|
default: defaultProfile.leafName,
|
|
},
|
|
},
|
|
};
|
|
writeProfilesIni(profilesIni);
|
|
|
|
let service = getProfileService();
|
|
checkProfileService(profilesIni);
|
|
|
|
let { profile, didCreate } = selectStartupProfile();
|
|
Assert.ok(!didCreate, "Should have not created a new profile.");
|
|
Assert.equal(
|
|
profile.name,
|
|
"default",
|
|
"Should have selected the default profile."
|
|
);
|
|
Assert.equal(
|
|
profile,
|
|
service.defaultProfile,
|
|
"Should have selected the default profile."
|
|
);
|
|
|
|
checkProfileService(profilesIni);
|
|
|
|
// In an actual run of Firefox we wouldn't be able to delete the profile in
|
|
// use because it would be locked. But we don't actually lock the profile in
|
|
// tests.
|
|
profile.remove(false);
|
|
|
|
Assert.ok(!service.defaultProfile, "Should no longer be a default profile.");
|
|
Assert.equal(
|
|
profile,
|
|
service.currentProfile,
|
|
"Should still be the profile in use."
|
|
);
|
|
|
|
// These are the modifications that should have been made.
|
|
profilesIni.profiles.pop();
|
|
profilesIni.installs[hash].default = "";
|
|
|
|
// The data isn't flushed to disk so don't check the backup here.
|
|
checkProfileService(profilesIni, false);
|
|
|
|
service.flush();
|
|
|
|
// And that should have flushed to disk correctly.
|
|
checkProfileService();
|
|
|
|
// checkProfileService doesn't differentiate between a blank default profile
|
|
// for the install and a missing install.
|
|
profilesIni = readProfilesIni();
|
|
Assert.equal(
|
|
profilesIni.installs[hash].default,
|
|
"",
|
|
"Should be a blank default profile."
|
|
);
|
|
});
|