78 lines
2 KiB
JavaScript
78 lines
2 KiB
JavaScript
"use strict";
|
|
|
|
AddonTestUtils.init(this);
|
|
AddonTestUtils.overrideCertDB();
|
|
AddonTestUtils.usePrivilegedSignatures = false;
|
|
AddonTestUtils.createAppInfo(
|
|
"xpcshell@tests.mozilla.org",
|
|
"XPCShell",
|
|
"1",
|
|
"42"
|
|
);
|
|
|
|
add_setup(async () => {
|
|
await AddonTestUtils.promiseStartupManager();
|
|
});
|
|
|
|
// This test should produce a warning, but still startup
|
|
add_task(async function test_api_restricted() {
|
|
let extension = ExtensionTestUtils.loadExtension({
|
|
manifest: {
|
|
browser_specific_settings: {
|
|
gecko: { id: "activityLog-permission@tests.mozilla.org" },
|
|
},
|
|
permissions: ["activityLog"],
|
|
},
|
|
async background() {
|
|
browser.test.assertEq(
|
|
undefined,
|
|
browser.activityLog,
|
|
"activityLog is privileged"
|
|
);
|
|
},
|
|
useAddonManager: "permanent",
|
|
});
|
|
await extension.startup();
|
|
await extension.unload();
|
|
});
|
|
|
|
// This test should produce a error and not startup
|
|
add_task(
|
|
{
|
|
// Some builds (e.g. thunderbird) have experiments enabled by default.
|
|
pref_set: [["extensions.experiments.enabled", false]],
|
|
},
|
|
async function test_api_restricted_temporary_without_privilege() {
|
|
let extension = ExtensionTestUtils.loadExtension({
|
|
temporarilyInstalled: true,
|
|
isPrivileged: false,
|
|
manifest: {
|
|
browser_specific_settings: {
|
|
gecko: { id: "activityLog-permission@tests.mozilla.org" },
|
|
},
|
|
permissions: ["activityLog"],
|
|
},
|
|
});
|
|
ExtensionTestUtils.failOnSchemaWarnings(false);
|
|
let { messages } = await promiseConsoleOutput(async () => {
|
|
await Assert.rejects(
|
|
extension.startup(),
|
|
/Using the privileged permission/,
|
|
"Startup failed with privileged permission"
|
|
);
|
|
});
|
|
ExtensionTestUtils.failOnSchemaWarnings(true);
|
|
AddonTestUtils.checkMessages(
|
|
messages,
|
|
{
|
|
expected: [
|
|
{
|
|
message:
|
|
/Using the privileged permission 'activityLog' requires a privileged add-on/,
|
|
},
|
|
],
|
|
},
|
|
true
|
|
);
|
|
}
|
|
);
|