Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

"use strict";
PromiseTestUtils.allowMatchingRejectionsGlobally(/packaging errors/);
/**
* Helper function for testing a theme with invalid properties.
*
* @param {object} invalidProps The invalid properties to load the theme with.
*/
async function testThemeWithInvalidProperties(invalidProps) {
let manifest = {
theme: {},
};
invalidProps.forEach(prop => {
// Some properties require additional information:
switch (prop) {
case "background":
manifest[prop] = { scripts: ["background.js"] };
break;
case "permissions":
manifest[prop] = ["tabs"];
break;
case "omnibox":
manifest[prop] = { keyword: "test" };
break;
default:
manifest[prop] = {};
}
});
let extension = ExtensionTestUtils.loadExtension({ manifest });
await Assert.rejects(
extension.startup(),
/startup failed/,
"Theme should fail to load if it contains invalid properties"
);
}
add_task(
async function test_that_theme_with_invalid_properties_fails_to_load() {
let invalidProps = [
"page_action",
"browser_action",
"background",
"permissions",
"omnibox",
"commands",
];
for (let prop in invalidProps) {
await testThemeWithInvalidProperties([prop]);
}
await testThemeWithInvalidProperties(invalidProps);
}
);