diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /toolkit/components/contextualidentity/tests/unit/test_migratedFile.js | |
parent | Initial commit. (diff) | |
download | firefox-esr-upstream.tar.xz firefox-esr-upstream.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'toolkit/components/contextualidentity/tests/unit/test_migratedFile.js')
-rw-r--r-- | toolkit/components/contextualidentity/tests/unit/test_migratedFile.js | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/toolkit/components/contextualidentity/tests/unit/test_migratedFile.js b/toolkit/components/contextualidentity/tests/unit/test_migratedFile.js new file mode 100644 index 0000000000..dd05581342 --- /dev/null +++ b/toolkit/components/contextualidentity/tests/unit/test_migratedFile.js @@ -0,0 +1,121 @@ +"use strict"; + +const profileDir = do_get_profile(); + +const { ContextualIdentityService } = ChromeUtils.importESModule( + "resource://gre/modules/ContextualIdentityService.sys.mjs" +); + +const TEST_STORE_FILE_PATH = PathUtils.join( + profileDir.path, + "test-containers.json" +); + +// Test the containers JSON file migrations. +add_task(async function migratedFile() { + // Let's create a file that has to be migrated. + const oldFileData = { + version: 2, + lastUserContextId: 6, + identities: [ + { + userContextId: 1, + public: true, + icon: "fingerprint", + color: "blue", + l10nID: "userContextPersonal.label", + accessKey: "userContextPersonal.accesskey", + }, + { + userContextId: 2, + public: true, + icon: "briefcase", + color: "orange", + l10nID: "userContextWork.label", + accessKey: "userContextWork.accesskey", + }, + { + userContextId: 3, + public: true, + icon: "dollar", + color: "green", + l10nID: "userContextBanking.label", + accessKey: "userContextBanking.accesskey", + }, + { + userContextId: 4, + public: true, + icon: "cart", + color: "pink", + l10nID: "userContextShopping.label", + accessKey: "userContextShopping.accesskey", + }, + { + userContextId: 5, + public: false, + icon: "", + color: "", + name: "userContextIdInternal.thumbnail", + accessKey: "", + }, + { + userContextId: 6, + public: true, + icon: "cart", + color: "ping", + name: "Custom user-created identity", + }, + ], + }; + + await IOUtils.writeJSON(TEST_STORE_FILE_PATH, oldFileData, { + tmpPath: TEST_STORE_FILE_PATH + ".tmp", + }); + + let cis = + ContextualIdentityService.createNewInstanceForTesting(TEST_STORE_FILE_PATH); + ok(!!cis, "We have our instance of ContextualIdentityService"); + + // Check that the custom user-created identity exists. + + const expectedPublicLength = oldFileData.identities.filter( + identity => identity.public + ).length; + const publicIdentities = cis.getPublicIdentities(); + const oldLastIdentity = + oldFileData.identities[oldFileData.identities.length - 1]; + const customUserCreatedIdentity = publicIdentities + .filter(identity => identity.name === oldLastIdentity.name) + .pop(); + + equal( + publicIdentities.length, + expectedPublicLength, + "We should have the expected number of public identities" + ); + ok(!!customUserCreatedIdentity, "Got the custom user-created identity"); + + Assert.deepEqual( + cis.getPublicUserContextIds(), + cis.getPublicIdentities().map(identity => identity.userContextId), + "getPublicUserContextIds has matching user context IDs" + ); + + // Check that the reserved userContextIdInternal.webextStorageLocal identity exists. + + const webextStorageLocalPrivateId = + ContextualIdentityService._defaultIdentities + .filter( + identity => identity.name === "userContextIdInternal.webextStorageLocal" + ) + .pop().userContextId; + + const privWebExtStorageLocal = cis.getPrivateIdentity( + "userContextIdInternal.webextStorageLocal" + ); + equal( + privWebExtStorageLocal && privWebExtStorageLocal.userContextId, + webextStorageLocalPrivateId, + "We should have the default userContextIdInternal.webextStorageLocal private identity" + ); +}); |