80 lines
2.1 KiB
JavaScript
80 lines
2.1 KiB
JavaScript
"use strict";
|
|
|
|
AddonTestUtils.init(this);
|
|
|
|
add_task(async function testEmptySchema() {
|
|
function background() {
|
|
browser.test.assertEq(
|
|
undefined,
|
|
browser.manifest,
|
|
"browser.manifest is not defined"
|
|
);
|
|
browser.test.assertTrue(
|
|
!!browser.storage,
|
|
"browser.storage should be defined"
|
|
);
|
|
browser.test.assertEq(
|
|
undefined,
|
|
browser.contextMenus,
|
|
"browser.contextMenus should not be defined"
|
|
);
|
|
browser.test.notifyPass("schema");
|
|
}
|
|
|
|
let extension = ExtensionTestUtils.loadExtension({
|
|
background,
|
|
manifest: {
|
|
permissions: ["storage"],
|
|
},
|
|
});
|
|
|
|
await extension.startup();
|
|
await extension.awaitFinish("schema");
|
|
await extension.unload();
|
|
});
|
|
|
|
add_task(async function test_warnings_as_errors() {
|
|
let extension = ExtensionTestUtils.loadExtension({
|
|
manifest: { unrecognized_property_that_should_be_treated_as_a_warning: 1 },
|
|
});
|
|
|
|
// Tests should be run with extensions.webextensions.warnings-as-errors=true
|
|
// by default, and prevent extensions with manifest warnings from loading.
|
|
await Assert.rejects(
|
|
extension.startup(),
|
|
/unrecognized_property_that_should_be_treated_as_a_warning/,
|
|
"extension with invalid manifest should not load if warnings-as-errors=true"
|
|
);
|
|
// When ExtensionTestUtils.failOnSchemaWarnings(false) is called, startup is
|
|
// expected to succeed, as shown by the next "testUnknownProperties" test.
|
|
});
|
|
|
|
add_task(async function testUnknownProperties() {
|
|
let extension = ExtensionTestUtils.loadExtension({
|
|
manifest: {
|
|
permissions: ["unknownPermission"],
|
|
|
|
unknown_property: {},
|
|
},
|
|
|
|
background() {},
|
|
});
|
|
|
|
let { messages } = await promiseConsoleOutput(async () => {
|
|
ExtensionTestUtils.failOnSchemaWarnings(false);
|
|
await extension.startup();
|
|
ExtensionTestUtils.failOnSchemaWarnings(true);
|
|
});
|
|
|
|
AddonTestUtils.checkMessages(messages, {
|
|
expected: [
|
|
{ message: /processing permissions\.0: Value "unknownPermission"/ },
|
|
{
|
|
message:
|
|
/processing unknown_property: An unexpected property was found in the WebExtension manifest/,
|
|
},
|
|
],
|
|
});
|
|
|
|
await extension.unload();
|
|
});
|