Bug 1447903: Part 6b - Roll test_targetPlatforms.js into test_manifest and make non-insane. r=aswan
MozReview-Commit-ID: G9z6osQAZRb
--- a/toolkit/mozapps/extensions/test/xpcshell/head_addons.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/head_addons.js
@@ -108,17 +108,16 @@ const LEGACY_NON_RESTARTLESS_TESTS = new
"test_proxies.js",
"test_safemode.js",
"test_sideloads.js",
"test_signed_verify.js",
"test_softblocked.js",
"test_sourceURI.js",
"test_strictcompatibility.js",
"test_syncGUID.js",
- "test_targetPlatforms.js",
"test_updateCancel.js",
"test_update_compatmode.js",
"test_upgrade.js",
]);
if (LEGACY_NON_RESTARTLESS_TESTS.has(_TEST_FILE[0].replace(/.*\//, ""))) {
Services.prefs.setBoolPref("extensions.legacy.non-restartless.enabled", true);
}
--- a/toolkit/mozapps/extensions/test/xpcshell/test_manifest.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_manifest.js
@@ -570,16 +570,137 @@ const ADDONS = [
minVersion: "1",
maxVersion: "1"
}],
name: "Test Addon 26"
},
extraFiles: {"options.xul": ""},
expected: null,
},
+
+
+ // Tests compatibility based on target platforms.
+
+ // No targetPlatforms so should be compatible
+ {
+ "install.rdf": {
+ id: "tp-addon1@tests.mozilla.org",
+ version: "1.0",
+ name: "Test 1",
+ targetApplications: [{
+ id: "xpcshell@tests.mozilla.org",
+ minVersion: "1",
+ maxVersion: "1"
+ }]
+ },
+
+ expected: {
+ appDisabled: false,
+ isPlatformCompatible: true,
+ isActive: true,
+ },
+ },
+
+ // Matches the OS
+ {
+ "install.rdf": {
+ id: "tp-addon2@tests.mozilla.org",
+ version: "1.0",
+ name: "Test 2",
+ targetPlatforms: [
+ "XPCShell",
+ "WINNT_x86",
+ "XPCShell"
+ ],
+ targetApplications: [{
+ id: "xpcshell@tests.mozilla.org",
+ minVersion: "1",
+ maxVersion: "1"
+ }]
+ },
+
+ expected: {
+ appDisabled: false,
+ isPlatformCompatible: true,
+ isActive: true,
+ },
+ },
+
+ // Matches the OS and ABI
+ {
+ "install.rdf": {
+ id: "tp-addon3@tests.mozilla.org",
+ version: "1.0",
+ name: "Test 3",
+ targetPlatforms: [
+ "WINNT",
+ "XPCShell_noarch-spidermonkey"
+ ],
+ targetApplications: [{
+ id: "xpcshell@tests.mozilla.org",
+ minVersion: "1",
+ maxVersion: "1"
+ }]
+ },
+
+ expected: {
+ appDisabled: false,
+ isPlatformCompatible: true,
+ isActive: true,
+ },
+ },
+
+ // Doesn't match
+ {
+ "install.rdf": {
+ id: "tp-addon4@tests.mozilla.org",
+ version: "1.0",
+ name: "Test 4",
+ targetPlatforms: [
+ "WINNT_noarch-spidermonkey",
+ "Darwin",
+ "WINNT_noarch-spidermonkey"
+ ],
+ targetApplications: [{
+ id: "xpcshell@tests.mozilla.org",
+ minVersion: "1",
+ maxVersion: "1"
+ }]
+ },
+
+ expected: {
+ appDisabled: true,
+ isPlatformCompatible: false,
+ isActive: false,
+ },
+ },
+
+ // Matches the OS but since a different entry specifies ABI this doesn't match.
+ {
+ "install.rdf": {
+ id: "tp-addon5@tests.mozilla.org",
+ version: "1.0",
+ name: "Test 5",
+ targetPlatforms: [
+ "XPCShell",
+ "XPCShell_foo"
+ ],
+ targetApplications: [{
+ id: "xpcshell@tests.mozilla.org",
+ minVersion: "1",
+ maxVersion: "1"
+ }]
+ },
+
+ expected: {
+ appDisabled: true,
+ isPlatformCompatible: false,
+ isActive: false,
+ },
+ },
];
const IDS = ADDONS.map(a => a["install.rdf"].id);
add_task(async function setup() {
createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
const profileDir = gProfD.clone();
profileDir.append("extensions");
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/xpcshell/test_targetPlatforms.js
+++ /dev/null
@@ -1,147 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-// This verifies that the targetPlatform entries are checked when deciding
-// if an add-on is incompatible.
-
-// No targetPlatforms so should be compatible
-var addon1 = {
- id: "addon1@tests.mozilla.org",
- version: "1.0",
- name: "Test 1",
- targetApplications: [{
- id: "xpcshell@tests.mozilla.org",
- minVersion: "1",
- maxVersion: "1"
- }]
-};
-
-// Matches the OS
-var addon2 = {
- id: "addon2@tests.mozilla.org",
- version: "1.0",
- name: "Test 2",
- targetPlatforms: [
- "XPCShell",
- "WINNT_x86",
- "XPCShell"
- ],
- targetApplications: [{
- id: "xpcshell@tests.mozilla.org",
- minVersion: "1",
- maxVersion: "1"
- }]
-};
-
-// Matches the OS and ABI
-var addon3 = {
- id: "addon3@tests.mozilla.org",
- version: "1.0",
- name: "Test 3",
- targetPlatforms: [
- "WINNT",
- "XPCShell_noarch-spidermonkey"
- ],
- targetApplications: [{
- id: "xpcshell@tests.mozilla.org",
- minVersion: "1",
- maxVersion: "1"
- }]
-};
-
-// Doesn't match
-var addon4 = {
- id: "addon4@tests.mozilla.org",
- version: "1.0",
- name: "Test 4",
- targetPlatforms: [
- "WINNT_noarch-spidermonkey",
- "Darwin",
- "WINNT_noarch-spidermonkey"
- ],
- targetApplications: [{
- id: "xpcshell@tests.mozilla.org",
- minVersion: "1",
- maxVersion: "1"
- }]
-};
-
-// Matches the OS but since a different entry specifies ABI this doesn't match.
-var addon5 = {
- id: "addon5@tests.mozilla.org",
- version: "1.0",
- name: "Test 5",
- targetPlatforms: [
- "XPCShell",
- "XPCShell_foo"
- ],
- targetApplications: [{
- id: "xpcshell@tests.mozilla.org",
- minVersion: "1",
- maxVersion: "1"
- }]
-};
-
-createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
-
-const profileDir = gProfD.clone();
-profileDir.append("extensions");
-
-// Set up the profile
-async function run_test() {
- do_test_pending();
-
- writeInstallRDFForExtension(addon1, profileDir);
- writeInstallRDFForExtension(addon2, profileDir);
- writeInstallRDFForExtension(addon3, profileDir);
- writeInstallRDFForExtension(addon4, profileDir);
- writeInstallRDFForExtension(addon5, profileDir);
-
- await promiseRestartManager();
-
- AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
- "addon2@tests.mozilla.org",
- "addon3@tests.mozilla.org",
- "addon4@tests.mozilla.org",
- "addon5@tests.mozilla.org"],
- function([a1, a2, a3, a4, a5]) {
-
- Assert.notEqual(a1, null);
- Assert.ok(!a1.appDisabled);
- Assert.ok(a1.isPlatformCompatible);
- Assert.ok(a1.isActive);
- Assert.ok(isExtensionInAddonsList(profileDir, a1.id));
- do_check_in_crash_annotation(addon1.id, addon1.version);
-
- Assert.notEqual(a2, null);
- Assert.ok(!a2.appDisabled);
- Assert.ok(a2.isPlatformCompatible);
- Assert.ok(a2.isActive);
- Assert.ok(isExtensionInAddonsList(profileDir, a2.id));
- do_check_in_crash_annotation(addon2.id, addon2.version);
-
- Assert.notEqual(a3, null);
- Assert.ok(!a3.appDisabled);
- Assert.ok(a3.isPlatformCompatible);
- Assert.ok(a3.isActive);
- Assert.ok(isExtensionInAddonsList(profileDir, a3.id));
- do_check_in_crash_annotation(addon3.id, addon3.version);
-
- Assert.notEqual(a4, null);
- Assert.ok(a4.appDisabled);
- Assert.ok(!a4.isPlatformCompatible);
- Assert.ok(!a4.isActive);
- Assert.ok(!isExtensionInAddonsList(profileDir, a4.id));
- do_check_not_in_crash_annotation(addon4.id, addon4.version);
-
- Assert.notEqual(a5, null);
- Assert.ok(a5.appDisabled);
- Assert.ok(!a5.isPlatformCompatible);
- Assert.ok(!a5.isActive);
- Assert.ok(!isExtensionInAddonsList(profileDir, a5.id));
- do_check_not_in_crash_annotation(addon5.id, addon5.version);
-
- executeSoon(do_test_finished);
- });
-}
--- a/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
+++ b/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
@@ -276,17 +276,16 @@ run-sequentially = Uses hardcoded ports
run-if = addon_signing
[test_signed_long.js]
run-if = addon_signing
[test_startup.js]
# Bug 676992: test consistently fails on Android
fail-if = os == "android"
[test_syncGUID.js]
[test_strictcompatibility.js]
-[test_targetPlatforms.js]
[test_types.js]
[test_undouninstall.js]
skip-if = os == "win" # Bug 1358846
[test_update.js]
# Bug 676992: test consistently hangs on Android; bug 1330227 - linux
skip-if = os == "android" || os == "linux"
[test_update_rdf.js]
[test_update_webextensions.js]