From 4fb11cd5966461bccc3ed1599b808237be6b0de9 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Sat, 10 Feb 2018 02:49:12 -0500 Subject: Move WebExtensions enabled Add-ons Manager --- .../test/xpcshell/test_ChromeManifestParser.js | 108 +++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 toolkit/mozapps/webextensions/test/xpcshell/test_ChromeManifestParser.js (limited to 'toolkit/mozapps/webextensions/test/xpcshell/test_ChromeManifestParser.js') diff --git a/toolkit/mozapps/webextensions/test/xpcshell/test_ChromeManifestParser.js b/toolkit/mozapps/webextensions/test/xpcshell/test_ChromeManifestParser.js new file mode 100644 index 000000000..605c4224b --- /dev/null +++ b/toolkit/mozapps/webextensions/test/xpcshell/test_ChromeManifestParser.js @@ -0,0 +1,108 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ + */ + +// Tests ChromeManifestParser.js + +Components.utils.import("resource://gre/modules/ChromeManifestParser.jsm"); + + +function run_test() { + do_test_pending(); + createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "2", "2"); + + startupManager(); + + installAllFiles([do_get_addon("test_chromemanifest_1"), + do_get_addon("test_chromemanifest_2"), + do_get_addon("test_chromemanifest_3"), + do_get_addon("test_chromemanifest_4")], + function() { + + restartManager(); + run_test_1(); + }); +} + +function run_test_1() { + AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org", + "addon2@tests.mozilla.org", + "addon3@tests.mozilla.org", + "addon4@tests.mozilla.org"], + function([a1, a2, a3, a4]) { + // addon1 + let a1Uri = a1.getResourceURI("/").spec; + let expected = [ + {type: "content", baseURI: a1Uri, args: ["test-addon-1", "chrome/content"]}, + {type: "locale", baseURI: a1Uri, args: ["test-addon-1", "en-US", "locale/en-US"]}, + {type: "locale", baseURI: a1Uri, args: ["test-addon-1", "fr-FR", "locale/fr-FR"]}, + {type: "overlay", baseURI: a1Uri, args: ["chrome://browser/content/browser.xul", "chrome://test-addon-1/content/overlay.xul"]} + ]; + let manifestURI = a1.getResourceURI("chrome.manifest"); + let manifest = ChromeManifestParser.parseSync(manifestURI); + + do_check_true(Array.isArray(manifest)); + do_check_eq(manifest.length, expected.length); + for (let i = 0; i < manifest.length; i++) { + do_check_eq(JSON.stringify(manifest[i]), JSON.stringify(expected[i])); + } + + // addon2 + let a2Uri = a2.getResourceURI("/").spec; + expected = [ + {type: "content", baseURI: a2Uri, args: ["test-addon-1", "chrome/content"]}, + {type: "locale", baseURI: a2Uri, args: ["test-addon-1", "en-US", "locale/en-US"]}, + {type: "locale", baseURI: a2Uri, args: ["test-addon-1", "fr-FR", "locale/fr-FR"]}, + {type: "overlay", baseURI: a2Uri, args: ["chrome://browser/content/browser.xul", "chrome://test-addon-1/content/overlay.xul"]}, + {type: "binary-component", baseURI: a2Uri, args: ["components/something.so"]} + ]; + manifestURI = a2.getResourceURI("chrome.manifest"); + manifest = ChromeManifestParser.parseSync(manifestURI); + + do_check_true(Array.isArray(manifest)); + do_check_eq(manifest.length, expected.length); + for (let i = 0; i < manifest.length; i++) { + do_check_eq(JSON.stringify(manifest[i]), JSON.stringify(expected[i])); + } + + // addon3 + let a3Uri = a3.getResourceURI("/").spec; + expected = [ + {type: "content", baseURI: a3Uri, args: ["test-addon-1", "chrome/content"]}, + {type: "locale", baseURI: a3Uri, args: ["test-addon-1", "en-US", "locale/en-US"]}, + {type: "locale", baseURI: a3Uri, args: ["test-addon-1", "fr-FR", "locale/fr-FR"]}, + {type: "overlay", baseURI: a3Uri, args: ["chrome://browser/content/browser.xul", "chrome://test-addon-1/content/overlay.xul"]}, + {type: "binary-component", baseURI: a3Uri, args: ["components/something.so"]}, + {type: "locale", baseURI: "jar:" + a3.getResourceURI("/inner.jar").spec + "!/", args: ["test-addon-1", "en-NZ", "locale/en-NZ"]}, + ]; + manifestURI = a3.getResourceURI("chrome.manifest"); + manifest = ChromeManifestParser.parseSync(manifestURI); + + do_check_true(Array.isArray(manifest)); + do_check_eq(manifest.length, expected.length); + for (let i = 0; i < manifest.length; i++) { + do_check_eq(JSON.stringify(manifest[i]), JSON.stringify(expected[i])); + } + + // addon4 + let a4Uri = a4.getResourceURI("/").spec; + expected = [ + {type: "content", baseURI: a4Uri, args: ["test-addon-1", "chrome/content"]}, + {type: "locale", baseURI: a4Uri, args: ["test-addon-1", "en-US", "locale/en-US"]}, + {type: "locale", baseURI: a4Uri, args: ["test-addon-1", "fr-FR", "locale/fr-FR"]}, + {type: "overlay", baseURI: a4Uri, args: ["chrome://browser/content/browser.xul", "chrome://test-addon-1/content/overlay.xul"]}, + {type: "binary-component", baseURI: a4.getResourceURI("components/").spec, args: ["mycomponent.dll"]}, + {type: "binary-component", baseURI: a4.getResourceURI("components/other/").spec, args: ["thermalnuclearwar.dll"]} + ]; + manifestURI = a4.getResourceURI("chrome.manifest"); + manifest = ChromeManifestParser.parseSync(manifestURI); + + do_check_true(Array.isArray(manifest)); + do_check_eq(manifest.length, expected.length); + for (let i = 0; i < manifest.length; i++) { + do_check_eq(JSON.stringify(manifest[i]), JSON.stringify(expected[i])); + } + + do_execute_soon(do_test_finished); + }); +} -- cgit v1.2.3