diff options
Diffstat (limited to 'toolkit/mozapps/webextensions/test/xpcshell/test_manifest.js')
-rw-r--r-- | toolkit/mozapps/webextensions/test/xpcshell/test_manifest.js | 562 |
1 files changed, 562 insertions, 0 deletions
diff --git a/toolkit/mozapps/webextensions/test/xpcshell/test_manifest.js b/toolkit/mozapps/webextensions/test/xpcshell/test_manifest.js new file mode 100644 index 000000000..85279ba5d --- /dev/null +++ b/toolkit/mozapps/webextensions/test/xpcshell/test_manifest.js @@ -0,0 +1,562 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ + */ + +// This tests that all properties are read from the install manifests and that +// items are correctly enabled/disabled based on them (blocklist tests are +// elsewhere) + +function run_test() { + createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2"); + const profileDir = gProfD.clone(); + profileDir.append("extensions"); + + writeInstallRDFForExtension({ + id: "addon1@tests.mozilla.org", + version: "1.0", + optionsURL: "chrome://test/content/options.xul", + aboutURL: "chrome://test/content/about.xul", + iconURL: "chrome://test/skin/icon.png", + icon64URL: "chrome://test/skin/icon64.png", + targetApplications: [{ + id: "xpcshell@tests.mozilla.org", + minVersion: "1", + maxVersion: "1" + }], + name: "Test Addon 1", + description: "Test Description", + creator: "Test Creator", + homepageURL: "http://www.example.com", + developer: [ + "Test Developer 1", + "Test Developer 2" + ], + translator: [ + "Test Translator 1", + "Test Translator 2" + ], + contributor: [ + "Test Contributor 1", + "Test Contributor 2" + ] + }, profileDir); + + writeInstallRDFForExtension({ + id: "addon2@tests.mozilla.org", + version: "1.0", + updateURL: "https://www.foo.com", + targetApplications: [{ + id: "xpcshell@tests.mozilla.org", + minVersion: "1", + maxVersion: "1" + }], + name: "Test Addon 2" + }, profileDir); + + writeInstallRDFForExtension({ + id: "addon3@tests.mozilla.org", + version: "1.0", + updateURL: "http://www.foo.com", + targetApplications: [{ + id: "xpcshell@tests.mozilla.org", + minVersion: "1", + maxVersion: "1" + }], + name: "Test Addon 3" + }, profileDir); + + writeInstallRDFForExtension({ + id: "addon4@tests.mozilla.org", + version: "1.0", + updateURL: "http://www.foo.com", + updateKey: "foo", + targetApplications: [{ + id: "xpcshell@tests.mozilla.org", + minVersion: "1", + maxVersion: "1" + }], + name: "Test Addon 4" + }, profileDir); + + writeInstallRDFForExtension({ + id: "addon5@tests.mozilla.org", + version: "1.0", + targetApplications: [{ + id: "xpcshell@tests.mozilla.org", + minVersion: "1", + maxVersion: "*" + }], + name: "Test Addon 5" + }, profileDir); + + writeInstallRDFForExtension({ + id: "addon6@tests.mozilla.org", + version: "1.0", + targetApplications: [{ + id: "xpcshell@tests.mozilla.org", + minVersion: "0", + maxVersion: "1" + }], + name: "Test Addon 6" + }, profileDir); + + writeInstallRDFForExtension({ + id: "addon7@tests.mozilla.org", + version: "1.0", + targetApplications: [{ + id: "xpcshell@tests.mozilla.org", + minVersion: "0", + maxVersion: "0" + }], + name: "Test Addon 7" + }, profileDir); + + writeInstallRDFForExtension({ + id: "addon8@tests.mozilla.org", + version: "1.0", + targetApplications: [{ + id: "xpcshell@tests.mozilla.org", + minVersion: "1.1", + maxVersion: "*" + }], + name: "Test Addon 8" + }, profileDir); + + writeInstallRDFForExtension({ + id: "addon9@tests.mozilla.org", + version: "1.0", + targetApplications: [{ + id: "toolkit@mozilla.org", + minVersion: "1.9.2", + maxVersion: "1.9.*" + }], + name: "Test Addon 9" + }, profileDir); + + writeInstallRDFForExtension({ + id: "addon10@tests.mozilla.org", + version: "1.0", + targetApplications: [{ + id: "toolkit@mozilla.org", + minVersion: "1.9.2.1", + maxVersion: "1.9.*" + }], + name: "Test Addon 10" + }, profileDir); + + writeInstallRDFForExtension({ + id: "addon11@tests.mozilla.org", + version: "1.0", + targetApplications: [{ + id: "toolkit@mozilla.org", + minVersion: "1.9", + maxVersion: "1.9.2" + }], + name: "Test Addon 11" + }, profileDir); + + writeInstallRDFForExtension({ + id: "addon12@tests.mozilla.org", + version: "1.0", + targetApplications: [{ + id: "toolkit@mozilla.org", + minVersion: "1.9", + maxVersion: "1.9.1.*" + }], + name: "Test Addon 12" + }, profileDir); + + writeInstallRDFForExtension({ + id: "addon13@tests.mozilla.org", + version: "1.0", + targetApplications: [{ + id: "toolkit@mozilla.org", + minVersion: "1.9", + maxVersion: "1.9.*" + }, { + id: "xpcshell@tests.mozilla.org", + minVersion: "0", + maxVersion: "0.5" + }], + name: "Test Addon 13" + }, profileDir); + + writeInstallRDFForExtension({ + id: "addon14@tests.mozilla.org", + version: "1.0", + targetApplications: [{ + id: "toolkit@mozilla.org", + minVersion: "1.9", + maxVersion: "1.9.1" + }, { + id: "xpcshell@tests.mozilla.org", + minVersion: "1", + maxVersion: "1" + }], + name: "Test Addon 14" + }, profileDir); + + writeInstallRDFForExtension({ + id: "addon15@tests.mozilla.org", + version: "1.0", + updateKey: "foo", + targetApplications: [{ + id: "xpcshell@tests.mozilla.org", + minVersion: "1", + maxVersion: "1" + }], + name: "Test Addon 15" + }, profileDir); + + writeInstallRDFForExtension({ + id: "addon16@tests.mozilla.org", + version: "1.0", + updateKey: "foo", + updateURL: "https://www.foo.com", + targetApplications: [{ + id: "xpcshell@tests.mozilla.org", + minVersion: "1", + maxVersion: "1" + }], + name: "Test Addon 16" + }, profileDir); + + writeInstallRDFForExtension({ + id: "addon17@tests.mozilla.org", + version: "1.0", + optionsURL: "chrome://test/content/options.xul", + optionsType: "2", + targetApplications: [{ + id: "xpcshell@tests.mozilla.org", + minVersion: "1", + maxVersion: "1" + }], + name: "Test Addon 17" + }, profileDir); + + writeInstallRDFForExtension({ + id: "addon18@tests.mozilla.org", + version: "1.0", + targetApplications: [{ + id: "xpcshell@tests.mozilla.org", + minVersion: "1", + maxVersion: "1" + }], + name: "Test Addon 18" + }, profileDir, undefined, "options.xul"); + + writeInstallRDFForExtension({ + id: "addon19@tests.mozilla.org", + version: "1.0", + optionsType: "99", + targetApplications: [{ + id: "xpcshell@tests.mozilla.org", + minVersion: "1", + maxVersion: "1" + }], + name: "Test Addon 19" + }, profileDir); + + writeInstallRDFForExtension({ + id: "addon20@tests.mozilla.org", + version: "1.0", + optionsType: "1", + optionsURL: "chrome://test/content/options.xul", + targetApplications: [{ + id: "xpcshell@tests.mozilla.org", + minVersion: "1", + maxVersion: "1" + }], + name: "Test Addon 20" + }, profileDir); + + writeInstallRDFForExtension({ + id: "addon21@tests.mozilla.org", + version: "1.0", + optionsType: "3", + optionsURL: "chrome://test/content/options.xul", + targetApplications: [{ + id: "xpcshell@tests.mozilla.org", + minVersion: "1", + maxVersion: "1" + }], + name: "Test Addon 21" + }, profileDir); + + writeInstallRDFForExtension({ + id: "addon22@tests.mozilla.org", + version: "1.0", + optionsType: "2", + targetApplications: [{ + id: "xpcshell@tests.mozilla.org", + minVersion: "1", + maxVersion: "1" + }], + name: "Test Addon 22" + }, profileDir); + + writeInstallRDFForExtension({ + id: "addon23@tests.mozilla.org", + version: "1.0", + optionsType: "2", + targetApplications: [{ + id: "xpcshell@tests.mozilla.org", + minVersion: "1", + maxVersion: "1" + }], + name: "Test Addon 23" + }, profileDir, undefined, "options.xul"); + + writeInstallRDFForExtension({ + id: "addon24@tests.mozilla.org", + version: "1.0", + targetApplications: [{ + id: "xpcshell@tests.mozilla.org", + minVersion: "1", + maxVersion: "1" + }], + name: "Test Addon 24" + }, profileDir, undefined, "options.xul"); + + writeInstallRDFForExtension({ + id: "addon25@tests.mozilla.org", + version: "1.0", + optionsType: "3", + targetApplications: [{ + id: "xpcshell@tests.mozilla.org", + minVersion: "1", + maxVersion: "1" + }], + name: "Test Addon 25" + }, profileDir); + + writeInstallRDFForExtension({ + id: "addon26@tests.mozilla.org", + version: "1.0", + optionsType: "4", + targetApplications: [{ + id: "xpcshell@tests.mozilla.org", + minVersion: "1", + maxVersion: "1" + }], + name: "Test Addon 26" + }, profileDir, undefined, "options.xul"); + + do_test_pending(); + startupManager(); + AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org", + "addon2@tests.mozilla.org", + "addon3@tests.mozilla.org", + "addon4@tests.mozilla.org", + "addon5@tests.mozilla.org", + "addon6@tests.mozilla.org", + "addon7@tests.mozilla.org", + "addon8@tests.mozilla.org", + "addon9@tests.mozilla.org", + "addon10@tests.mozilla.org", + "addon11@tests.mozilla.org", + "addon12@tests.mozilla.org", + "addon13@tests.mozilla.org", + "addon14@tests.mozilla.org", + "addon15@tests.mozilla.org", + "addon16@tests.mozilla.org", + "addon17@tests.mozilla.org", + "addon18@tests.mozilla.org", + "addon19@tests.mozilla.org", + "addon20@tests.mozilla.org", + "addon21@tests.mozilla.org", + "addon22@tests.mozilla.org", + "addon23@tests.mozilla.org", + "addon24@tests.mozilla.org", + "addon25@tests.mozilla.org", + "addon26@tests.mozilla.org"], + function([a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, + a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, + a21, a22, a23, a24, a25, a26]) { + + do_check_neq(a1, null); + do_check_eq(a1.id, "addon1@tests.mozilla.org"); + do_check_eq(a1.type, "extension"); + do_check_eq(a1.version, "1.0"); + do_check_eq(a1.optionsURL, "chrome://test/content/options.xul"); + do_check_eq(a1.optionsType, AddonManager.OPTIONS_TYPE_DIALOG); + do_check_eq(a1.aboutURL, "chrome://test/content/about.xul"); + do_check_eq(a1.iconURL, "chrome://test/skin/icon.png"); + do_check_eq(a1.icon64URL, "chrome://test/skin/icon64.png"); + do_check_eq(a1.icons[32], "chrome://test/skin/icon.png"); + do_check_eq(a1.icons[64], "chrome://test/skin/icon64.png"); + do_check_eq(a1.name, "Test Addon 1"); + do_check_eq(a1.description, "Test Description"); + do_check_eq(a1.creator, "Test Creator"); + do_check_eq(a1.homepageURL, "http://www.example.com"); + do_check_eq(a1.developers[0], "Test Developer 1"); + do_check_eq(a1.developers[1], "Test Developer 2"); + do_check_eq(a1.translators[0], "Test Translator 1"); + do_check_eq(a1.translators[1], "Test Translator 2"); + do_check_eq(a1.contributors[0], "Test Contributor 1"); + do_check_eq(a1.contributors[1], "Test Contributor 2"); + do_check_true(a1.isActive); + do_check_false(a1.userDisabled); + do_check_false(a1.appDisabled); + do_check_true(a1.isCompatible); + do_check_true(a1.providesUpdatesSecurely); + do_check_eq(a1.blocklistState, AM_Ci.nsIBlocklistService.STATE_NOT_BLOCKED); + + do_check_neq(a2, null); + do_check_eq(a2.id, "addon2@tests.mozilla.org"); + do_check_true(a2.isActive); + do_check_false(a2.userDisabled); + do_check_false(a2.appDisabled); + do_check_true(a2.providesUpdatesSecurely); + + do_check_neq(a3, null); + do_check_eq(a3.id, "addon3@tests.mozilla.org"); + do_check_false(a3.isActive); + do_check_false(a3.userDisabled); + do_check_true(a3.appDisabled); + do_check_false(a3.providesUpdatesSecurely); + + do_check_neq(a4, null); + do_check_eq(a4.id, "addon4@tests.mozilla.org"); + do_check_true(a4.isActive); + do_check_false(a4.userDisabled); + do_check_false(a4.appDisabled); + do_check_true(a4.providesUpdatesSecurely); + + do_check_neq(a5, null); + do_check_true(a5.isActive); + do_check_false(a5.userDisabled); + do_check_false(a5.appDisabled); + do_check_true(a5.isCompatible); + + do_check_neq(a6, null); + do_check_true(a6.isActive); + do_check_false(a6.userDisabled); + do_check_false(a6.appDisabled); + do_check_true(a6.isCompatible); + + do_check_neq(a7, null); + do_check_false(a7.isActive); + do_check_false(a7.userDisabled); + do_check_true(a7.appDisabled); + do_check_false(a7.isCompatible); + + do_check_neq(a8, null); + do_check_false(a8.isActive); + do_check_false(a8.userDisabled); + do_check_true(a8.appDisabled); + do_check_false(a8.isCompatible); + + do_check_neq(a9, null); + do_check_true(a9.isActive); + do_check_false(a9.userDisabled); + do_check_false(a9.appDisabled); + do_check_true(a9.isCompatible); + + do_check_neq(a10, null); + do_check_false(a10.isActive); + do_check_false(a10.userDisabled); + do_check_true(a10.appDisabled); + do_check_false(a10.isCompatible); + + do_check_neq(a11, null); + do_check_true(a11.isActive); + do_check_false(a11.userDisabled); + do_check_false(a11.appDisabled); + do_check_true(a11.isCompatible); + + do_check_neq(a12, null); + do_check_false(a12.isActive); + do_check_false(a12.userDisabled); + do_check_true(a12.appDisabled); + do_check_false(a12.isCompatible); + + do_check_neq(a13, null); + do_check_false(a13.isActive); + do_check_false(a13.userDisabled); + do_check_true(a13.appDisabled); + do_check_false(a13.isCompatible); + + do_check_neq(a14, null); + do_check_true(a14.isActive); + do_check_false(a14.userDisabled); + do_check_false(a14.appDisabled); + do_check_true(a14.isCompatible); + + do_check_neq(a15, null); + do_check_true(a15.isActive); + do_check_false(a15.userDisabled); + do_check_false(a15.appDisabled); + do_check_true(a15.isCompatible); + do_check_true(a15.providesUpdatesSecurely); + + do_check_neq(a16, null); + do_check_true(a16.isActive); + do_check_false(a16.userDisabled); + do_check_false(a16.appDisabled); + do_check_true(a16.isCompatible); + do_check_true(a16.providesUpdatesSecurely); + + do_check_neq(a17, null); + do_check_true(a17.isActive); + do_check_false(a17.userDisabled); + do_check_false(a17.appDisabled); + do_check_true(a17.isCompatible); + do_check_eq(a17.optionsURL, "chrome://test/content/options.xul"); + do_check_eq(a17.optionsType, AddonManager.OPTIONS_TYPE_INLINE); + + do_check_neq(a18, null); + do_check_true(a18.isActive); + do_check_false(a18.userDisabled); + do_check_false(a18.appDisabled); + do_check_true(a18.isCompatible); + if (Services.prefs.getBoolPref("extensions.alwaysUnpack")) { + do_check_eq(a18.optionsURL, Services.io.newFileURI(profileDir).spec + + "addon18@tests.mozilla.org/options.xul"); + } else { + do_check_eq(a18.optionsURL, "jar:" + Services.io.newFileURI(profileDir).spec + + "addon18@tests.mozilla.org.xpi!/options.xul"); + } + do_check_eq(a18.optionsType, AddonManager.OPTIONS_TYPE_INLINE); + + do_check_eq(a19, null); + + do_check_neq(a20, null); + do_check_true(a20.isActive); + do_check_false(a20.userDisabled); + do_check_false(a20.appDisabled); + do_check_true(a20.isCompatible); + do_check_eq(a20.optionsURL, "chrome://test/content/options.xul"); + do_check_eq(a20.optionsType, AddonManager.OPTIONS_TYPE_DIALOG); + + do_check_neq(a21, null); + do_check_true(a21.isActive); + do_check_false(a21.userDisabled); + do_check_false(a21.appDisabled); + do_check_true(a21.isCompatible); + do_check_eq(a21.optionsURL, "chrome://test/content/options.xul"); + do_check_eq(a21.optionsType, AddonManager.OPTIONS_TYPE_TAB); + + do_check_neq(a22, null); + do_check_eq(a22.optionsType, null); + do_check_eq(a22.optionsURL, null); + + do_check_neq(a23, null); + do_check_eq(a23.optionsType, AddonManager.OPTIONS_TYPE_INLINE); + do_check_neq(a23.optionsURL, null); + + do_check_neq(a24, null); + do_check_eq(a24.optionsType, AddonManager.OPTIONS_TYPE_INLINE); + do_check_neq(a24.optionsURL, null); + + do_check_neq(a25, null); + do_check_eq(a25.optionsType, null); + do_check_eq(a25.optionsURL, null); + + do_check_neq(a26, null); + do_check_eq(a26.optionsType, AddonManager.OPTIONS_TYPE_INLINE_INFO); + do_check_neq(a26.optionsURL, null); + + do_execute_soon(do_test_finished); + }); +} |