diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /browser/components/extensions/test/browser/browser_ext_themes_validation.js | |
parent | Initial commit. (diff) | |
download | thunderbird-upstream.tar.xz thunderbird-upstream.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'browser/components/extensions/test/browser/browser_ext_themes_validation.js')
-rw-r--r-- | browser/components/extensions/test/browser/browser_ext_themes_validation.js | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/browser/components/extensions/test/browser/browser_ext_themes_validation.js b/browser/components/extensions/test/browser/browser_ext_themes_validation.js new file mode 100644 index 0000000000..c004363a6b --- /dev/null +++ b/browser/components/extensions/test/browser/browser_ext_themes_validation.js @@ -0,0 +1,55 @@ +"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); + } +); |