1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
|
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
/*
* Tests from a clean state.
* Then does some testing that creating new profiles and marking them as
* selected works.
*/
add_task(async () => {
let service = getProfileService();
let target = gDataHome.clone();
target.append("profiles.ini");
Assert.ok(!target.exists(), "profiles.ini should not exist yet.");
target.leafName = "installs.ini";
Assert.ok(!target.exists(), "installs.ini should not exist yet.");
// Create a new profile to use.
let newProfile = service.createProfile(null, "dedicated");
service.flush();
let profileData = readProfilesIni();
Assert.equal(
profileData.profiles.length,
1,
"Should have the right number of profiles."
);
let profile = profileData.profiles[0];
Assert.equal(profile.name, "dedicated", "Should have the right name.");
Assert.ok(!profile.default, "Should not be marked as the old-style default.");
// The new profile hasn't been marked as the default yet!
Assert.equal(
Object.keys(profileData.installs).length,
0,
"Should be no defaults for installs yet."
);
checkProfileService(profileData);
Assert.ok(
service.startWithLastProfile,
"Should be set to start with the last profile."
);
service.startWithLastProfile = false;
Assert.ok(
!service.startWithLastProfile,
"Should be set to not start with the last profile."
);
service.defaultProfile = newProfile;
service.flush();
profileData = readProfilesIni();
Assert.equal(
profileData.profiles.length,
1,
"Should have the right number of profiles."
);
profile = profileData.profiles[0];
Assert.equal(profile.name, "dedicated", "Should have the right name.");
Assert.ok(!profile.default, "Should not be marked as the old-style default.");
let hash = xreDirProvider.getInstallHash();
Assert.equal(
Object.keys(profileData.installs).length,
1,
"Should be only one known install."
);
Assert.equal(
profileData.installs[hash].default,
profileData.profiles[0].path,
"Should have marked the new profile as the default for this install."
);
checkProfileService(profileData);
let otherProfile = service.createProfile(null, "another");
service.defaultProfile = otherProfile;
service.flush();
profileData = readProfilesIni();
Assert.equal(
profileData.profiles.length,
2,
"Should have the right number of profiles."
);
profile = profileData.profiles[0];
Assert.equal(profile.name, "another", "Should have the right name.");
Assert.ok(!profile.default, "Should not be marked as the old-style default.");
profile = profileData.profiles[1];
Assert.equal(profile.name, "dedicated", "Should have the right name.");
Assert.ok(!profile.default, "Should not be marked as the old-style default.");
Assert.equal(
Object.keys(profileData.installs).length,
1,
"Should be only one known install."
);
Assert.equal(
profileData.installs[hash].default,
profileData.profiles[0].path,
"Should have marked the new profile as the default for this install."
);
checkProfileService(profileData);
newProfile.remove(true);
service.flush();
profileData = readProfilesIni();
Assert.equal(
profileData.profiles.length,
1,
"Should have the right number of profiles."
);
profile = profileData.profiles[0];
Assert.equal(profile.name, "another", "Should have the right name.");
Assert.ok(!profile.default, "Should not be marked as the old-style default.");
Assert.equal(
Object.keys(profileData.installs).length,
1,
"Should be only one known install."
);
Assert.equal(
profileData.installs[hash].default,
profileData.profiles[0].path,
"Should have marked the new profile as the default for this install."
);
checkProfileService(profileData);
otherProfile.remove(true);
service.flush();
profileData = readProfilesIni();
Assert.equal(
profileData.profiles.length,
0,
"Should have the right number of profiles."
);
// We leave a reference to the missing profile to stop us trying to steal the
// old-style default profile on next startup.
Assert.equal(
Object.keys(profileData.installs).length,
1,
"Should be only one known install."
);
checkProfileService(profileData);
});
|