Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
/* Any copyright is dedicated to the Public Domain.
"use strict";
// If we think profiles have been created but there is no current profile in the database and there
// are no other profiles we should reset state.
add_task(async function test_recover_empty_database() {
startProfileService();
const SelectableProfileService = getSelectableProfileService();
const ProfilesDatastoreService = getProfilesDatastoreService();
await ProfilesDatastoreService.init();
let toolkitProfile = getProfileService().currentProfile;
toolkitProfile.storeID = await ProfilesDatastoreService.storeID;
Services.prefs.setBoolPref("browser.profiles.enabled", true);
Services.prefs.setBoolPref("browser.profiles.created", true);
await SelectableProfileService.init();
Assert.ok(SelectableProfileService.isEnabled, "Service should be enabled");
Assert.ok(
!Services.prefs.getBoolPref("browser.profiles.created", false),
"Should have reset the profile created state."
);
Assert.ok(!toolkitProfile.storeID, "Should have cleared the store ID");
Assert.ok(
!SelectableProfileService.currentProfile,
"Should be no current profile"
);
let profiles = await SelectableProfileService.getAllProfiles();
Assert.ok(!profiles.length, "No selectable profiles exist yet");
let newProfile = await SelectableProfileService.createNewProfile(false);
Assert.ok(newProfile, "Should have created a new profile");
Assert.ok(
Services.prefs.getBoolPref("browser.profiles.created", false),
"Should have set the profile created state."
);
Assert.equal(
toolkitProfile.storeID,
await ProfilesDatastoreService.storeID,
"Should have set the store ID"
);
Assert.ok(
SelectableProfileService.currentProfile,
"Should have created a current profile entry"
);
profiles = await SelectableProfileService.getAllProfiles();
Assert.equal(profiles.length, 2, "Two profiles should exist in the database");
});