fune/toolkit/components/extensions/test/xpcshell/test_ext_contextual_identities.js

140 lines
5.9 KiB
JavaScript

"use strict";
do_get_profile();
add_task(async function test_contextualIdentities_without_permissions() {
function backgroundScript() {
browser.test.assertTrue(!browser.contextualIdentities,
"contextualIdentities API is not available when the contextualIdentities permission is not required");
browser.test.notifyPass("contextualIdentities_permission");
}
let extension = ExtensionTestUtils.loadExtension({
background: `(${backgroundScript})()`,
manifest: {
permissions: [],
},
});
await extension.startup();
await extension.awaitFinish("contextualIdentities_permission");
await extension.unload();
});
add_task(async function test_contextualIdentity_no_containers() {
async function backgroundScript() {
let ci = await browser.contextualIdentities.get("foobar");
browser.test.assertEq(false, ci, "No identity should be returned here");
ci = await browser.contextualIdentities.get("firefox-container-1");
browser.test.assertEq(false, ci, "We don't have any identity");
let cis = await browser.contextualIdentities.query({});
browser.test.assertEq(false, cis, "no containers, 0 containers");
ci = await browser.contextualIdentities.create({name: "foobar", color: "red", icon: "icon"});
browser.test.assertEq(false, ci, "We don't have any identity");
ci = await browser.contextualIdentities.update("firefox-container-1", {name: "barfoo", color: "blue", icon: "icon icon"});
browser.test.assertEq(false, ci, "We don't have any identity");
ci = await browser.contextualIdentities.remove("firefox-container-1");
browser.test.assertEq(false, ci, "We have an identity");
browser.test.notifyPass("contextualIdentities");
}
let extension = ExtensionTestUtils.loadExtension({
background: `(${backgroundScript})()`,
manifest: {
permissions: ["contextualIdentities"],
},
});
Services.prefs.setBoolPref("privacy.userContext.enabled", false);
await extension.startup();
await extension.awaitFinish("contextualIdentities");
await extension.unload();
Services.prefs.clearUserPref("privacy.userContext.enabled");
});
add_task(async function test_contextualIdentity_with_permissions() {
async function backgroundScript() {
let ci = await browser.contextualIdentities.get("foobar");
browser.test.assertEq(null, ci, "No identity should be returned here");
ci = await browser.contextualIdentities.get("firefox-container-1");
browser.test.assertTrue(!!ci, "We have an identity");
browser.test.assertTrue("name" in ci, "We have an identity.name");
browser.test.assertTrue("color" in ci, "We have an identity.color");
browser.test.assertTrue("icon" in ci, "We have an identity.icon");
browser.test.assertEq("Personal", ci.name, "identity.name is correct");
browser.test.assertEq("firefox-container-1", ci.cookieStoreId, "identity.cookieStoreId is correct");
let cis = await browser.contextualIdentities.query({});
browser.test.assertEq(4, cis.length, "by default we should have 4 containers");
cis = await browser.contextualIdentities.query({name: "Personal"});
browser.test.assertEq(1, cis.length, "by default we should have 1 container called Personal");
cis = await browser.contextualIdentities.query({name: "foobar"});
browser.test.assertEq(0, cis.length, "by default we should have 0 container called foobar");
ci = await browser.contextualIdentities.create({name: "foobar", color: "red", icon: "icon"});
browser.test.assertTrue(!!ci, "We have an identity");
browser.test.assertEq("foobar", ci.name, "identity.name is correct");
browser.test.assertEq("red", ci.color, "identity.color is correct");
browser.test.assertEq("icon", ci.icon, "identity.icon is correct");
browser.test.assertTrue(!!ci.cookieStoreId, "identity.cookieStoreId is correct");
ci = await browser.contextualIdentities.get(ci.cookieStoreId);
browser.test.assertTrue(!!ci, "We have an identity");
browser.test.assertEq("foobar", ci.name, "identity.name is correct");
browser.test.assertEq("red", ci.color, "identity.color is correct");
browser.test.assertEq("icon", ci.icon, "identity.icon is correct");
cis = await browser.contextualIdentities.query({});
browser.test.assertEq(5, cis.length, "now we have 5 identities");
ci = await browser.contextualIdentities.update(ci.cookieStoreId, {name: "barfoo", color: "blue", icon: "icon icon"});
browser.test.assertTrue(!!ci, "We have an identity");
browser.test.assertEq("barfoo", ci.name, "identity.name is correct");
browser.test.assertEq("blue", ci.color, "identity.color is correct");
browser.test.assertEq("icon icon", ci.icon, "identity.icon is correct");
ci = await browser.contextualIdentities.get(ci.cookieStoreId);
browser.test.assertTrue(!!ci, "We have an identity");
browser.test.assertEq("barfoo", ci.name, "identity.name is correct");
browser.test.assertEq("blue", ci.color, "identity.color is correct");
browser.test.assertEq("icon icon", ci.icon, "identity.icon is correct");
ci = await browser.contextualIdentities.remove(ci.cookieStoreId);
browser.test.assertTrue(!!ci, "We have an identity");
browser.test.assertEq("barfoo", ci.name, "identity.name is correct");
browser.test.assertEq("blue", ci.color, "identity.color is correct");
browser.test.assertEq("icon icon", ci.icon, "identity.icon is correct");
cis = await browser.contextualIdentities.query({});
browser.test.assertEq(4, cis.length, "we are back to 4 identities");
browser.test.notifyPass("contextualIdentities");
}
let extension = ExtensionTestUtils.loadExtension({
background: `(${backgroundScript})()`,
manifest: {
permissions: ["contextualIdentities"],
},
});
Services.prefs.setBoolPref("privacy.userContext.enabled", true);
await extension.startup();
await extension.awaitFinish("contextualIdentities");
await extension.unload();
Services.prefs.clearUserPref("privacy.userContext.enabled");
});