Bug 1447903: Part 2 - Remove strictcompat variants of tests. r?aswan draft
authorKris Maglione <maglione.k@gmail.com>
Wed, 21 Mar 2018 15:41:49 -0700
changeset 772361 8f4457641385814d682f2777e611e312a5940f06
parent 772360 1530b8284a67e92c6e1694443bd5c0ba555cae93
child 772362 27741df4f11982cbdb9880b6a8067dfcaefa4031
push id103897
push usermaglione.k@gmail.com
push dateMon, 26 Mar 2018 01:31:53 +0000
reviewersaswan
bugs1447903
milestone61.0a1
Bug 1447903: Part 2 - Remove strictcompat variants of tests. r?aswan These tests for an undocumented and unsupported feature are difficult-to-maintain copies of other tests. I don't think their usefulness outweighs their maintenance costs at this point. MozReview-Commit-ID: CthMp4xpy1y
toolkit/mozapps/extensions/test/xpcshell/head_addons.js
toolkit/mozapps/extensions/test/xpcshell/test_bug470377_1_strictcompat.js
toolkit/mozapps/extensions/test/xpcshell/test_bug470377_3_strictcompat.js
toolkit/mozapps/extensions/test/xpcshell/test_corrupt_strictcompat.js
toolkit/mozapps/extensions/test/xpcshell/test_install_strictcompat.js
toolkit/mozapps/extensions/test/xpcshell/test_update_strictcompat.js
toolkit/mozapps/extensions/test/xpcshell/test_upgrade_strictcompat.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
@@ -86,42 +86,38 @@ const LEGACY_NON_RESTARTLESS_TESTS = new
   "test_bug393285.js",
   "test_bug394300.js",
   "test_bug397778.js",
   "test_bug406118.js",
   "test_bug425657.js",
   "test_bug449027.js",
   "test_bug455906.js",
   "test_bug470377_1.js",
-  "test_bug470377_1_strictcompat.js",
   "test_bug470377_2.js",
   "test_bug470377_3.js",
-  "test_bug470377_3_strictcompat.js",
   "test_bug470377_4.js",
   "test_bug559800.js",
   "test_bug564030.js",
   "test_bug566626.js",
   "test_bug569138.js",
   "test_bug576735.js",
   "test_bug595573.js",
   "test_bug655254.js",
   "test_bug659772.js",
   "test_bug753900.js",
   "test_cacheflush.js",
   "test_checkcompatibility.js",
   "test_compatoverrides.js",
   "test_corrupt.js",
-  "test_corrupt_strictcompat.js",
   "test_dataDirectory.js",
   "test_disable.js",
   "test_distribution.js",
   "test_error.js",
   "test_filepointer.js",
   "test_install.js",
-  "test_install_strictcompat.js",
   "test_invalid_install_rdf.js",
   "test_isDebuggable.js",
   "test_locale.js",
   "test_manifest.js",
   "test_migrate_state_prefs.js",
   "test_onPropertyChanged_appDisabled.js",
   "test_proxies.js",
   "test_safemode.js",
@@ -133,19 +129,17 @@ const LEGACY_NON_RESTARTLESS_TESTS = new
   "test_strictcompatibility.js",
   "test_syncGUID.js",
   "test_targetPlatforms.js",
   "test_temporary.js",
   "test_undouninstall.js",
   "test_uninstall.js",
   "test_updateCancel.js",
   "test_update_compatmode.js",
-  "test_update_strictcompat.js",
   "test_upgrade.js",
