Bug 1447903: Part 6b - Roll test_targetPlatforms.js into test_manifest and make non-insane. r=aswan draft
authorKris Maglione <maglione.k@gmail.com>
Wed, 21 Mar 2018 18:54:20 -0700
changeset 772370 d10fa44176a73c8b229696ce64a45aefd387019f
parent 772369 0301581ad1fc134ff6ad0cd67de96cd871d33960
child 772371 4369288493183fc69d4e3062ca20a98ac92f487b
push id103897
push usermaglione.k@gmail.com
push dateMon, 26 Mar 2018 01:31:53 +0000
reviewersaswan
bugs1447903
milestone61.0a1
Bug 1447903: Part 6b - Roll test_targetPlatforms.js into test_manifest and make non-insane. r=aswan MozReview-Commit-ID: G9z6osQAZRb
toolkit/mozapps/extensions/test/xpcshell/head_addons.js
toolkit/mozapps/extensions/test/xpcshell/test_manifest.js
toolkit/mozapps/extensions/test/xpcshell/test_targetPlatforms.js
toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
--- 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]