-  "test_upgrade_strictcompat.js",
 ]);
 
 if (LEGACY_NON_RESTARTLESS_TESTS.has(_TEST_FILE[0].replace(/.*\//, ""))) {
   Services.prefs.setBoolPref("extensions.legacy.non-restartless.enabled", true);
 }
 
 const {
   awaitPromise,
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/xpcshell/test_bug470377_1_strictcompat.js
+++ /dev/null
@@ -1,49 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-// Disables security checking our updates which haven't been signed
-Services.prefs.setBoolPref(PREF_EM_CHECK_UPDATE_SECURITY, false);
-Services.prefs.setBoolPref(PREF_EM_STRICT_COMPATIBILITY, true);
-
-var ADDONS = [
-  "test_bug470377_1",
-  "test_bug470377_2",
-  "test_bug470377_3",
-  "test_bug470377_4",
-  "test_bug470377_5",
-];
-
-ChromeUtils.import("resource://testing-common/httpd.js");
-var server;
-
-function run_test() {
-  do_test_pending();
-  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "2", "2");
-
-  server = new HttpServer();
-  server.registerDirectory("/", do_get_file("data/test_bug470377"));
-  server.start(-1);
-
-  startupManager();
-
-  installAllFiles(ADDONS.map(a => do_get_addon(a)), function() {
-    restartManager();
-
-    AddonManager.getAddonsByIDs(["bug470377_1@tests.mozilla.org",
-                                 "bug470377_2@tests.mozilla.org",
-                                 "bug470377_3@tests.mozilla.org",
-                                 "bug470377_4@tests.mozilla.org",
-                                 "bug470377_5@tests.mozilla.org"],
-                                 function([a1, a2, a3, a4, a5]) {
-      Assert.equal(a1, null);
-      Assert.equal(a2, null);
-      Assert.equal(a3, null);
-      Assert.notEqual(a4, null);
-      Assert.notEqual(a5, null);
-
-      server.stop(do_test_finished);
-    });
-  }, true);
-}
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/xpcshell/test_bug470377_3_strictcompat.js
+++ /dev/null
@@ -1,94 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-function run_test() {
-  do_test_pending();
-  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "2.2.3", "2");
-  Services.prefs.setBoolPref(PREF_EM_STRICT_COMPATIBILITY, true);
-
-  // inject the add-ons into the profile
-  var dest = gProfD.clone();
-  dest.append("extensions");
-  dest.append("bug470377_1@tests.mozilla.org");
-  dest.create(Ci.nsIFile.DIRECTORY_TYPE, 0o755);
-  var source = do_get_file("data/test_bug470377/install_1.rdf");
-  source.copyTo(dest, "install.rdf");
-  dest = gProfD.clone();
-  dest.append("extensions");
-  dest.append("bug470377_2@tests.mozilla.org");
-  dest.create(Ci.nsIFile.DIRECTORY_TYPE, 0o755);
-  source = do_get_file("data/test_bug470377/install_2.rdf");
-  source.copyTo(dest, "install.rdf");
-  dest = gProfD.clone();
-  dest.append("extensions");
-  dest.append("bug470377_3@tests.mozilla.org");
-  dest.create(Ci.nsIFile.DIRECTORY_TYPE, 0o755);
-  source = do_get_file("data/test_bug470377/install_3.rdf");
-  source.copyTo(dest, "install.rdf");
-  dest = gProfD.clone();
-  dest.append("extensions");
-  dest.append("bug470377_4@tests.mozilla.org");
-  dest.create(Ci.nsIFile.DIRECTORY_TYPE, 0o755);
-  source = do_get_file("data/test_bug470377/install_4.rdf");
-  source.copyTo(dest, "install.rdf");
-  dest = gProfD.clone();
-  dest.append("extensions");
-  dest.append("bug470377_5@tests.mozilla.org");
-  dest.create(Ci.nsIFile.DIRECTORY_TYPE, 0o755);
-  source = do_get_file("data/test_bug470377/install_5.rdf");
-  source.copyTo(dest, "install.rdf");
-
-  startupManager();
-
-  run_test_1();
-}
-
-function run_test_1() {
-  AddonManager.getAddonsByIDs(["bug470377_1@tests.mozilla.org",
-                               "bug470377_2@tests.mozilla.org",
-                               "bug470377_3@tests.mozilla.org",
-                               "bug470377_4@tests.mozilla.org",
-                               "bug470377_5@tests.mozilla.org"],
-                               function([a1, a2, a3, a4, a5]) {
-    Assert.notEqual(a1, null);
-    Assert.ok(!a1.isActive);
-    Assert.notEqual(a2, null);
-    Assert.ok(!a2.isActive);
-    Assert.notEqual(a3, null);
-    Assert.ok(!a3.isActive);
-    Assert.notEqual(a4, null);
-    Assert.ok(a4.isActive);
-    Assert.notEqual(a5, null);
-    Assert.ok(a5.isActive);
-
-    executeSoon(run_test_2);
-  });
-}
-
-function run_test_2() {
-  AddonManager.checkCompatibility = false;
-
-  restartManager();
-
-  AddonManager.getAddonsByIDs(["bug470377_1@tests.mozilla.org",
-                               "bug470377_2@tests.mozilla.org",
-                               "bug470377_3@tests.mozilla.org",
-                               "bug470377_4@tests.mozilla.org",
-                               "bug470377_5@tests.mozilla.org"],
-                               function([a1, a2, a3, a4, a5]) {
-    Assert.notEqual(a1, null);
-    Assert.ok(!a1.isActive);
-    Assert.notEqual(a2, null);
-    Assert.ok(a2.isActive);
-    Assert.notEqual(a3, null);
-    Assert.ok(a3.isActive);
-    Assert.notEqual(a4, null);
-    Assert.ok(a4.isActive);
-    Assert.notEqual(a5, null);
-    Assert.ok(a5.isActive);
-
-    executeSoon(do_test_finished);
-  });
-}
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/xpcshell/test_corrupt_strictcompat.js
+++ /dev/null
@@ -1,412 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-// Checks that we rebuild something sensible from a corrupt database
-
-
-ChromeUtils.import("resource://testing-common/httpd.js");
-// Create and configure the HTTP server.
-var testserver = new HttpServer();
-testserver.start(-1);
-gPort = testserver.identity.primaryPort;
-
-// register files with server
-testserver.registerDirectory("/addons/", do_get_file("addons"));
-mapFile("/data/test_corrupt.json", testserver);
-
-
-// The test extension uses an insecure update url.
-Services.prefs.setBoolPref(PREF_EM_CHECK_UPDATE_SECURITY, false);
-Services.prefs.setBoolPref(PREF_EM_STRICT_COMPATIBILITY, true);
-
-// Will be enabled
-var addon1 = {
-  id: "addon1@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 1",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "2",
-    maxVersion: "2"
-  }]
-};
-
-// Will be disabled
-var addon2 = {
-  id: "addon2@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 2",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "2",
-    maxVersion: "2"
-  }]
-};
-
-// Will get a compatibility update and be enabled
-var addon3 = {
-  id: "addon3@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 3",
-  updateURL: "http://localhost:" + gPort + "/data/test_corrupt.json",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "1",
-    maxVersion: "1"
-  }]
-};
-
-// Will get a compatibility update and be disabled
-var addon4 = {
-  id: "addon4@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 4",
-  updateURL: "http://localhost:" + gPort + "/data/test_corrupt.json",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "1",
-    maxVersion: "1"
-  }]
-};
-
-// Stays incompatible
-var addon5 = {
-  id: "addon5@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 5",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "1",
-    maxVersion: "1"
-  }]
-};
-
-// Enabled bootstrapped
-var addon6 = {
-  id: "addon6@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 6",
-  bootstrap: "true",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "2",
-    maxVersion: "2"
-  }]
-};
-
-// Disabled bootstrapped
-var addon7 = {
-  id: "addon7@tests.mozilla.org",
-  version: "1.0",
-  name: "Test 7",
-  bootstrap: "true",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "2",
-    maxVersion: "2"
-  }]
-};
-
-// The default theme
-var theme1 = {
-  id: "theme1@tests.mozilla.org",
-  version: "1.0",
-  name: "Theme 1",
-  internalName: "classic/1.0",
-  targetApplications: [{
-    id: "xpcshell@tests.mozilla.org",
-    minVersion: "2",
-    maxVersion: "2"
-  }]
-};
-
-// The selected theme
-var theme2 = {
-  manifest: {
-    manifest_version: 2,
-    name: "Theme 2",
-    version: "1.0",
-    theme: { images: { headerURL: "example.png" } },
-    applications: {
-      gecko: {
-        id: "theme2@tests.mozilla.org",
-      },
-    },
-  },
-};
-
-const profileDir = gProfD.clone();
-profileDir.append("extensions");
-
-function run_test() {
-  do_test_pending();
-  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "2", "2");
-
-  writeInstallRDFForExtension(addon1, profileDir);
-  writeInstallRDFForExtension(addon2, profileDir);
-  writeInstallRDFForExtension(addon3, profileDir);
-  writeInstallRDFForExtension(addon4, profileDir);
-  writeInstallRDFForExtension(addon5, profileDir);
-  writeInstallRDFForExtension(addon6, profileDir);
-  writeInstallRDFForExtension(addon7, profileDir);
-  writeInstallRDFForExtension(theme1, profileDir);
-  let theme2XPI = createTempWebExtensionFile(theme2);
-  AddonTestUtils.manuallyInstall(theme2XPI).then(() => {
-    // Startup the profile and setup the initial state
-    startupManager();
-
-    AddonManager.getAddonsByIDs(["addon2@tests.mozilla.org",
-                                 "addon3@tests.mozilla.org",
-                                 "addon4@tests.mozilla.org",
-                                 "addon7@tests.mozilla.org",
-                                 "theme2@tests.mozilla.org"], function([a2, a3, a4,
-                                                                        a7, t2]) {
-      // Set up the initial state
-      a2.userDisabled = true;
-      a4.userDisabled = true;
-      a7.userDisabled = true;
-      t2.userDisabled = false;
-      a3.findUpdates({
-        onUpdateFinished() {
-          a4.findUpdates({
-            onUpdateFinished() {
-              executeSoon(run_test_1);
-            }
-          }, AddonManager.UPDATE_WHEN_PERIODIC_UPDATE);
-        }
-      }, AddonManager.UPDATE_WHEN_PERIODIC_UPDATE);
-    });
-  });
-}
-
-function end_test() {
-  testserver.stop(do_test_finished);
-}
-
-function run_test_1() {
-  restartManager();
-
-  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",
-                               "theme1@tests.mozilla.org",
-                               "theme2@tests.mozilla.org"],
-                               callback_soon(function([a1, a2, a3, a4, a5, a6, a7, t1, t2]) {
-    Assert.notEqual(a1, null);
-    Assert.ok(a1.isActive);
-    Assert.ok(!a1.userDisabled);
-    Assert.ok(!a1.appDisabled);
-    Assert.equal(a1.pendingOperations, AddonManager.PENDING_NONE);
-
-    Assert.notEqual(a2, null);
-    Assert.ok(!a2.isActive);
-    Assert.ok(a2.userDisabled);
-    Assert.ok(!a2.appDisabled);
-    Assert.equal(a2.pendingOperations, AddonManager.PENDING_NONE);
-
-    Assert.notEqual(a3, null);
-    Assert.ok(a3.isActive);
-    Assert.ok(!a3.userDisabled);
-    Assert.ok(!a3.appDisabled);
-    Assert.equal(a3.pendingOperations, AddonManager.PENDING_NONE);
-
-    Assert.notEqual(a4, null);
-    Assert.ok(!a4.isActive);
-    Assert.ok(a4.userDisabled);
-    Assert.ok(!a4.appDisabled);
-    Assert.equal(a4.pendingOperations, AddonManager.PENDING_NONE);
-
-    Assert.notEqual(a5, null);
-    Assert.ok(!a5.isActive);
-    Assert.ok(!a5.userDisabled);
-    Assert.ok(a5.appDisabled);
-    Assert.equal(a5.pendingOperations, AddonManager.PENDING_NONE);
-
-    Assert.notEqual(a6, null);
-    Assert.ok(a6.isActive);
-    Assert.ok(!a6.userDisabled);
-    Assert.ok(!a6.appDisabled);
-    Assert.equal(a6.pendingOperations, AddonManager.PENDING_NONE);
-
-    Assert.notEqual(a7, null);
-    Assert.ok(!a7.isActive);
-    Assert.ok(a7.userDisabled);
-    Assert.ok(!a7.appDisabled);
-    Assert.equal(a7.pendingOperations, AddonManager.PENDING_NONE);
-
-    Assert.notEqual(t1, null);
-    Assert.ok(!t1.isActive);
-    Assert.ok(t1.userDisabled);
-    Assert.ok(!t1.appDisabled);
-    Assert.equal(t1.pendingOperations, AddonManager.PENDING_NONE);
-
-    Assert.notEqual(t2, null);
-    Assert.ok(t2.isActive);
-    Assert.ok(!t2.userDisabled);
-    Assert.ok(!t2.appDisabled);
-    Assert.equal(t2.pendingOperations, AddonManager.PENDING_NONE);
-
-    // Shutdown and replace the database with a corrupt file (a directory
-    // serves this purpose). On startup the add-ons manager won't rebuild
-    // because there is a file there still.
-    shutdownManager();
-    gExtensionsJSON.remove(true);
-    gExtensionsJSON.create(AM_Ci.nsIFile.DIRECTORY_TYPE, FileUtils.PERMS_DIRECTORY);
-    startupManager(false);
-
-    // Accessing the add-ons should open and recover the database
-    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",
-                                 "theme1@tests.mozilla.org",
-                                 "theme2@tests.mozilla.org"],
-                                 callback_soon(function([a1_2, a2_2, a3_2, a4_2, a5_2, a6_2, a7_2, t1_2, t2_2]) {
-      // Should be correctly recovered
-      Assert.notEqual(a1_2, null);
-      Assert.ok(a1_2.isActive);
-      Assert.ok(!a1_2.userDisabled);
-      Assert.ok(!a1_2.appDisabled);
-      Assert.equal(a1_2.pendingOperations, AddonManager.PENDING_NONE);
-
-      // Should be correctly recovered
-      Assert.notEqual(a2_2, null);
-      Assert.ok(!a2_2.isActive);
-      Assert.ok(a2_2.userDisabled);
-      Assert.ok(!a2_2.appDisabled);
-      Assert.equal(a2_2.pendingOperations, AddonManager.PENDING_NONE);
-
-      // The compatibility update won't be recovered but it should still be
-      // active for this session
-      Assert.notEqual(a3_2, null);
-      Assert.ok(a3_2.isActive);
-      Assert.ok(!a3_2.userDisabled);
-      Assert.ok(a3_2.appDisabled);
-      Assert.equal(a3_2.pendingOperations, AddonManager.PENDING_DISABLE);
-
-      // The compatibility update won't be recovered and it will not have been
-      // able to tell that it was previously userDisabled
-      Assert.notEqual(a4_2, null);
-      Assert.ok(!a4_2.isActive);
-      Assert.ok(!a4_2.userDisabled);
-      Assert.ok(a4_2.appDisabled);
-      Assert.equal(a4_2.pendingOperations, AddonManager.PENDING_NONE);
-
-      Assert.notEqual(a5_2, null);
-      Assert.ok(!a5_2.isActive);
-      Assert.ok(!a5_2.userDisabled);
-      Assert.ok(a5_2.appDisabled);
-      Assert.equal(a5_2.pendingOperations, AddonManager.PENDING_NONE);
-
-      Assert.notEqual(a6_2, null);
-      Assert.ok(a6_2.isActive);
-      Assert.ok(!a6_2.userDisabled);
-      Assert.ok(!a6_2.appDisabled);
-      Assert.equal(a6_2.pendingOperations, AddonManager.PENDING_NONE);
-
-      Assert.notEqual(a7_2, null);
-      Assert.ok(!a7_2.isActive);
-      Assert.ok(a7_2.userDisabled);
-      Assert.ok(!a7_2.appDisabled);
-      Assert.equal(a7_2.pendingOperations, AddonManager.PENDING_NONE);
-
-      // Should be correctly recovered
-      Assert.notEqual(t1_2, null);
-      // Disabled due to bug 1394117
-      // do_check_false(t1_2.isActive);
-      // do_check_true(t1_2.userDisabled);
-      Assert.ok(!t1_2.appDisabled);
-      Assert.equal(t1_2.pendingOperations, AddonManager.PENDING_NONE);
-
-      // Should be correctly recovered
-      Assert.notEqual(t2_2, null);
-      Assert.ok(t2_2.isActive);
-      // Disabled due to bug 1394117
-      // do_check_false(t2_2.userDisabled);
-      Assert.ok(!t2_2.appDisabled);
-      // do_check_eq(t2_2.pendingOperations, AddonManager.PENDING_NONE);
-
-      Assert.throws(shutdownManager);
-      startupManager(false);
-
-      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",
-                                   "theme1@tests.mozilla.org",
-                                   "theme2@tests.mozilla.org"],
-                                   callback_soon(function([a1_3, a2_3, a3_3, a4_3, a5_3, a6_3, a7_3, t1_3, t2_3]) {
-        Assert.notEqual(a1_3, null);
-        Assert.ok(a1_3.isActive);
-        Assert.ok(!a1_3.userDisabled);
-        Assert.ok(!a1_3.appDisabled);
-        Assert.equal(a1_3.pendingOperations, AddonManager.PENDING_NONE);
-
-        Assert.notEqual(a2_3, null);
-        Assert.ok(!a2_3.isActive);
-        Assert.ok(a2_3.userDisabled);
-        Assert.ok(!a2_3.appDisabled);
-        Assert.equal(a2_3.pendingOperations, AddonManager.PENDING_NONE);
-
-        Assert.notEqual(a3_3, null);
-        Assert.ok(!a3_3.isActive);
-        Assert.ok(!a3_3.userDisabled);
-        Assert.ok(a3_3.appDisabled);
-        Assert.equal(a3_3.pendingOperations, AddonManager.PENDING_NONE);
-
-        Assert.notEqual(a4_3, null);
-        Assert.ok(!a4_3.isActive);
-        Assert.ok(!a4_3.userDisabled);
-        Assert.ok(a4_3.appDisabled);
-        Assert.equal(a4_3.pendingOperations, AddonManager.PENDING_NONE);
-
-        Assert.notEqual(a5_3, null);
-        Assert.ok(!a5_3.isActive);
-        Assert.ok(!a5_3.userDisabled);
-        Assert.ok(a5_3.appDisabled);
-        Assert.equal(a5_3.pendingOperations, AddonManager.PENDING_NONE);
-
-        Assert.notEqual(a6_3, null);
-        Assert.ok(a6_3.isActive);
-        Assert.ok(!a6_3.userDisabled);
-        Assert.ok(!a6_3.appDisabled);
-        Assert.equal(a6_3.pendingOperations, AddonManager.PENDING_NONE);
-
-        Assert.notEqual(a7_3, null);
-        Assert.ok(!a7_3.isActive);
-        Assert.ok(a7_3.userDisabled);
-        Assert.ok(!a7_3.appDisabled);
-        Assert.equal(a7_3.pendingOperations, AddonManager.PENDING_NONE);
-
-        Assert.notEqual(t1_3, null);
-        // Disabled due to bug 1394117
-        // do_check_false(t1_3.isActive);
-        // do_check_true(t1_3.userDisabled);
-        Assert.ok(!t1_3.appDisabled);
-        Assert.equal(t1_3.pendingOperations, AddonManager.PENDING_NONE);
-
-        Assert.notEqual(t2_3, null);
-        // Disabled due to bug 1394117
-        // do_check_true(t2_3.isActive);
-        // do_check_false(t2_3.userDisabled);
-        Assert.ok(!t2_3.appDisabled);
-        Assert.equal(t2_3.pendingOperations, AddonManager.PENDING_NONE);
-
-        Assert.throws(shutdownManager);
-
-        end_test();
-      }));
-    }));
-  }));
-}
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/xpcshell/test_install_strictcompat.js
+++ /dev/null
@@ -1,1421 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-// This verifies that add-ons can be installed from XPI files
-// install.rdf size, icon.png, icon64.png size
-const ADDON1_SIZE = 705 + 16 + 16;
-
-ChromeUtils.import("resource://gre/modules/Services.jsm");
-ChromeUtils.import("resource://gre/modules/NetUtil.jsm");
-ChromeUtils.import("resource://testing-common/httpd.js");
-
-var testserver;
-var gInstallDate;
-
-// The test extension uses an insecure update url.
-Services.prefs.setBoolPref(PREF_EM_CHECK_UPDATE_SECURITY, false);
-Services.prefs.setBoolPref(PREF_EM_STRICT_COMPATIBILITY, true);
-
-
-const profileDir = gProfD.clone();
-profileDir.append("extensions");
-
-function run_test() {
-  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
-
-  startupManager();
-  // Make sure we only register once despite multiple calls
-  AddonManager.addInstallListener(InstallListener);
-  AddonManager.addAddonListener(AddonListener);
-  AddonManager.addInstallListener(InstallListener);
-  AddonManager.addAddonListener(AddonListener);
-
-  // Create and configure the HTTP server.
-  testserver = AddonTestUtils.createHttpServer({hosts: ["example.com"]});
-  testserver.registerDirectory("/addons/", do_get_file("addons"));
-  testserver.registerDirectory("/data/", do_get_file("data"));
-  testserver.registerPathHandler("/redirect", function(aRequest, aResponse) {
-    aResponse.setStatusLine(null, 301, "Moved Permanently");
-    let url = aRequest.host + ":" + aRequest.port + aRequest.queryString;
-    aResponse.setHeader("Location", "http://" + url);
-  });
-
-  do_test_pending();
-  run_test_1();
-}
-
-function end_test() {
-  do_test_finished();
-}
-
-// Checks that an install from a local file proceeds as expected
-function run_test_1() {
-  prepare_test({ }, [
-    "onNewInstall"
-  ]);
-
-  AddonManager.getInstallForFile(do_get_addon("test_install1"), function(install) {
-    ensure_test_completed();
-
-    Assert.notEqual(install, null);
-    Assert.equal(install.type, "extension");
-    Assert.equal(install.version, "1.0");
-    Assert.equal(install.name, "Test 1");
-    Assert.equal(install.state, AddonManager.STATE_DOWNLOADED);
-    Assert.ok(install.addon.hasResource("install.rdf"));
-    Assert.equal(install.addon.install, install);
-    Assert.equal(install.addon.size, ADDON1_SIZE);
-    Assert.ok(hasFlag(install.addon.operationsRequiringRestart,
-                      AddonManager.OP_NEEDS_RESTART_INSTALL));
-    let file = do_get_addon("test_install1");
-    let uri = Services.io.newFileURI(file).spec;
-    Assert.equal(install.addon.getResourceURI("install.rdf").spec, "jar:" + uri + "!/install.rdf");
-    Assert.equal(install.addon.iconURL, "jar:" + uri + "!/icon.png");
-    Assert.equal(install.addon.icon64URL, "jar:" + uri + "!/icon64.png");
-    Assert.equal(install.iconURL, null);
-
-    Assert.equal(install.sourceURI.spec, uri);
-    Assert.equal(install.addon.sourceURI.spec, uri);
-
-    AddonManager.getAllInstalls(function(activeInstalls) {
-      Assert.equal(activeInstalls.length, 1);
-      Assert.equal(activeInstalls[0], install);
-
-      AddonManager.getInstallsByTypes(["foo"], function(fooInstalls) {
-        Assert.equal(fooInstalls.length, 0);
-
-        AddonManager.getInstallsByTypes(["extension"], function(extensionInstalls) {
-          Assert.equal(extensionInstalls.length, 1);
-          Assert.equal(extensionInstalls[0], install);
-
-          prepare_test({
-            "addon1@tests.mozilla.org": [
-              "onInstalling"
-            ]
-          }, [
-            "onInstallStarted",
-            "onInstallEnded",
-          ], check_test_1);
-          install.install();
-        });
-      });
-    });
-  });
-}
-
-function check_test_1() {
-  ensure_test_completed();
-  AddonManager.getAddonByID("addon1@tests.mozilla.org", function(olda1) {
-    Assert.equal(olda1, null);
-
-    AddonManager.getAddonsWithOperationsByTypes(null, callback_soon(async function(pendingAddons) {
-      Assert.equal(pendingAddons.length, 1);
-      Assert.equal(pendingAddons[0].id, "addon1@tests.mozilla.org");
-      let uri = NetUtil.newURI(pendingAddons[0].iconURL);
-      if (uri instanceof AM_Ci.nsIJARURI) {
-        let jarURI = uri.QueryInterface(AM_Ci.nsIJARURI);
-        let archiveURI = jarURI.JARFile;
-        let archiveFile = archiveURI.QueryInterface(AM_Ci.nsIFileURL).file;
-        let zipReader = Cc["@mozilla.org/libjar/zip-reader;1"].
-                        createInstance(Ci.nsIZipReader);
-        try {
-          zipReader.open(archiveFile);
-          Assert.ok(zipReader.hasEntry(jarURI.JAREntry));
-        } finally {
-          zipReader.close();
-        }
-      } else {
-        let iconFile = uri.QueryInterface(AM_Ci.nsIFileURL).file;
-        Assert.ok(iconFile.exists());
-      }
-
-      // Make the pending install have a sensible date
-      let updateDate = Date.now();
-      let extURI = pendingAddons[0].getResourceURI("");
-      let ext = extURI.QueryInterface(AM_Ci.nsIFileURL).file;
-      setExtensionModifiedTime(ext, updateDate);
-
-      // The pending add-on cannot be disabled or enabled.
-      Assert.ok(!hasFlag(pendingAddons[0].permissions, AddonManager.PERM_CAN_ENABLE));
-      Assert.ok(!hasFlag(pendingAddons[0].permissions, AddonManager.PERM_CAN_DISABLE));
-
-      await promiseRestartManager();
-
-      AddonManager.getAllInstalls(function(activeInstalls) {
-        Assert.equal(activeInstalls, 0);
-
-        AddonManager.getAddonByID("addon1@tests.mozilla.org", function(a1) {
-          Assert.notEqual(a1, null);
-          Assert.equal(a1.type, "extension");
-          Assert.equal(a1.version, "1.0");
-          Assert.equal(a1.name, "Test 1");
-          Assert.ok(isExtensionInAddonsList(profileDir, a1.id));
-          Assert.ok(do_get_addon("test_install1").exists());
-          do_check_in_crash_annotation(a1.id, a1.version);
-          Assert.equal(a1.size, ADDON1_SIZE);
-
-          Assert.equal(a1.sourceURI.spec,
-                       Services.io.newFileURI(do_get_addon("test_install1")).spec);
-          let difference = a1.installDate.getTime() - updateDate;
-          if (Math.abs(difference) > MAX_TIME_DIFFERENCE)
-            do_throw("Add-on install time was out by " + difference + "ms");
-
-          difference = a1.updateDate.getTime() - updateDate;
-          if (Math.abs(difference) > MAX_TIME_DIFFERENCE)
-            do_throw("Add-on update time was out by " + difference + "ms");
-
-          Assert.ok(a1.hasResource("install.rdf"));
-          Assert.ok(!a1.hasResource("foo.bar"));
-
-          let root_uri = do_get_addon_root_uri(profileDir, "addon1@tests.mozilla.org");
-          Assert.equal(a1.getResourceURI("install.rdf").spec, root_uri + "install.rdf");
-          Assert.equal(a1.iconURL, root_uri + "icon.png");
-          Assert.equal(a1.icon64URL, root_uri + "icon64.png");
-
-          a1.uninstall();
-          executeSoon(function() { run_test_2(a1); });
-        });
-      });
-    }));
-  });
-}
-
-// Tests that an install from a url downloads.
-function run_test_2(aAddon) {
-  let { id, version } = aAddon;
-  restartManager();
-  do_check_not_in_crash_annotation(id, version);
-
-  let url = "http://example.com/addons/test_install2_1.xpi";
-  AddonManager.getInstallForURL(url, function(install) {
-    Assert.notEqual(install, null);
-    Assert.equal(install.version, "1.0");
-    Assert.equal(install.name, "Test 2");
-    Assert.equal(install.state, AddonManager.STATE_AVAILABLE);
-    Assert.equal(install.iconURL, null);
-    Assert.equal(install.sourceURI.spec, url);
-
-    AddonManager.getAllInstalls(function(activeInstalls) {
-      Assert.equal(activeInstalls.length, 1);
-      Assert.equal(activeInstalls[0], install);
-
-      prepare_test({}, [
-        "onDownloadStarted",
-        "onDownloadEnded",
-      ], check_test_2);
-
-      install.addListener({
-        onDownloadProgress() {
-          executeSoon(function() {
-            Cu.forceGC();
-          });
-        }
-      });
-
-      install.install();
-    });
-  }, "application/x-xpinstall", null, "Test 2", null, "1.0");
-}
-
-function check_test_2(install) {
-  ensure_test_completed();
-  Assert.equal(install.version, "2.0");
-  Assert.equal(install.name, "Real Test 2");
-  Assert.equal(install.state, AddonManager.STATE_DOWNLOADED);
-  Assert.equal(install.addon.install, install);
-  Assert.ok(hasFlag(install.addon.operationsRequiringRestart,
-                    AddonManager.OP_NEEDS_RESTART_INSTALL));
-  Assert.equal(install.iconURL, null);
-
-  // Pause the install here and start it again in run_test_3
-  executeSoon(function() { run_test_3(install); });
-  return false;
-}
-
-// Tests that the downloaded XPI installs ok
-function run_test_3(install) {
-  prepare_test({
-    "addon2@tests.mozilla.org": [
-      "onInstalling"
-    ]
-  }, [
-    "onInstallStarted",
-    "onInstallEnded",
-  ], check_test_3);
-  install.install();
-}
-
-function check_test_3(aInstall) {
-  // Make the pending install have a sensible date
-  let updateDate = Date.now();
-  let extURI = aInstall.addon.getResourceURI("");
-  let ext = extURI.QueryInterface(AM_Ci.nsIFileURL).file;
-  setExtensionModifiedTime(ext, updateDate);
-
-  ensure_test_completed();
-  AddonManager.getAddonByID("addon2@tests.mozilla.org", callback_soon(async function(olda2) {
-    Assert.equal(olda2, null);
-    await promiseRestartManager();
-
-    AddonManager.getAllInstalls(function(installs) {
-      Assert.equal(installs, 0);
-
-      AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2) {
-        Assert.notEqual(a2, null);
-        Assert.equal(a2.type, "extension");
-        Assert.equal(a2.version, "2.0");
-        Assert.equal(a2.name, "Real Test 2");
-        Assert.ok(isExtensionInAddonsList(profileDir, a2.id));
-        Assert.ok(do_get_addon("test_install2_1").exists());
-        do_check_in_crash_annotation(a2.id, a2.version);
-        Assert.equal(a2.sourceURI.spec,
-                     "http://example.com/addons/test_install2_1.xpi");
-
-        let difference = a2.installDate.getTime() - updateDate;
-        if (Math.abs(difference) > MAX_TIME_DIFFERENCE)
-          do_throw("Add-on install time was out by " + difference + "ms");
-
-        difference = a2.updateDate.getTime() - updateDate;
-        if (Math.abs(difference) > MAX_TIME_DIFFERENCE)
-          do_throw("Add-on update time was out by " + difference + "ms");
-
-        gInstallDate = a2.installDate.getTime();
-
-        run_test_4();
-      });
-    });
-  }));
-}
-
-// Tests that installing a new version of an existing add-on works
-function run_test_4() {
-  prepare_test({ }, [
-    "onNewInstall"
-  ]);
-
-  let url = "http://example.com/addons/test_install2_2.xpi";
-  AddonManager.getInstallForURL(url, function(install) {
-    ensure_test_completed();
-
-    Assert.notEqual(install, null);
-    Assert.equal(install.version, "3.0");
-    Assert.equal(install.name, "Test 3");
-    Assert.equal(install.state, AddonManager.STATE_AVAILABLE);
-
-    AddonManager.getAllInstalls(function(activeInstalls) {
-      Assert.equal(activeInstalls.length, 1);
-      Assert.equal(activeInstalls[0], install);
-      Assert.equal(install.existingAddon, null);
-
-      prepare_test({}, [
-        "onDownloadStarted",
-        "onDownloadEnded",
-      ], check_test_4);
-      install.install();
-    });
-  }, "application/x-xpinstall", null, "Test 3", null, "3.0");
-}
-
-function check_test_4(install) {
-  ensure_test_completed();
-
-  Assert.equal(install.version, "3.0");
-  Assert.equal(install.name, "Real Test 3");
-  Assert.equal(install.state, AddonManager.STATE_DOWNLOADED);
-  Assert.ok(install.existingAddon);
-  Assert.equal(install.existingAddon.id, "addon2@tests.mozilla.org");
-  Assert.equal(install.addon.install, install);
-  Assert.ok(hasFlag(install.addon.operationsRequiringRestart,
-                    AddonManager.OP_NEEDS_RESTART_INSTALL));
-
-  run_test_5();
-  // Installation will continue when there is nothing returned.
-}
-
-// Continue installing the new version
-function run_test_5() {
-  prepare_test({
-    "addon2@tests.mozilla.org": [
-      "onInstalling"
-    ]
-  }, [
-    "onInstallStarted",
-    "onInstallEnded",
-  ], check_test_5);
-}
-
-function check_test_5(install) {
-  ensure_test_completed();
-
-  Assert.equal(install.existingAddon.pendingUpgrade.install, install);
-
-  AddonManager.getAddonByID("addon2@tests.mozilla.org", function(olda2) {
-    Assert.notEqual(olda2, null);
-    Assert.ok(hasFlag(olda2.pendingOperations, AddonManager.PENDING_UPGRADE));
-
-    AddonManager.getInstallsByTypes(null, callback_soon(async function(installs) {
-      Assert.equal(installs.length, 1);
-      Assert.equal(installs[0].addon, olda2.pendingUpgrade);
-      await promiseRestartManager();
-
-      AddonManager.getInstallsByTypes(null, function(installs2) {
-        Assert.equal(installs2.length, 0);
-
-        AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2) {
-          Assert.notEqual(a2, null);
-          Assert.equal(a2.type, "extension");
-          Assert.equal(a2.version, "3.0");
-          Assert.equal(a2.name, "Real Test 3");
-          Assert.ok(a2.isActive);
-          Assert.ok(isExtensionInAddonsList(profileDir, a2.id));
-          Assert.ok(do_get_addon("test_install2_2").exists());
-          do_check_in_crash_annotation(a2.id, a2.version);
-          Assert.equal(a2.sourceURI.spec,
-                       "http://example.com/addons/test_install2_2.xpi");
-
-          Assert.equal(a2.installDate.getTime(), gInstallDate);
-          // Update date should be later (or the same if this test is too fast)
-          Assert.ok(a2.installDate <= a2.updateDate);
-
-          a2.uninstall();
-          executeSoon(run_test_6);
-        });
-      });
-    }));
-  });
-}
-
-// Tests that an install that requires a compatibility update works
-function run_test_6() {
-  restartManager();
-
-  prepare_test({ }, [
-    "onNewInstall"
-  ]);
-
-  let url = "http://example.com/addons/test_install3.xpi";
-  AddonManager.getInstallForURL(url, function(install) {
-    ensure_test_completed();
-
-    Assert.notEqual(install, null);
-    Assert.equal(install.version, "1.0");
-    Assert.equal(install.name, "Real Test 4");
-    Assert.equal(install.state, AddonManager.STATE_AVAILABLE);
-
-    AddonManager.getInstallsByTypes(null, function(activeInstalls) {
-      Assert.equal(activeInstalls.length, 1);
-      Assert.equal(activeInstalls[0], install);
-
-      prepare_test({}, [
-        "onDownloadStarted",
-        "onDownloadEnded",
-      ], check_test_6);
-      install.install();
-    });
-  }, "application/x-xpinstall", null, "Real Test 4", null, "1.0");
-}
-
-function check_test_6(install) {
-  ensure_test_completed();
-  Assert.equal(install.version, "1.0");
-  Assert.equal(install.name, "Real Test 4");
-  Assert.equal(install.state, AddonManager.STATE_DOWNLOADED);
-  Assert.equal(install.existingAddon, null);
-  Assert.ok(!install.addon.appDisabled);
-  run_test_7();
-  return true;
-}
-
-// Continue the install
-function run_test_7() {
-  prepare_test({
-    "addon3@tests.mozilla.org": [
-      "onInstalling"
-    ]
-  }, [
-    "onInstallStarted",
-    "onInstallEnded",
-  ], check_test_7);
-}
-
-function check_test_7() {
-  ensure_test_completed();
-  AddonManager.getAddonByID("addon3@tests.mozilla.org", callback_soon(async function(olda3) {
-    Assert.equal(olda3, null);
-    await promiseRestartManager();
-
-    AddonManager.getAllInstalls(function(installs) {
-      Assert.equal(installs, 0);
-
-      AddonManager.getAddonByID("addon3@tests.mozilla.org", function(a3) {
-        Assert.notEqual(a3, null);
-        Assert.equal(a3.type, "extension");
-        Assert.equal(a3.version, "1.0");
-        Assert.equal(a3.name, "Real Test 4");
-        Assert.ok(a3.isActive);
-        Assert.ok(!a3.appDisabled);
-        Assert.ok(isExtensionInAddonsList(profileDir, a3.id));
-        Assert.ok(do_get_addon("test_install3").exists());
-        a3.uninstall();
-        executeSoon(run_test_8);
-      });
-    });
-  }));
-}
-
-function run_test_8() {
-  restartManager();
-
-  AddonManager.addInstallListener(InstallListener);
-  AddonManager.addAddonListener(AddonListener);
-
-  prepare_test({ }, [
-    "onNewInstall"
-  ]);
-
-  AddonManager.getInstallForFile(do_get_addon("test_install3"), function(install) {
-    Assert.ok(install.addon.isCompatible);
-
-    prepare_test({
-      "addon3@tests.mozilla.org": [
-        "onInstalling"
-      ]
-    }, [
-      "onInstallStarted",
-      "onInstallEnded",
-    ], callback_soon(check_test_8));
-    install.install();
-  });
-}
-
-async function check_test_8() {
-  await promiseRestartManager();
-
-  AddonManager.getAddonByID("addon3@tests.mozilla.org", function(a3) {
-    Assert.notEqual(a3, null);
-    Assert.equal(a3.type, "extension");
-    Assert.equal(a3.version, "1.0");
-    Assert.equal(a3.name, "Real Test 4");
-    Assert.ok(a3.isActive);
-    Assert.ok(!a3.appDisabled);
-    Assert.ok(isExtensionInAddonsList(profileDir, a3.id));
-    Assert.ok(do_get_addon("test_install3").exists());
-    a3.uninstall();
-    executeSoon(run_test_9);
-  });
-}
-
-// Test that after cancelling a download it is removed from the active installs
-function run_test_9() {
-  restartManager();
-
-  prepare_test({ }, [
-    "onNewInstall"
-  ]);
-
-  let url = "http://example.com/addons/test_install3.xpi";
-  AddonManager.getInstallForURL(url, function(install) {
-    ensure_test_completed();
-
-    Assert.notEqual(install, null);
-    Assert.equal(install.version, "1.0");
-    Assert.equal(install.name, "Real Test 4");
-    Assert.equal(install.state, AddonManager.STATE_AVAILABLE);
-
-    AddonManager.getInstallsByTypes(null, function(activeInstalls) {
-      Assert.equal(activeInstalls.length, 1);
-      Assert.equal(activeInstalls[0], install);
-
-      prepare_test({}, [
-        "onDownloadStarted",
-        "onDownloadEnded",
-      ], check_test_9);
-      install.install();
-    });
-  }, "application/x-xpinstall", null, "Real Test 4", null, "1.0");
-}
-
-function check_test_9(install) {
-  prepare_test({}, [
-    "onDownloadCancelled"
-  ], function() {
-    let file = install.file;
-
-    // Allow the file removal to complete
-    executeSoon(function() {
-      AddonManager.getAllInstalls(function(activeInstalls) {
-        Assert.equal(activeInstalls.length, 0);
-        Assert.ok(!file.exists());
-
-        run_test_10();
-      });
-    });
-  });
-
-  install.cancel();
-}
-
-// Tests that after cancelling a pending install it is removed from the active
-// installs
-function run_test_10() {
-  prepare_test({ }, [
-    "onNewInstall"
-  ]);
-
-  let url = "http://example.com/addons/test_install3.xpi";
-  AddonManager.getInstallForURL(url, function(install) {
-    ensure_test_completed();
-
-    Assert.notEqual(install, null);
-    Assert.equal(install.version, "1.0");
-    Assert.equal(install.name, "Real Test 4");
-    Assert.equal(install.state, AddonManager.STATE_AVAILABLE);
-
-    AddonManager.getInstallsByTypes(null, function(activeInstalls) {
-      Assert.equal(activeInstalls.length, 1);
-      Assert.equal(activeInstalls[0], install);
-
-      prepare_test({
-        "addon3@tests.mozilla.org": [
-          "onInstalling"
-        ]
-      }, [
-        "onDownloadStarted",
-        "onDownloadEnded",
-        "onInstallStarted",
-        "onInstallEnded"
-      ], check_test_10);
-      install.install();
-    });
-  }, "application/x-xpinstall", null, "Real Test 4", null, "1.0");
-}
-
-function check_test_10(install) {
-  prepare_test({
-    "addon3@tests.mozilla.org": [
-      "onOperationCancelled"
-    ]
-  }, [
-    "onInstallCancelled"
-  ]);
-
-  install.cancel();
-
-  ensure_test_completed();
-
-  AddonManager.getAllInstalls(callback_soon(function(activeInstalls) {
-    Assert.equal(activeInstalls.length, 0);
-
-    restartManager();
-
-    // Check that the install did not complete
-    AddonManager.getAddonByID("addon3@tests.mozilla.org", function(a3) {
-      Assert.equal(a3, null);
-
-      run_test_11();
-    });
-  }));
-}
-
-function run_test_11() {
-  // Tests 11 and 12 were removed, to avoid churn of renumbering,
-  // just jump ahead to 13 here
-  run_test_13();
-}
-
-
-// Tests that cancelling an upgrade leaves the original add-on's pendingOperations
-// correct
-function run_test_13() {
-  restartManager();
-
-  installAllFiles([do_get_addon("test_install2_1")], function() {
-    restartManager();
-
-    prepare_test({ }, [
-      "onNewInstall"
-    ]);
-
-    let url = "http://example.com/addons/test_install2_2.xpi";
-    AddonManager.getInstallForURL(url, function(install) {
-      ensure_test_completed();
-
-      Assert.notEqual(install, null);
-      Assert.equal(install.version, "3.0");
-      Assert.equal(install.name, "Test 3");
-      Assert.equal(install.state, AddonManager.STATE_AVAILABLE);
-
-      AddonManager.getAllInstalls(function(activeInstalls) {
-        Assert.equal(activeInstalls.length, 1);
-        Assert.equal(activeInstalls[0], install);
-        Assert.equal(install.existingAddon, null);
-
-        prepare_test({
-          "addon2@tests.mozilla.org": [
-            "onInstalling"
-          ]
-        }, [
-          "onDownloadStarted",
-          "onDownloadEnded",
-          "onInstallStarted",
-          "onInstallEnded",
-        ], check_test_13);
-        install.install();
-      });
-    }, "application/x-xpinstall", null, "Test 3", null, "3.0");
-  });
-}
-
-function check_test_13(install) {
-  ensure_test_completed();
-
-  Assert.equal(install.version, "3.0");
-  Assert.equal(install.name, "Real Test 3");
-  Assert.equal(install.state, AddonManager.STATE_INSTALLED);
-  Assert.notEqual(install.existingAddon, null);
-  Assert.equal(install.existingAddon.id, "addon2@tests.mozilla.org");
-  Assert.equal(install.addon.install, install);
-
-  AddonManager.getAddonByID("addon2@tests.mozilla.org", callback_soon(function(olda2) {
-    Assert.notEqual(olda2, null);
-    Assert.ok(hasFlag(olda2.pendingOperations, AddonManager.PENDING_UPGRADE));
-    Assert.equal(olda2.pendingUpgrade, install.addon);
-
-    Assert.ok(hasFlag(install.addon.pendingOperations,
-                      AddonManager.PENDING_INSTALL));
-
-    prepare_test({
-      "addon2@tests.mozilla.org": [
-        "onOperationCancelled"
-      ]
-    }, [
-      "onInstallCancelled",
-    ]);
-
-    install.cancel();
-
-    Assert.ok(!hasFlag(install.addon.pendingOperations, AddonManager.PENDING_INSTALL));
-
-    Assert.ok(!hasFlag(olda2.pendingOperations, AddonManager.PENDING_UPGRADE));
-    Assert.equal(olda2.pendingUpgrade, null);
-
-    restartManager();
-
-    // Check that the upgrade did not complete
-    AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2) {
-      Assert.equal(a2.version, "2.0");
-
-      a2.uninstall();
-
-      executeSoon(run_test_14);
-    });
-  }));
-}
-
-// Check that cancelling the install from onDownloadStarted actually cancels it
-function run_test_14() {
-  restartManager();
-
-  prepare_test({ }, [
-    "onNewInstall"
-  ]);
-
-  let url = "http://example.com/addons/test_install2_1.xpi";
-  AddonManager.getInstallForURL(url, function(install) {
-    ensure_test_completed();
-
-    Assert.equal(install.file, null);
-
-    prepare_test({ }, [
-      "onDownloadStarted"
-    ], check_test_14);
-    install.install();
-  }, "application/x-xpinstall");
-}
-
-function check_test_14(install) {
-  prepare_test({ }, [
-    "onDownloadCancelled"
-  ], function() {
-    let file = install.file;
-
-    install.addListener({
-      onDownloadProgress() {
-        do_throw("Download should not have continued");
-      },
-      onDownloadEnded() {
-        do_throw("Download should not have continued");
-      }
-    });
-
-    // Allow the listener to return to see if it continues downloading. The
-    // The listener only really tests if we give it time to see progress, the
-    // file check isn't ideal either
-    executeSoon(function() {
-      Assert.ok(!file.exists());
-
-      run_test_15();
-    });
-  });
-
-  // Wait for the channel to be ready to cancel
-  executeSoon(function() {
-    install.cancel();
-  });
-}
-
-// Checks that cancelling the install from onDownloadEnded actually cancels it
-function run_test_15() {
-  prepare_test({ }, [
-    "onNewInstall"
-  ]);
-
-  let url = "http://example.com/addons/test_install2_1.xpi";
-  AddonManager.getInstallForURL(url, function(install) {
-    ensure_test_completed();
-
-    Assert.equal(install.file, null);
-
-    prepare_test({ }, [
-      "onDownloadStarted",
-      "onDownloadEnded"
-    ], check_test_15);
-    install.install();
-  }, "application/x-xpinstall");
-}
-
-function check_test_15(install) {
-  prepare_test({ }, [
-    "onDownloadCancelled"
-  ]);
-
-  install.cancel();
-
-  ensure_test_completed();
-
-  install.addListener({
-    onInstallStarted() {
-      do_throw("Install should not have continued");
-    }
-  });
-
-  // Allow the listener to return to see if it starts installing
-  executeSoon(run_test_16);
-}
-
-// Verify that the userDisabled value carries over to the upgrade by default
-function run_test_16() {
-  restartManager();
-
-  let url = "http://example.com/addons/test_install2_1.xpi";
-  AddonManager.getInstallForURL(url, function(aInstall) {
-    aInstall.addListener({
-      onInstallStarted() {
-        Assert.ok(!aInstall.addon.userDisabled);
-        aInstall.addon.userDisabled = true;
-      },
-
-      onInstallEnded() {
-       executeSoon(function test16_install1() {
-        restartManager();
-
-        AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2) {
-          Assert.ok(a2.userDisabled);
-          Assert.ok(!a2.isActive);
-
-          let url_2 = "http://example.com/addons/test_install2_2.xpi";
-          AddonManager.getInstallForURL(url_2, function(aInstall_2) {
-            aInstall_2.addListener({
-              onInstallEnded() {
-               executeSoon(function test16_install2() {
-                Assert.ok(aInstall_2.addon.userDisabled);
-
-                restartManager();
-
-                AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2_2) {
-                  Assert.ok(a2_2.userDisabled);
-                  Assert.ok(!a2_2.isActive);
-
-                  a2_2.uninstall();
-                  executeSoon(run_test_17);
-                });
-               });
-              }
-            });
-            aInstall_2.install();
-          }, "application/x-xpinstall");
-        });
-       });
-      }
-    });
-    aInstall.install();
-  }, "application/x-xpinstall");
-}
-
-// Verify that changing the userDisabled value before onInstallEnded works
-function run_test_17() {
-  restartManager();
-
-  let url = "http://example.com/addons/test_install2_1.xpi";
-  AddonManager.getInstallForURL(url, function(aInstall) {
-    aInstall.addListener({
-      onInstallEnded() {
-       executeSoon(function() {
-        Assert.ok(!aInstall.addon.userDisabled);
-
-        restartManager();
-
-        AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2) {
-          Assert.ok(!a2.userDisabled);
-          Assert.ok(a2.isActive);
-
-          let url_2 = "http://example.com/addons/test_install2_2.xpi";
-          AddonManager.getInstallForURL(url_2, function(aInstall_2) {
-            aInstall_2.addListener({
-              onInstallStarted() {
-                Assert.ok(!aInstall_2.addon.userDisabled);
-                aInstall_2.addon.userDisabled = true;
-              },
-
-              onInstallEnded() {
-               executeSoon(function() {
-                restartManager();
-
-                AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2_2) {
-                  Assert.ok(a2_2.userDisabled);
-                  Assert.ok(!a2_2.isActive);
-
-                  a2_2.uninstall();
-                  executeSoon(run_test_18);
-                });
-               });
-              }
-            });
-            aInstall_2.install();
-          }, "application/x-xpinstall");
-        });
-       });
-      }
-    });
-    aInstall.install();
-  }, "application/x-xpinstall");
-}
-
-// Verify that changing the userDisabled value before onInstallEnded works
-function run_test_18() {
-  restartManager();
-
-  let url = "http://example.com/addons/test_install2_1.xpi";
-  AddonManager.getInstallForURL(url, function(aInstall) {
-    aInstall.addListener({
-      onInstallStarted() {
-        Assert.ok(!aInstall.addon.userDisabled);
-        aInstall.addon.userDisabled = true;
-      },
-
-      onInstallEnded() {
-       executeSoon(function test18_install1() {
-        restartManager();
-
-        AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2) {
-          Assert.ok(a2.userDisabled);
-          Assert.ok(!a2.isActive);
-
-          let url_2 = "http://example.com/addons/test_install2_2.xpi";
-          AddonManager.getInstallForURL(url_2, function(aInstall_2) {
-            aInstall_2.addListener({
-              onInstallStarted() {
-                Assert.ok(aInstall_2.addon.userDisabled);
-                aInstall_2.addon.userDisabled = false;
-              },
-
-              onInstallEnded() {
-               executeSoon(function test18_install2() {
-                restartManager();
-
-                AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2_2) {
-                  Assert.ok(!a2_2.userDisabled);
-                  Assert.ok(a2_2.isActive);
-
-                  a2_2.uninstall();
-                  executeSoon(run_test_18_1);
-                });
-               });
-              }
-            });
-            aInstall_2.install();
-          }, "application/x-xpinstall");
-        });
-       });
-      }
-    });
-    aInstall.install();
-  }, "application/x-xpinstall");
-}
-
-
-// Checks that metadata is not stored if the pref is set to false
-function run_test_18_1() {
-  restartManager();
-
-  Services.prefs.setBoolPref("extensions.getAddons.cache.enabled", true);
-  Services.prefs.setCharPref(PREF_GETADDONS_BYIDS,
-                             "http://example.com/data/test_install_addons.json");
-  Services.prefs.setCharPref(PREF_COMPAT_OVERRIDES,
-                             "http://example.com/data/test_install_compat.json");
-
-  Services.prefs.setBoolPref("extensions.addon2@tests.mozilla.org.getAddons.cache.enabled", false);
-
-  let url = "http://example.com/addons/test_install2_1.xpi";
-  AddonManager.getInstallForURL(url, function(aInstall) {
-    aInstall.addListener({
-      onInstallEnded(unused, aAddon) {
-       executeSoon(function test18_install() {
-        Assert.notEqual(aAddon.fullDescription, "Repository description");
-
-        restartManager();
-
-        AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2) {
-          Assert.notEqual(a2.fullDescription, "Repository description");
-
-          a2.uninstall();
-          executeSoon(run_test_19);
-        });
-       });
-      }
-    });
-    aInstall.install();
-  }, "application/x-xpinstall");
-}
-
-// Checks that metadata is downloaded for new installs and is visible before and
-// after restart
-function run_test_19() {
-  restartManager();
-  Services.prefs.setBoolPref("extensions.addon2@tests.mozilla.org.getAddons.cache.enabled", true);
-
-  let url = "http://example.com/addons/test_install2_1.xpi";
-  AddonManager.getInstallForURL(url, function(aInstall) {
-    aInstall.addListener({
-      onInstallEnded(unused, aAddon) {
-       executeSoon(function test19_install() {
-        Assert.equal(aAddon.fullDescription, "Repository description");
-
-        restartManager();
-
-        AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2) {
-          Assert.equal(a2.fullDescription, "Repository description");
-
-          a2.uninstall();
-          executeSoon(run_test_20);
-        });
-       });
-      }
-    });
-    aInstall.install();
-  }, "application/x-xpinstall");
-}
-
-// Do the same again to make sure it works when the data is already in the cache
-function run_test_20() {
-  restartManager();
-
-  let url = "http://example.com/addons/test_install2_1.xpi";
-  AddonManager.getInstallForURL(url, function(aInstall) {
-    aInstall.addListener({
-      onInstallEnded(unused, aAddon) {
-       executeSoon(function test20_install() {
-        Assert.equal(aAddon.fullDescription, "Repository description");
-
-        restartManager();
-
-        AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2) {
-          Assert.equal(a2.fullDescription, "Repository description");
-
-          a2.uninstall();
-          executeSoon(run_test_21);
-        });
-       });
-      }
-    });
-    aInstall.install();
-  }, "application/x-xpinstall");
-}
-
-// Verify that installing an add-on that is already pending install cancels the
-// first install
-function run_test_21() {
-  restartManager();
-  Services.prefs.setBoolPref("extensions.getAddons.cache.enabled", false);
-
-  installAllFiles([do_get_addon("test_install2_1")], function() {
-    AddonManager.getAllInstalls(function(aInstalls) {
-      Assert.equal(aInstalls.length, 1);
-
-      prepare_test({
-        "addon2@tests.mozilla.org": [
-          "onOperationCancelled",
-          "onInstalling"
-        ]
-      }, [
-        "onNewInstall",
-        "onDownloadStarted",
-        "onDownloadEnded",
-        "onInstallStarted",
-        "onInstallCancelled",
-        "onInstallEnded",
-      ], check_test_21);
-
-      let url = "http://example.com/addons/test_install2_1.xpi";
-      AddonManager.getInstallForURL(url, function(aInstall) {
-        aInstall.install();
-      }, "application/x-xpinstall");
-    });
-  });
-}
-
-function check_test_21(aInstall) {
-  AddonManager.getAllInstalls(callback_soon(function(aInstalls) {
-    Assert.equal(aInstalls.length, 1);
-    Assert.equal(aInstalls[0], aInstall);
-
-    prepare_test({
-      "addon2@tests.mozilla.org": [
-        "onOperationCancelled"
-      ]
-    }, [
-      "onInstallCancelled",
-    ]);
-
-    aInstall.cancel();
-
-    ensure_test_completed();
-
-    restartManager();
-
-    AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2) {
-      Assert.equal(a2, null);
-
-      run_test_22();
-    });
-  }));
-}
-
-// Tests that an install can be restarted after being cancelled
-function run_test_22() {
-  prepare_test({ }, [
-    "onNewInstall"
-  ]);
-
-  let url = "http://example.com/addons/test_install3.xpi";
-  AddonManager.getInstallForURL(url, function(aInstall) {
-    ensure_test_completed();
-
-    Assert.notEqual(aInstall, null);
-    Assert.equal(aInstall.state, AddonManager.STATE_AVAILABLE);
-
-    prepare_test({}, [
-      "onDownloadStarted",
-      "onDownloadEnded",
-    ], check_test_22);
-    aInstall.install();
-  }, "application/x-xpinstall");
-}
-
-function check_test_22(aInstall) {
-  prepare_test({}, [
-    "onDownloadCancelled"
-  ]);
-
-  aInstall.cancel();
-
-  ensure_test_completed();
-
-  prepare_test({
-    "addon3@tests.mozilla.org": [
-      "onInstalling"
-    ]
-  }, [
-    "onDownloadStarted",
-    "onDownloadEnded",
-    "onInstallStarted",
-    "onInstallEnded"
-  ], finish_test_22);
-
-  aInstall.install();
-}
-
-function finish_test_22(aInstall) {
-  prepare_test({
-    "addon3@tests.mozilla.org": [
-      "onOperationCancelled"
-    ]
-  }, [
-    "onInstallCancelled"
-  ]);
-
-  aInstall.cancel();
-
-  ensure_test_completed();
-
-  run_test_23();
-}
-
-// Tests that an install can be restarted after being cancelled when a hash
-// was provided
-function run_test_23() {
-  prepare_test({ }, [
-    "onNewInstall"
-  ]);
-
-  let url = "http://example.com/addons/test_install3.xpi";
-  AddonManager.getInstallForURL(url, function(aInstall) {
-    ensure_test_completed();
-
-    Assert.notEqual(aInstall, null);
-    Assert.equal(aInstall.state, AddonManager.STATE_AVAILABLE);
-
-    prepare_test({}, [
-      "onDownloadStarted",
-      "onDownloadEnded",
-    ], check_test_23);
-    aInstall.install();
-  }, "application/x-xpinstall", do_get_addon_hash("test_install3"));
-}
-
-function check_test_23(aInstall) {
-  prepare_test({}, [
-    "onDownloadCancelled"
-  ]);
-
-  aInstall.cancel();
-
-  ensure_test_completed();
-
-  prepare_test({
-    "addon3@tests.mozilla.org": [
-      "onInstalling"
-    ]
-  }, [
-    "onDownloadStarted",
-    "onDownloadEnded",
-    "onInstallStarted",
-    "onInstallEnded"
-  ], finish_test_23);
-
-  aInstall.install();
-}
-
-function finish_test_23(aInstall) {
-  prepare_test({
-    "addon3@tests.mozilla.org": [
-      "onOperationCancelled"
-    ]
-  }, [
-    "onInstallCancelled"
-  ]);
-
-  aInstall.cancel();
-
-  ensure_test_completed();
-
-  run_test_24();
-}
-
-// Tests that an install with a bad hash can be restarted after it fails, though
-// it will only fail again
-function run_test_24() {
-  prepare_test({ }, [
-    "onNewInstall"
-  ]);
-
-  let url = "http://example.com/addons/test_install3.xpi";
-  AddonManager.getInstallForURL(url, function(aInstall) {
-    ensure_test_completed();
-
-    Assert.notEqual(aInstall, null);
-    Assert.equal(aInstall.state, AddonManager.STATE_AVAILABLE);
-
-    prepare_test({}, [
-      "onDownloadStarted",
-      "onDownloadFailed",
-    ], check_test_24);
-    aInstall.install();
-  }, "application/x-xpinstall", "sha1:foo");
-}
-
-function check_test_24(aInstall) {
-  prepare_test({ }, [
-    "onDownloadStarted",
-    "onDownloadFailed"
-  ], run_test_25);
-
-  aInstall.install();
-}
-
-// Tests that installs with a hash for a local file work
-function run_test_25() {
-  prepare_test({ }, [
-    "onNewInstall"
-  ]);
-
-  let url = Services.io.newFileURI(do_get_addon("test_install3")).spec;
-  AddonManager.getInstallForURL(url, function(aInstall) {
-    ensure_test_completed();
-
-    Assert.notEqual(aInstall, null);
-    Assert.equal(aInstall.state, AddonManager.STATE_DOWNLOADED);
-    Assert.equal(aInstall.error, 0);
-
-    prepare_test({ }, [
-      "onDownloadCancelled"
-    ]);
-
-    aInstall.cancel();
-
-    ensure_test_completed();
-
-    run_test_26();
-  }, "application/x-xpinstall", do_get_addon_hash("test_install3"));
-}
-
-function run_test_26() {
-  prepare_test({ }, [
-    "onNewInstall",
-    "onDownloadStarted",
-    "onDownloadCancelled"
-  ]);
-
-  let observerService = AM_Cc["@mozilla.org/network/http-activity-distributor;1"].
-                        getService(AM_Ci.nsIHttpActivityDistributor);
-  observerService.addObserver({
-    observeActivity(aChannel, aType, aSubtype, aTimestamp, aSizeData,
-                              aStringData) {
-      aChannel.QueryInterface(AM_Ci.nsIChannel);
-      // Wait for the final event for the redirected URL
-      if (aChannel.URI.spec != "http://example.com/addons/test_install1.xpi" ||
-          aType != AM_Ci.nsIHttpActivityObserver.ACTIVITY_TYPE_HTTP_TRANSACTION ||
-          aSubtype != AM_Ci.nsIHttpActivityObserver.ACTIVITY_SUBTYPE_TRANSACTION_CLOSE)
-        return;
-
-      // Request should have been cancelled
-      Assert.equal(aChannel.status, Cr.NS_BINDING_ABORTED);
-
-      observerService.removeObserver(this);
-
-      run_test_27();
-    }
-  });
-
-  let url = "http://example.com/redirect?/addons/test_install1.xpi";
-  AddonManager.getInstallForURL(url, function(aInstall) {
-    aInstall.addListener({
-      onDownloadProgress(aDownloadProgressInstall) {
-        aDownloadProgressInstall.cancel();
-      }
-    });
-
-    aInstall.install();
-  }, "application/x-xpinstall");
-}
-
-
-// Tests that an install can be restarted during onDownloadCancelled after being
-// cancelled in mid-download
-function run_test_27() {
-  prepare_test({ }, [
-    "onNewInstall"
-  ]);
-
-  let url = "http://example.com/addons/test_install3.xpi";
-  AddonManager.getInstallForURL(url, function(aInstall) {
-    ensure_test_completed();
-
-    Assert.notEqual(aInstall, null);
-    Assert.equal(aInstall.state, AddonManager.STATE_AVAILABLE);
-
-    aInstall.addListener({
-      onDownloadProgress() {
-        aInstall.removeListener(this);
-        aInstall.cancel();
-      }
-    });
-
-    prepare_test({}, [
-      "onDownloadStarted",
-      "onDownloadCancelled",
-    ], check_test_27);
-    aInstall.install();
-  }, "application/x-xpinstall");
-}
-
-function check_test_27(aInstall) {
-  prepare_test({
-    "addon3@tests.mozilla.org": [
-      "onInstalling"
-    ]
-  }, [
-    "onDownloadStarted",
-    "onDownloadEnded",
-    "onInstallStarted",
-    "onInstallEnded"
-  ], finish_test_27);
-
-  let file = aInstall.file;
-  aInstall.install();
-  Assert.notEqual(file.path, aInstall.file.path);
-  Assert.ok(!file.exists());
-}
-
-function finish_test_27(aInstall) {
-  prepare_test({
-    "addon3@tests.mozilla.org": [
-      "onOperationCancelled"
-    ]
-  }, [
-    "onInstallCancelled"
-  ]);
-
-  aInstall.cancel();
-
-  ensure_test_completed();
-
-  run_test_30();
-}
-
-// Tests that a multi-package XPI with no add-ons inside shows up as a
-// corrupt file
-function run_test_30() {
-  prepare_test({ }, [
-    "onNewInstall"
-  ]);
-
-  AddonManager.getInstallForFile(do_get_addon("test_install7"), function(install) {
-    ensure_test_completed();
-
-    Assert.notEqual(install, null);
-    Assert.equal(install.state, AddonManager.STATE_DOWNLOAD_FAILED);
-    Assert.equal(install.error, AddonManager.ERROR_CORRUPT_FILE);
-
-    run_test_31();
-  });
-}
-
-// Tests that a multi-package XPI with no valid add-ons inside shows up as a
-// corrupt file
-function run_test_31() {
-  prepare_test({ }, [
-    "onNewInstall"
-  ]);
-
-  AddonManager.getInstallForFile(do_get_addon("test_install8"), function(install) {
-    ensure_test_completed();
-
-    Assert.notEqual(install, null);
-    Assert.equal(install.state, AddonManager.STATE_DOWNLOAD_FAILED);
-    Assert.equal(install.error, AddonManager.ERROR_CORRUPT_FILE);
-
-    end_test();
-  });
-}
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/xpcshell/test_update_strictcompat.js
+++ /dev/null
@@ -1,1115 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-// This verifies that add-on update checks work
-
-const PREF_GETADDONS_CACHE_ENABLED = "extensions.getAddons.cache.enabled";
-
-// The test extension uses an insecure update url.
-Services.prefs.setBoolPref(PREF_EM_CHECK_UPDATE_SECURITY, false);
-Services.prefs.setBoolPref(PREF_EM_STRICT_COMPATIBILITY, true);
-// This test requires lightweight themes update to be enabled even if the app
-// doesn't support lightweight themes.
-Services.prefs.setBoolPref("lightweightThemes.update.enabled", true);
-
-ChromeUtils.import("resource://gre/modules/LightweightThemeManager.jsm");
-
-const PARAMS = "?%REQ_VERSION%/%ITEM_ID%/%ITEM_VERSION%/%ITEM_MAXAPPVERSION%/" +
-               "%ITEM_STATUS%/%APP_ID%/%APP_VERSION%/%CURRENT_APP_VERSION%/" +
-               "%APP_OS%/%APP_ABI%/%APP_LOCALE%/%UPDATE_TYPE%";
-
-var gInstallDate;
-
-var testserver = createHttpServer();
-gPort = testserver.identity.primaryPort;
-mapFile("/data/test_update.json", testserver);
-mapFile("/data/test_update_addons.json", testserver);
-mapFile("/data/test_update_compat.json", testserver);
-testserver.registerDirectory("/addons/", do_get_file("addons"));
-
-const profileDir = gProfD.clone();
-profileDir.append("extensions");
-
-function run_test() {
-  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1");
-
-  Services.locale.setRequestedLocales(["fr-FR"]);
-
-  run_next_test();
-}
-
-const updateFile = "test_update.json";
-const appId = "toolkit@mozilla.org";
-
-add_test(function() {
-  writeInstallRDFForExtension({
-    id: "addon1@tests.mozilla.org",
-    version: "1.0",
-    updateURL: "http://localhost:" + gPort + "/data/" + updateFile,
-    targetApplications: [{
-      id: appId,
-      minVersion: "1",
-      maxVersion: "1"
-    }],
-    name: "Test Addon 1",
-  }, profileDir);
-
-  writeInstallRDFForExtension({
-    id: "addon2@tests.mozilla.org",
-    version: "1.0",
-    updateURL: "http://localhost:" + gPort + "/data/" + updateFile,
-    targetApplications: [{
-      id: appId,
-      minVersion: "0",
-      maxVersion: "0"
-    }],
-    name: "Test Addon 2",
-  }, profileDir);
-
-  writeInstallRDFForExtension({
-    id: "addon3@tests.mozilla.org",
-    version: "1.0",
-    updateURL: "http://localhost:" + gPort + "/data/" + updateFile,
-    targetApplications: [{
-      id: appId,
-      minVersion: "5",
-      maxVersion: "5"
-    }],
-    name: "Test Addon 3",
-  }, profileDir);
-
-  startupManager();
-
-  run_next_test();
-});
-
-// Verify that an update is available and can be installed.
-let check_test_1;
-add_test(function run_test_1() {
-  AddonManager.getAddonByID("addon1@tests.mozilla.org", function(a1) {
-    Assert.notEqual(a1, null);
-    Assert.equal(a1.version, "1.0");
-    Assert.equal(a1.applyBackgroundUpdates, AddonManager.AUTOUPDATE_DEFAULT);
-    Assert.equal(a1.releaseNotesURI, null);
-
-    a1.applyBackgroundUpdates = AddonManager.AUTOUPDATE_DEFAULT;
-
-    prepare_test({
-      "addon1@tests.mozilla.org": [
-        ["onPropertyChanged", ["applyBackgroundUpdates"]]
-      ]
-    });
-    a1.applyBackgroundUpdates = AddonManager.AUTOUPDATE_DISABLE;
-    check_test_completed();
-
-    a1.applyBackgroundUpdates = AddonManager.AUTOUPDATE_DISABLE;
-
-    prepare_test({}, [
-      "onNewInstall",
-    ]);
-
-    a1.findUpdates({
-      onNoCompatibilityUpdateAvailable(addon) {
-        ok(false, "Should not have seen onNoCompatibilityUpdateAvailable notification");
-      },
-
-      onUpdateAvailable(addon, install) {
-        ensure_test_completed();
-
-        AddonManager.getAllInstalls(function(aInstalls) {
-          Assert.equal(aInstalls.length, 1);
-          Assert.equal(aInstalls[0], install);
-
-          Assert.equal(addon, a1);
-          Assert.equal(install.name, addon.name);
-          Assert.equal(install.version, "2.0");
-          Assert.equal(install.state, AddonManager.STATE_AVAILABLE);
-          Assert.equal(install.existingAddon, addon);
-          Assert.equal(install.releaseNotesURI.spec, "http://example.com/updateInfo.xhtml");
-
-          // Verify that another update check returns the same AddonInstall
-          a1.findUpdates({
-            onNoCompatibilityUpdateAvailable() {
-              ok(false, "Should not have seen onNoCompatibilityUpdateAvailable notification");
-            },
-
-            onUpdateAvailable(newAddon, newInstall) {
-              AddonManager.getAllInstalls(function(aInstalls2) {
-                Assert.equal(aInstalls2.length, 1);
-                Assert.equal(aInstalls2[0], install);
-                Assert.equal(newAddon, addon);
-                Assert.equal(newInstall, install);
-
-                prepare_test({}, [
-                  "onDownloadStarted",
-                  "onDownloadEnded",
-                ], check_test_1);
-                install.install();
-              });
-            },
-
-            onNoUpdateAvailable() {
-              ok(false, "Should not have seen onNoUpdateAvailable notification");
-            }
-          }, AddonManager.UPDATE_WHEN_USER_REQUESTED);
-        });
-      },
-
-      onNoUpdateAvailable(addon) {
-        ok(false, "Should not have seen onNoUpdateAvailable notification");
-      }
-    }, AddonManager.UPDATE_WHEN_USER_REQUESTED);
-  });
-});
-
-let run_test_2;
-check_test_1 = (install) => {
-  ensure_test_completed();
-  Assert.equal(install.state, AddonManager.STATE_DOWNLOADED);
-  run_test_2(install);
-  return false;
-};
-
-// Continue installing the update.
-let check_test_2;
-run_test_2 = (install) => {
-  // Verify that another update check returns no new update
-  install.existingAddon.findUpdates({
-    onNoCompatibilityUpdateAvailable(addon) {
-      ok(false, "Should not have seen onNoCompatibilityUpdateAvailable notification");
-    },
-
-    onUpdateAvailable() {
-      ok(false, "Should find no available update when one is already downloading");
-    },
-
-    onNoUpdateAvailable(addon) {
-      AddonManager.getAllInstalls(function(aInstalls) {
-        Assert.equal(aInstalls.length, 1);
-        Assert.equal(aInstalls[0], install);
-
-        prepare_test({
-          "addon1@tests.mozilla.org": [
-            "onInstalling"
-          ]
-        }, [
-          "onInstallStarted",
-          "onInstallEnded",
-        ], check_test_2);
-        install.install();
-      });
-    }
-  }, AddonManager.UPDATE_WHEN_USER_REQUESTED);
-};
-
-check_test_2 = () => {
-  ensure_test_completed();
-
-  AddonManager.getAddonByID("addon1@tests.mozilla.org", callback_soon(async function(olda1) {
-    await AddonTestUtils.loadAddonsList(true);
-
-    Assert.notEqual(olda1, null);
-    Assert.equal(olda1.version, "1.0");
-    Assert.ok(isExtensionInAddonsList(profileDir, olda1.id));
-
-    shutdownManager();
-
-    await promiseStartupManager();
-
-    Assert.ok(isExtensionInAddonsList(profileDir, "addon1@tests.mozilla.org"));
-
-    AddonManager.getAddonByID("addon1@tests.mozilla.org", function(a1) {
-      Assert.notEqual(a1, null);
-      Assert.equal(a1.version, "2.0");
-      Assert.ok(isExtensionInAddonsList(profileDir, a1.id));
-      Assert.equal(a1.applyBackgroundUpdates, AddonManager.AUTOUPDATE_DISABLE);
-      Assert.equal(a1.releaseNotesURI.spec, "http://example.com/updateInfo.xhtml");
-
-      a1.uninstall();
-      run_next_test();
-    });
-  }));
-};
-
-
-// Check that an update check finds compatibility updates and applies them
-let check_test_3;
-add_test(function run_test_3() {
-  restartManager();
-
-  AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2) {
-    Assert.notEqual(a2, null);
-    Assert.ok(!a2.isActive);
-    Assert.ok(!a2.isCompatible);
-    Assert.ok(a2.appDisabled);
-    Assert.ok(a2.isCompatibleWith("0", "0"));
-
-    a2.findUpdates({
-      onCompatibilityUpdateAvailable(addon) {
-        Assert.ok(a2.isCompatible);
-        Assert.ok(!a2.appDisabled);
-        Assert.ok(!a2.isActive);
-      },
-
-      onUpdateAvailable(addon, install) {
-        ok(false, "Should not have seen an available update");
-      },
-
-      onNoUpdateAvailable(addon) {
-        Assert.equal(addon, a2);
-        executeSoon(check_test_3);
-      }
-    }, AddonManager.UPDATE_WHEN_USER_REQUESTED);
-  });
-});
-
-check_test_3 = () => {
-  restartManager();
-  AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2) {
-    Assert.notEqual(a2, null);
-    Assert.ok(a2.isActive);
-    Assert.ok(a2.isCompatible);
-    Assert.ok(!a2.appDisabled);
-    a2.uninstall();
-
-    run_next_test();
-  });
-};
-
-// Checks that we see no compatibility information when there is none.
-add_test(function run_test_4() {
-  AddonManager.getAddonByID("addon3@tests.mozilla.org", function(a3) {
-    Assert.notEqual(a3, null);
-    Assert.ok(!a3.isActive);
-    Assert.ok(!a3.isCompatible);
-    Assert.ok(a3.appDisabled);
-    Assert.ok(a3.isCompatibleWith("5", "5"));
-    Assert.ok(!a3.isCompatibleWith("2", "2"));
-
-    a3.findUpdates({
-      sawUpdate: false,
-      onCompatibilityUpdateAvailable(addon) {
-        ok(false, "Should not have seen compatibility information");
-      },
-
-      onNoCompatibilityUpdateAvailable(addon) {
-        this.sawUpdate = true;
-      },
-
-      onUpdateAvailable(addon, install) {
-        ok(false, "Should not have seen an available update");
-      },
-
-      onNoUpdateAvailable(addon) {
-        Assert.ok(this.sawUpdate);
-        run_next_test();
-      }
-    }, AddonManager.UPDATE_WHEN_USER_REQUESTED);
-  });
-});
-
-// Checks that compatibility info for future apps are detected but don't make
-// the item compatibile.
-let check_test_5;
-add_test(function run_test_5() {
-  AddonManager.getAddonByID("addon3@tests.mozilla.org", function(a3) {
-    Assert.notEqual(a3, null);
-    Assert.ok(!a3.isActive);
-    Assert.ok(!a3.isCompatible);
-    Assert.ok(a3.appDisabled);
-    Assert.ok(a3.isCompatibleWith("5", "5"));
-    Assert.ok(!a3.isCompatibleWith("2", "2"));
-
-    a3.findUpdates({
-      sawUpdate: false,
-      onCompatibilityUpdateAvailable(addon) {
-        Assert.ok(!a3.isCompatible);
-        Assert.ok(a3.appDisabled);
-        Assert.ok(!a3.isActive);
-        this.sawUpdate = true;
-      },
-
-      onNoCompatibilityUpdateAvailable(addon) {
-        ok(false, "Should have seen some compatibility information");
-      },
-
-      onUpdateAvailable(addon, install) {
-        ok(false, "Should not have seen an available update");
-      },
-
-      onNoUpdateAvailable(addon) {
-        Assert.ok(this.sawUpdate);
-        executeSoon(check_test_5);
-      }
-    }, AddonManager.UPDATE_WHEN_USER_REQUESTED, "3.0", "3.0");
-  });
-});
-
-check_test_5 = () => {
-  restartManager();
-  AddonManager.getAddonByID("addon3@tests.mozilla.org", function(a3) {
-    Assert.notEqual(a3, null);
-    Assert.ok(!a3.isActive);
-    Assert.ok(!a3.isCompatible);
-    Assert.ok(a3.appDisabled);
-
-    a3.uninstall();
-    run_next_test();
-  });
-};
-
-// Test that background update checks work
-let continue_test_6;
-add_test(function run_test_6() {
-  restartManager();
-
-  writeInstallRDFForExtension({
-    id: "addon1@tests.mozilla.org",
-    version: "1.0",
-    updateURL: "http://localhost:" + gPort + "/data/" + updateFile,
-    targetApplications: [{
-      id: appId,
-      minVersion: "1",
-      maxVersion: "1"
-    }],
-    name: "Test Addon 1",
-  }, profileDir);
-  restartManager();
-
-  prepare_test({}, [
-    "onNewInstall",
-    "onDownloadStarted",
-    "onDownloadEnded"
-  ], continue_test_6);
-
-  AddonManagerInternal.backgroundUpdateCheck();
-});
-
-let check_test_6;
-continue_test_6 = (install) => {
-  Assert.notEqual(install.existingAddon, null);
-  Assert.equal(install.existingAddon.id, "addon1@tests.mozilla.org");
-
-  prepare_test({
-    "addon1@tests.mozilla.org": [
-      "onInstalling"
-    ]
-  }, [
-    "onInstallStarted",
-    "onInstallEnded",
-  ], callback_soon(check_test_6));
-};
-
-check_test_6 = (install) => {
-  Assert.equal(install.existingAddon.pendingUpgrade.install, install);
-
-  restartManager();
-  AddonManager.getAddonByID("addon1@tests.mozilla.org", function(a1) {
-    Assert.notEqual(a1, null);
-    Assert.equal(a1.version, "2.0");
-    Assert.equal(a1.releaseNotesURI.spec, "http://example.com/updateInfo.xhtml");
-    a1.uninstall();
-    run_next_test();
-  });
-};
-
-// Verify the parameter escaping in update urls.
-add_test(function run_test_8() {
-  restartManager();
-
-  writeInstallRDFForExtension({
-    id: "addon1@tests.mozilla.org",
-    version: "5.0",
-    updateURL: "http://localhost:" + gPort + "/data/param_test.json" + PARAMS,
-    targetApplications: [{
-      id: appId,
-      minVersion: "1",
-      maxVersion: "2"
-    }],
-    name: "Test Addon 1",
-  }, profileDir);
-
-  writeInstallRDFForExtension({
-    id: "addon2@tests.mozilla.org",
-    version: "67.0.5b1",
-    updateURL: "http://localhost:" + gPort + "/data/param_test.json" + PARAMS,
-    targetApplications: [{
-      id: "toolkit@mozilla.org",
-      minVersion: "0",
-      maxVersion: "3"
-    }],
-    name: "Test Addon 2",
-  }, profileDir);
-
-  writeInstallRDFForExtension({
-    id: "addon3@tests.mozilla.org",
-    version: "1.3+",
-    updateURL: "http://localhost:" + gPort + "/data/param_test.json" + PARAMS,
-    targetApplications: [{
-      id: appId,
-      minVersion: "0",
-      maxVersion: "0"
-    }, {
-      id: "toolkit@mozilla.org",
-      minVersion: "0",
-      maxVersion: "3"
-    }],
-    name: "Test Addon 3",
-  }, profileDir);
-
-  writeInstallRDFForExtension({
-    id: "addon4@tests.mozilla.org",
-    version: "0.5ab6",
-    updateURL: "http://localhost:" + gPort + "/data/param_test.json" + PARAMS,
-    targetApplications: [{
-      id: appId,
-      minVersion: "1",
-      maxVersion: "5"
-    }],
-    name: "Test Addon 4",
-  }, profileDir);
-
-  writeInstallRDFForExtension({
-    id: "addon5@tests.mozilla.org",
-    version: "1.0",
-    updateURL: "http://localhost:" + gPort + "/data/param_test.json" + PARAMS,
-    targetApplications: [{
-      id: appId,
-      minVersion: "1",
-      maxVersion: "1"
-    }],
-    name: "Test Addon 5",
-  }, profileDir);
-
-  writeInstallRDFForExtension({
-    id: "addon6@tests.mozilla.org",
-    version: "1.0",
-    updateURL: "http://localhost:" + gPort + "/data/param_test.json" + PARAMS,
-    targetApplications: [{
-      id: appId,
-      minVersion: "1",
-      maxVersion: "1"
-    }],
-    name: "Test Addon 6",
-  }, profileDir);
-
-  restartManager();
-
-  AddonManager.getAddonByID("addon2@tests.mozilla.org", callback_soon(function(a2) {
-    a2.userDisabled = true;
-    restartManager();
-
-    testserver.registerPathHandler("/data/param_test.json", function(request, response) {
-      Assert.notEqual(request.queryString, "");
-      let [req_version, item_id, item_version,
-           item_maxappversion, item_status,
-           app_id, app_version, current_app_version,
-           app_os, app_abi, app_locale, update_type] =
-           request.queryString.split("/").map(a => decodeURIComponent(a));
-
-      Assert.equal(req_version, "2");
-
-      switch (item_id) {
-      case "addon1@tests.mozilla.org":
-        Assert.equal(item_version, "5.0");
-        Assert.equal(item_maxappversion, "2");
-        Assert.equal(item_status, "userEnabled");
-        Assert.equal(app_version, "1");
-        Assert.equal(update_type, "97");
-        break;
-      case "addon2@tests.mozilla.org":
-        Assert.equal(item_version, "67.0.5b1");
-        Assert.equal(item_maxappversion, "3");
-        Assert.equal(item_status, "userDisabled");
-        Assert.equal(app_version, "1");
-        Assert.equal(update_type, "49");
-        break;
-      case "addon3@tests.mozilla.org":
-        Assert.equal(item_version, "1.3+");
-        Assert.equal(item_maxappversion, "0");
-        Assert.equal(item_status, "userEnabled,incompatible");
-        Assert.equal(app_version, "1");
-        Assert.equal(update_type, "112");
-        break;
-      case "addon4@tests.mozilla.org":
-        Assert.equal(item_version, "0.5ab6");
-        Assert.equal(item_maxappversion, "5");
-        Assert.equal(item_status, "userEnabled");
-        Assert.equal(app_version, "2");
-        Assert.equal(update_type, "98");
-        break;
-      case "addon5@tests.mozilla.org":
-        Assert.equal(item_version, "1.0");
-        Assert.equal(item_maxappversion, "1");
-        Assert.equal(item_status, "userEnabled");
-        Assert.equal(app_version, "1");
-        Assert.equal(update_type, "35");
-        break;
-      case "addon6@tests.mozilla.org":
-        Assert.equal(item_version, "1.0");
-        Assert.equal(item_maxappversion, "1");
-        Assert.equal(item_status, "userEnabled");
-        Assert.equal(app_version, "1");
-        Assert.equal(update_type, "99");
-        break;
-      default:
-        ok(false, "Update request for unexpected add-on " + item_id);
-      }
-
-      Assert.equal(app_id, "xpcshell@tests.mozilla.org");
-      Assert.equal(current_app_version, "1");
-      Assert.equal(app_os, "XPCShell");
-      Assert.equal(app_abi, "noarch-spidermonkey");
-      Assert.equal(app_locale, "fr-FR");
-
-      request.setStatusLine(null, 500, "Server Error");
-    });
-
-    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"],
-                                 function([a1_2, a2_2, a3_2, a4_2, a5_2, a6_2]) {
-      let count = 6;
-
-      function next_test() {
-        a1_2.uninstall();
-        a2_2.uninstall();
-        a3_2.uninstall();
-        a4_2.uninstall();
-        a5_2.uninstall();
-        a6_2.uninstall();
-
-        restartManager();
-        run_next_test();
-      }
-
-      let compatListener = {
-        onUpdateFinished(addon, error) {
-          if (--count == 0)
-            executeSoon(next_test);
-        }
-      };
-
-      let updateListener = {
-        onUpdateAvailable(addon, update) {
-          // Dummy so the update checker knows we care about new versions
-        },
-
-        onUpdateFinished(addon, error) {
-          if (--count == 0)
-            executeSoon(next_test);
-        }
-      };
-
-      a1_2.findUpdates(updateListener, AddonManager.UPDATE_WHEN_USER_REQUESTED);
-      a2_2.findUpdates(compatListener, AddonManager.UPDATE_WHEN_ADDON_INSTALLED);
-      a3_2.findUpdates(updateListener, AddonManager.UPDATE_WHEN_PERIODIC_UPDATE);
-      a4_2.findUpdates(updateListener, AddonManager.UPDATE_WHEN_NEW_APP_DETECTED, "2");
-      a5_2.findUpdates(compatListener, AddonManager.UPDATE_WHEN_NEW_APP_INSTALLED);
-      a6_2.findUpdates(updateListener, AddonManager.UPDATE_WHEN_NEW_APP_INSTALLED);
-    });
-  }));
-});
-
-// Tests that if an install.rdf claims compatibility then the add-on will be
-// seen as compatible regardless of what the update.json says.
-add_test(function run_test_9() {
-  writeInstallRDFForExtension({
-    id: "addon4@tests.mozilla.org",
-    version: "5.0",
-    updateURL: "http://localhost:" + gPort + "/data/" + updateFile,
-    targetApplications: [{
-      id: appId,
-      minVersion: "0",
-      maxVersion: "1"
-    }],
-    name: "Test Addon 1",
-  }, profileDir);
-
-  restartManager();
-
-  AddonManager.getAddonByID("addon4@tests.mozilla.org", function(a4) {
-    Assert.ok(a4.isActive, "addon4 is active");
-    Assert.ok(a4.isCompatible, "addon4 is compatible");
-
-    run_next_test();
-  });
-});
-
-// Tests that a normal update check won't decrease a targetApplication's
-// maxVersion.
-add_test(function run_test_10() {
-  AddonManager.getAddonByID("addon4@tests.mozilla.org", function(a4) {
-    a4.findUpdates({
-      onUpdateFinished(addon) {
-        Assert.ok(addon.isCompatible, "addon4 is compatible");
-
-        run_next_test();
-      }
-    }, AddonManager.UPDATE_WHEN_PERIODIC_UPDATE);
-  });
-});
-
-// Tests that an update check for a new application will decrease a
-// targetApplication's maxVersion.
-add_test(function run_test_11() {
-  AddonManager.getAddonByID("addon4@tests.mozilla.org", function(a4) {
-    a4.findUpdates({
-      onUpdateFinished(addon) {
-        Assert.ok(!addon.isCompatible, "addon4 is compatible");
-
-        run_next_test();
-      }
-    }, AddonManager.UPDATE_WHEN_NEW_APP_INSTALLED);
-  });
-});
-
-// Check that the decreased maxVersion applied and disables the add-on
-add_test(function run_test_12() {
-  restartManager();
-
-  AddonManager.getAddonByID("addon4@tests.mozilla.org", function(a4) {
-    Assert.ok(!a4.isActive, "addon4 is active");
-    Assert.ok(!a4.isCompatible, "addon4 is compatible");
-
-    a4.uninstall();
-    run_next_test();
-  });
-});
-
-// Tests that no compatibility update is passed to the listener when there is
-// compatibility info for the current version of the app but not for the
-// version of the app that the caller requested an update check for.
-let check_test_13;
-add_test(function run_test_13() {
-  restartManager();
-
-  // Not initially compatible but the update check will make it compatible
-  writeInstallRDFForExtension({
-    id: "addon7@tests.mozilla.org",
-    version: "1.0",
-    updateURL: "http://localhost:" + gPort + "/data/" + updateFile,
-    targetApplications: [{
-      id: appId,
-      minVersion: "0",
-      maxVersion: "0"
-    }],
-    name: "Test Addon 7",
-  }, profileDir);
-  restartManager();
-
-  AddonManager.getAddonByID("addon7@tests.mozilla.org", function(a7) {
-    Assert.notEqual(a7, null);
-    Assert.ok(!a7.isActive);
-    Assert.ok(!a7.isCompatible);
-    Assert.ok(a7.appDisabled);
-    Assert.ok(a7.isCompatibleWith("0", "0"));
-
-    a7.findUpdates({
-      sawUpdate: false,
-      onCompatibilityUpdateAvailable(addon) {
-        ok(false, "Should not have seen compatibility information");
-      },
-
-      onUpdateAvailable(addon, install) {
-        ok(false, "Should not have seen an available update");
-      },
-
-      onUpdateFinished(addon) {
-        Assert.ok(addon.isCompatible);
-        executeSoon(check_test_13);
-      }
-    }, AddonManager.UPDATE_WHEN_NEW_APP_DETECTED, "3.0", "3.0");
-  });
-});
-
-check_test_13 = () => {
-  restartManager();
-  AddonManager.getAddonByID("addon7@tests.mozilla.org", function(a7) {
-    Assert.notEqual(a7, null);
-    Assert.ok(a7.isActive);
-    Assert.ok(a7.isCompatible);
-    Assert.ok(!a7.appDisabled);
-
-    a7.uninstall();
-    run_next_test();
-  });
-};
-
-// Test that background update checks doesn't update an add-on that isn't
-// allowed to update automatically.
-let check_test_14;
-add_test(function run_test_14() {
-  restartManager();
-
-  // Have an add-on there that will be updated so we see some events from it
-  writeInstallRDFForExtension({
-    id: "addon1@tests.mozilla.org",
-    version: "1.0",
-    updateURL: "http://localhost:" + gPort + "/data/" + updateFile,
-    targetApplications: [{
-      id: appId,
-      minVersion: "1",
-      maxVersion: "1"
-    }],
-    name: "Test Addon 1",
-  }, profileDir);
-
-  writeInstallRDFForExtension({
-    id: "addon8@tests.mozilla.org",
-    version: "1.0",
-    updateURL: "http://localhost:" + gPort + "/data/" + updateFile,
-    targetApplications: [{
-      id: appId,
-      minVersion: "1",
-      maxVersion: "1"
-    }],
-    name: "Test Addon 8",
-  }, profileDir);
-  restartManager();
-
-  AddonManager.getAddonByID("addon8@tests.mozilla.org", function(a8) {
-    a8.applyBackgroundUpdates = AddonManager.AUTOUPDATE_DISABLE;
-
-    // The background update check will find updates for both add-ons but only
-    // proceed to install one of them.
-    AddonManager.addInstallListener({
-      onNewInstall(aInstall) {
-        let id = aInstall.existingAddon.id;
-        ok((id == "addon1@tests.mozilla.org" || id == "addon8@tests.mozilla.org"),
-           "Saw unexpected onNewInstall for " + id);
-      },
-
-      onDownloadStarted(aInstall) {
-        Assert.equal(aInstall.existingAddon.id, "addon1@tests.mozilla.org");
-      },
-
-      onDownloadEnded(aInstall) {
-        Assert.equal(aInstall.existingAddon.id, "addon1@tests.mozilla.org");
-      },
-
-      onDownloadFailed(aInstall) {
-        ok(false, "Should not have seen onDownloadFailed event");
-      },
-
-      onDownloadCancelled(aInstall) {
-        ok(false, "Should not have seen onDownloadCancelled event");
-      },
-
-      onInstallStarted(aInstall) {
-        Assert.equal(aInstall.existingAddon.id, "addon1@tests.mozilla.org");
-      },
-
-      onInstallEnded(aInstall) {
-        Assert.equal(aInstall.existingAddon.id, "addon1@tests.mozilla.org");
-        Assert.equal(aInstall.existingAddon.pendingUpgrade.install, aInstall);
-
-        executeSoon(check_test_14);
-      },
-
-      onInstallFailed(aInstall) {
-        ok(false, "Should not have seen onInstallFailed event");
-      },
-
-      onInstallCancelled(aInstall) {
-        ok(false, "Should not have seen onInstallCancelled event");
-      },
-    });
-
-    AddonManagerInternal.backgroundUpdateCheck();
-  });
-});
-
-check_test_14 = () => {
-  restartManager();
-  AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
-                               "addon8@tests.mozilla.org"], function([a1, a8]) {
-    Assert.notEqual(a1, null);
-    Assert.equal(a1.version, "2.0");
-    a1.uninstall();
-
-    Assert.notEqual(a8, null);
-    Assert.equal(a8.version, "1.0");
-    a8.uninstall();
-
-    run_next_test();
-  });
-};
-
-// Test that background update checks doesn't update an add-on that is
-// pending uninstall
-let check_test_15;
-add_test(function run_test_15() {
-  restartManager();
-
-  // Have an add-on there that will be updated so we see some events from it
-  writeInstallRDFForExtension({
-    id: "addon1@tests.mozilla.org",
-    version: "1.0",
-    updateURL: "http://localhost:" + gPort + "/data/" + updateFile,
-    targetApplications: [{
-      id: appId,
-      minVersion: "1",
-      maxVersion: "1"
-    }],
-    name: "Test Addon 1",
-  }, profileDir);
-
-  writeInstallRDFForExtension({
-    id: "addon8@tests.mozilla.org",
-    version: "1.0",
-    updateURL: "http://localhost:" + gPort + "/data/" + updateFile,
-    targetApplications: [{
-      id: appId,
-      minVersion: "1",
-      maxVersion: "1"
-    }],
-    name: "Test Addon 8",
-  }, profileDir);
-  restartManager();
-
-  AddonManager.getAddonByID("addon8@tests.mozilla.org", function(a8) {
-    a8.uninstall();
-    Assert.ok(!hasFlag(a8.permissions, AddonManager.PERM_CAN_UPGRADE));
-
-    // The background update check will find updates for both add-ons but only
-    // proceed to install one of them.
-    AddonManager.addInstallListener({
-      onNewInstall(aInstall) {
-        let id = aInstall.existingAddon.id;
-        ok((id == "addon1@tests.mozilla.org" || id == "addon8@tests.mozilla.org"),
-           "Saw unexpected onNewInstall for " + id);
-      },
-
-      onDownloadStarted(aInstall) {
-        Assert.equal(aInstall.existingAddon.id, "addon1@tests.mozilla.org");
-      },
-
-      onDownloadEnded(aInstall) {
-        Assert.equal(aInstall.existingAddon.id, "addon1@tests.mozilla.org");
-      },
-
-      onDownloadFailed(aInstall) {
-        ok(false, "Should not have seen onDownloadFailed event");
-      },
-
-      onDownloadCancelled(aInstall) {
-        ok(false, "Should not have seen onDownloadCancelled event");
-      },
-
-      onInstallStarted(aInstall) {
-        Assert.equal(aInstall.existingAddon.id, "addon1@tests.mozilla.org");
-      },
-
-      onInstallEnded(aInstall) {
-        Assert.equal(aInstall.existingAddon.id, "addon1@tests.mozilla.org");
-        executeSoon(check_test_15);
-      },
-
-      onInstallFailed(aInstall) {
-        ok(false, "Should not have seen onInstallFailed event");
-      },
-
-      onInstallCancelled(aInstall) {
-        ok(false, "Should not have seen onInstallCancelled event");
-      },
-    });
-
-    AddonManagerInternal.backgroundUpdateCheck();
-  });
-});
-
-check_test_15 = () => {
-  restartManager();
-  AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
-                               "addon8@tests.mozilla.org"], function([a1, a8]) {
-    Assert.notEqual(a1, null);
-    Assert.equal(a1.version, "2.0");
-    a1.uninstall();
-
-    Assert.equal(a8, null);
-
-    run_next_test();
-  });
-};
-
-// Test that the update check correctly observes the
-// extensions.strictCompatibility pref and compatibility overrides.
-add_test(function run_test_17() {
-  restartManager();
-
-  writeInstallRDFForExtension({
-    id: "addon9@tests.mozilla.org",
-    version: "1.0",
-    updateURL: "http://localhost:" + gPort + "/data/" + updateFile,
-    targetApplications: [{
-      id: appId,
-      minVersion: "0.1",
-      maxVersion: "0.2"
-    }],
-    name: "Test Addon 9",
-  }, profileDir);
-  restartManager();
-
-  AddonManager.addInstallListener({
-    onNewInstall(aInstall) {
-      equal(aInstall.existingAddon.id, "addon9@tests.mozilla.org",
-            "Saw unexpected onNewInstall for " + aInstall.existingAddon.id);
-      Assert.equal(aInstall.version, "2.0");
-    },
-    onDownloadFailed(aInstall) {
-      AddonManager.getAddonByID("addon9@tests.mozilla.org", function(a9) {
-        a9.uninstall();
-        run_next_test();
-      });
-    }
-  });
-
-  Services.prefs.setCharPref(PREF_GETADDONS_BYIDS,
-                             `http://localhost:${gPort}/data/test_update_addons.json`);
-  Services.prefs.setCharPref(PREF_COMPAT_OVERRIDES,
-                             `http://localhost:${gPort}/data/test_update_compat.json`);
-  Services.prefs.setBoolPref(PREF_GETADDONS_CACHE_ENABLED, true);
-
-  AddonManagerInternal.backgroundUpdateCheck();
-});
-
-// Test that the update check correctly observes when an addon opts-in to
-// strict compatibility checking.
-add_test(function run_test_19() {
-  restartManager();
-  writeInstallRDFForExtension({
-    id: "addon11@tests.mozilla.org",
-    version: "1.0",
-    updateURL: "http://localhost:" + gPort + "/data/" + updateFile,
-    targetApplications: [{
-      id: appId,
-      minVersion: "0.1",
-      maxVersion: "0.2"
-    }],
-    name: "Test Addon 11",
-  }, profileDir);
-  restartManager();
-
-  AddonManager.getAddonByID("addon11@tests.mozilla.org", function(a11) {
-    Assert.notEqual(a11, null);
-
-    a11.findUpdates({
-      onCompatibilityUpdateAvailable() {
-        ok(false, "Should have not have seen compatibility information");
-      },
-
-      onUpdateAvailable() {
-        ok(false, "Should not have seen an available update");
-      },
-
-      onUpdateFinished() {
-        run_next_test();
-      }
-    }, AddonManager.UPDATE_WHEN_USER_REQUESTED);
-  });
-});
-
-add_task(async function cleanup() {
-  let addons = await AddonManager.getAddonsByTypes(["extension"]);
-
-  for (let addon of addons)
-    addon.uninstall();
-
-  await promiseRestartManager();
-
-  shutdownManager();
-
-  await new Promise(executeSoon);
-});
-
-// Test that background update checks work for lightweight themes
-add_test(function run_test_7() {
-  startupManager();
-
-  LightweightThemeManager.currentTheme = {
-    id: "1",
-    version: "1",
-    name: "Test LW Theme",
-    description: "A test theme",
-    author: "Mozilla",
-    homepageURL: "http://localhost:" + gPort + "/data/index.html",
-    headerURL: "http://localhost:" + gPort + "/data/header.png",
-    footerURL: "http://localhost:" + gPort + "/data/footer.png",
-    previewURL: "http://localhost:" + gPort + "/data/preview.png",
-    iconURL: "http://localhost:" + gPort + "/data/icon.png",
-    updateURL: "http://localhost:" + gPort + "/data/lwtheme.js"
-  };
-
-  // XXX The lightweight theme manager strips non-https updateURLs so hack it
-  // back in.
-  let themes = JSON.parse(Services.prefs.getCharPref("lightweightThemes.usedThemes"));
-  Assert.equal(themes.length, 1);
-  themes[0].updateURL = "http://localhost:" + gPort + "/data/lwtheme.js";
-  Services.prefs.setCharPref("lightweightThemes.usedThemes", JSON.stringify(themes));
-
-  testserver.registerPathHandler("/data/lwtheme.js", function(request, response) {
-    response.write(JSON.stringify({
-      id: "1",
-      version: "2",
-      name: "Updated Theme",
-      description: "A test theme",
-      author: "Mozilla",
-      homepageURL: "http://localhost:" + gPort + "/data/index2.html",
-      headerURL: "http://localhost:" + gPort + "/data/header.png",
-      footerURL: "http://localhost:" + gPort + "/data/footer.png",
-      previewURL: "http://localhost:" + gPort + "/data/preview.png",
-      iconURL: "http://localhost:" + gPort + "/data/icon2.png",
-      updateURL: "http://localhost:" + gPort + "/data/lwtheme.js"
-    }));
-  });
-
-  AddonManager.getAddonByID("1@personas.mozilla.org", function(p1) {
-    Assert.notEqual(p1, null);
-    Assert.equal(p1.version, "1");
-    Assert.equal(p1.name, "Test LW Theme");
-    Assert.ok(p1.isActive);
-    Assert.equal(p1.installDate.getTime(), p1.updateDate.getTime());
-
-    // 5 seconds leeway seems like a lot, but tests can run slow and really if
-    // this is within 5 seconds it is fine. If it is going to be wrong then it
-    // is likely to be hours out at least
-    Assert.ok((Date.now() - p1.installDate.getTime()) < 5000);
-
-    gInstallDate = p1.installDate.getTime();
-
-    prepare_test({
-      "1@personas.mozilla.org": [
-        ["onInstalling", false],
-        "onInstalled"
-      ]
-    }, [
-      "onExternalInstall"
-    ], check_test_7);
-
-    AddonManagerInternal.backgroundUpdateCheck();
-  });
-});
-
-function check_test_7() {
-  AddonManager.getAddonByID("1@personas.mozilla.org", function(p1) {
-    Assert.notEqual(p1, null);
-    Assert.equal(p1.version, "2");
-    Assert.equal(p1.name, "Updated Theme");
-    Assert.equal(p1.installDate.getTime(), gInstallDate);
-    Assert.ok(p1.installDate.getTime() < p1.updateDate.getTime());
-
-    // 5 seconds leeway seems like a lot, but tests can run slow and really if
-    // this is within 5 seconds it is fine. If it is going to be wrong then it
-    // is likely to be hours out at least
-    Assert.ok((Date.now() - p1.updateDate.getTime()) < 5000);
-
-    gInstallDate = p1.installDate.getTime();
-
-    run_next_test();
-  });
-}
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/xpcshell/test_upgrade_strictcompat.js
+++ /dev/null
@@ -1,209 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-// This verifies that app upgrades produce the expected behaviours,
-// with strict compatibility checking enabled.
-
-// Enable loading extensions from the application scope
-Services.prefs.setIntPref("extensions.enabledScopes",
-                          AddonManager.SCOPE_PROFILE +
-                          AddonManager.SCOPE_APPLICATION);
-
-const profileDir = gProfD.clone();
-profileDir.append("extensions");
-
-const globalDir = Services.dirsvc.get("XREAddonAppDir", AM_Ci.nsIFile);
-globalDir.append("extensions");
-
-var gGlobalExisted = globalDir.exists();
-var gInstallTime = Date.now();
-
-function run_test() {
-  createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
-
-  // Will be enabled in the first version and disabled in subsequent versions
-  writeInstallRDFForExtension({
-    id: "addon1@tests.mozilla.org",
-    version: "1.0",
-    targetApplications: [{
-      id: "xpcshell@tests.mozilla.org",
-      minVersion: "1",
-      maxVersion: "1"
-    }],
-    name: "Test Addon 1",
-    targetPlatforms: [
-      "XPCShell",
-      "WINNT_x86",
-    ]
-  }, profileDir);
-
-  // Works in all tested versions
-  writeInstallRDFForExtension({
-    id: "addon2@tests.mozilla.org",
-    version: "1.0",
-    targetApplications: [{
-      id: "xpcshell@tests.mozilla.org",
-      minVersion: "1",
-      maxVersion: "2"
-    }],
-    name: "Test Addon 2",
-    targetPlatforms: [
-      "XPCShell_noarch-spidermonkey"
-    ]
-  }, profileDir);
-
-  // Will be disabled in the first version and enabled in the second.
-  writeInstallRDFForExtension({
-    id: "addon3@tests.mozilla.org",
-    version: "1.0",
-    targetApplications: [{
-      id: "xpcshell@tests.mozilla.org",
-      minVersion: "2",
-      maxVersion: "2"
-    }],
-    name: "Test Addon 3",
-  }, profileDir);
-
-  // Will be enabled in both versions but will change version in between
-  var dest = writeInstallRDFForExtension({
-    id: "addon4@tests.mozilla.org",
-    version: "1.0",
-    targetApplications: [{
-      id: "xpcshell@tests.mozilla.org",
-      minVersion: "1",
-      maxVersion: "1"
-    }],
-    name: "Test Addon 4",
-  }, globalDir);
-  setExtensionModifiedTime(dest, gInstallTime);
-
-  do_test_pending();
-
-  Services.prefs.setBoolPref(PREF_EM_STRICT_COMPATIBILITY, true);
-
-  run_test_1();
-}
-
-function end_test() {
-  if (!gGlobalExisted) {
-    globalDir.remove(true);
-  } else {
-    globalDir.append(do_get_expected_addon_name("addon4@tests.mozilla.org"));
-    globalDir.remove(true);
-  }
-
-  Services.prefs.clearUserPref(PREF_EM_STRICT_COMPATIBILITY);
-
-  executeSoon(do_test_finished);
-}
-
-// Test that the test extensions are all installed
-async function run_test_1() {
-  await promiseStartupManager();
-
-  AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
-                               "addon2@tests.mozilla.org",
-                               "addon3@tests.mozilla.org",
-                               "addon4@tests.mozilla.org"],
-                               function([a1, a2, a3, a4]) {
-
-    Assert.notEqual(a1, null);
-    Assert.ok(isExtensionInAddonsList(profileDir, a1.id));
-
-    Assert.notEqual(a2, null);
-    Assert.ok(isExtensionInAddonsList(profileDir, a2.id));
-
-    Assert.notEqual(a3, null);
-    Assert.ok(!isExtensionInAddonsList(profileDir, a3.id));
-
-    Assert.notEqual(a4, null);
-    Assert.ok(isExtensionInAddonsList(globalDir, a4.id));
-    Assert.equal(a4.version, "1.0");
-
-    executeSoon(run_test_2);
-  });
-}
-
-// Test that upgrading the application disables now incompatible add-ons
-async function run_test_2() {
-  // Upgrade the extension
-  var dest = writeInstallRDFForExtension({
-    id: "addon4@tests.mozilla.org",
-    version: "2.0",
-    targetApplications: [{
-      id: "xpcshell@tests.mozilla.org",
-      minVersion: "2",
-      maxVersion: "2"
-    }],
-    name: "Test Addon 4",
-  }, globalDir);
-  setExtensionModifiedTime(dest, gInstallTime);
-
-  await promiseRestartManager("2");
-
-  AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
-                               "addon2@tests.mozilla.org",
-                               "addon3@tests.mozilla.org",
-                               "addon4@tests.mozilla.org"],
-                               function([a1, a2, a3, a4]) {
-
-    Assert.notEqual(a1, null);
-    Assert.ok(!isExtensionInAddonsList(profileDir, a1.id));
-
-    Assert.notEqual(a2, null);
-    Assert.ok(isExtensionInAddonsList(profileDir, a2.id));
-
-    Assert.notEqual(a3, null);
-    Assert.ok(isExtensionInAddonsList(profileDir, a3.id));
-
-    Assert.notEqual(a4, null);
-    Assert.ok(isExtensionInAddonsList(globalDir, a4.id));
-    Assert.equal(a4.version, "2.0");
-
-    executeSoon(run_test_3);
-  });
-}
-
-// Test that nothing changes when only the build ID changes.
-function run_test_3() {
-  // Upgrade the extension
-  var dest = writeInstallRDFForExtension({
-    id: "addon4@tests.mozilla.org",
-    version: "3.0",
-    targetApplications: [{
-      id: "xpcshell@tests.mozilla.org",
-      minVersion: "3",
-      maxVersion: "3"
-    }],
-    name: "Test Addon 4",
-  }, globalDir);
-  setExtensionModifiedTime(dest, gInstallTime);
-
-  // Simulates a simple Build ID change, the platform deletes extensions.ini
-  // whenever the application is changed.
-  gAddonStartup.remove(true);
-  restartManager();
-
-  AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
-                               "addon2@tests.mozilla.org",
-                               "addon3@tests.mozilla.org",
-                               "addon4@tests.mozilla.org"],
-                               function([a1, a2, a3, a4]) {
-
-    Assert.notEqual(a1, null);
-    Assert.ok(!isExtensionInAddonsList(profileDir, a1.id));
-
-    Assert.notEqual(a2, null);
-    Assert.ok(isExtensionInAddonsList(profileDir, a2.id));
-
-    Assert.notEqual(a3, null);
-    Assert.ok(isExtensionInAddonsList(profileDir, a3.id));
-
-    Assert.notEqual(a4, null);
-    Assert.ok(isExtensionInAddonsList(globalDir, a4.id));
-    Assert.equal(a4.version, "2.0");
-
-    end_test();
-  });
-}
--- a/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
+++ b/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
@@ -138,28 +138,22 @@ tags = blocklist
 skip-if = os == "android"
 [test_bug468528.js]
 # Bug 676992: test consistently hangs on Android
 skip-if = os == "android"
 tags = blocklist
 [test_bug470377_1.js]
 # Bug 676992: test consistently hangs on Android
 skip-if = os == "android"
-[test_bug470377_1_strictcompat.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
 [test_bug470377_2.js]
 # Bug 676992: test consistently hangs on Android
 skip-if = os == "android"
 [test_bug470377_3.js]
 # Bug 676992: test consistently hangs on Android
 skip-if = os == "android"
-[test_bug470377_3_strictcompat.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
 [test_bug470377_4.js]
 # Bug 676992: test consistently hangs on Android
 skip-if = os == "android"
 [test_bug514327_1.js]
 # Bug 676992: test consistently hangs on Android
 skip-if = os == "android"
 tags = blocklist
 [test_bug514327_2.js]
@@ -196,17 +190,16 @@ tags = blocklist
 [test_bug740612.js]
 [test_bug753900.js]
 [test_bug757663.js]
 [test_bug953156.js]
 [test_checkcompatibility.js]
 [test_childprocess.js]
 [test_compatoverrides.js]
 [test_corrupt.js]
-[test_corrupt_strictcompat.js]
 [test_corruptfile.js]
 [test_dataDirectory.js]
 [test_db_path.js]
 head =
 [test_default_providers_pref.js]
 [test_dictionary.js]
 [test_disable.js]
 [test_distribution.js]
@@ -252,19 +245,16 @@ tags = blocklist
 [test_gfxBlacklist_prefs.js]
 # Bug 1248787 - consistently fails
 skip-if = true
 tags = blocklist
 [test_install.js]
 [test_install_icons.js]
 # Bug 676992: test consistently hangs on Android
 skip-if = os == "android"
-[test_install_strictcompat.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
 [test_isDebuggable.js]
 [test_legacy.js]
 skip-if = !allow_legacy_extensions || appname == "thunderbird"
 [test_locale.js]
 [test_manifest.js]
 [test_no_addons.js]
 [test_onPropertyChanged_appDisabled.js]
 [test_permissions.js]
@@ -308,39 +298,32 @@ skip-if = os == "win" # Bug 1358846
 [test_uninstall.js]
 [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]
 tags = webextensions
 [test_updateCancel.js]
-[test_update_strictcompat.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
 [test_update_ignorecompat.js]
 skip-if = true # Bug 676922 Bug 1437697
 [test_updatecheck.js]
 # Bug 676992: test consistently hangs on Android
 skip-if = os == "android"
 [test_json_updatecheck.js]
 [test_migrate_state_prefs.js]
 [test_seen.js]
 [test_updateid.js]
 # Bug 676992: test consistently hangs on Android
 skip-if = os == "android"
 [test_update_compatmode.js]
 [test_upgrade.js]
 # Bug 676992: test consistently hangs on Android
 skip-if = os == "android"
 run-sequentially = Uses global XCurProcD dir.
-[test_upgrade_strictcompat.js]
-# Bug 676992: test consistently hangs on Android
-skip-if = os == "android"
-run-sequentially = Uses global XCurProcD dir.
 [test_overrideblocklist.js]
 run-sequentially = Uses global XCurProcD dir.
 tags = blocklist
 [test_sideloads.js]
 [test_sourceURI.js]
 [test_webextension_icons.js]
 skip-if = appname == "thunderbird"
 tags = webextensions