Bug 1449255: Part 23 - Remove test_bug587088.js, which has been disabled for a long time. r?aswan draft
authorKris Maglione <maglione.k@gmail.com>
Tue, 27 Mar 2018 16:47:59 -0700
changeset 773492 5486c87167c23e8f8d5cd301f51db53fc754e77a
parent 773491 88ee0ab7d6d8db3954a5c42b5ff0839e7ff258b0
child 773493 7b3a4b5447e3d0b14ef553a9351eb8a78cc12ad3
push id104243
push usermaglione.k@gmail.com
push dateWed, 28 Mar 2018 00:15:32 +0000
reviewersaswan
bugs1449255, 587088
milestone61.0a1
Bug 1449255: Part 23 - Remove test_bug587088.js, which has been disabled for a long time. r?aswan MozReview-Commit-ID: K6uwZfbw6ta
toolkit/mozapps/extensions/test/addons/test_bug587088_1/install.rdf
toolkit/mozapps/extensions/test/addons/test_bug587088_1/testfile
toolkit/mozapps/extensions/test/addons/test_bug587088_1/testfile1
toolkit/mozapps/extensions/test/addons/test_bug587088_2/install.rdf
toolkit/mozapps/extensions/test/addons/test_bug587088_2/testfile
toolkit/mozapps/extensions/test/addons/test_bug587088_2/testfile2
toolkit/mozapps/extensions/test/xpcshell/test_bug587088.js
toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_bug587088_1/install.rdf
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-     xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-
-  <Description about="urn:mozilla:install-manifest">
-    <em:id>addon1@tests.mozilla.org</em:id>
-    <em:version>1.0</em:version>
-
-    <!-- Front End MetaData -->
-    <em:name>Bug 587088 Test</em:name>
-
-    <em:targetApplication>
-      <Description>
-        <em:id>xpcshell@tests.mozilla.org</em:id>
-        <em:minVersion>1</em:minVersion>
-        <em:maxVersion>1</em:maxVersion>
-      </Description>
-    </em:targetApplication>
-
-  </Description>
-</RDF>
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_bug587088_1/testfile
+++ /dev/null
@@ -1,1 +0,0 @@
-Contents of add-on version 1
deleted file mode 100644
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_bug587088_2/install.rdf
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-     xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-
-  <Description about="urn:mozilla:install-manifest">
-    <em:id>addon1@tests.mozilla.org</em:id>
-    <em:version>2.0</em:version>
-
-    <!-- Front End MetaData -->
-    <em:name>Bug 587088 Test</em:name>
-
-    <em:targetApplication>
-      <Description>
-        <em:id>xpcshell@tests.mozilla.org</em:id>
-        <em:minVersion>1</em:minVersion>
-        <em:maxVersion>1</em:maxVersion>
-      </Description>
-    </em:targetApplication>
-
-  </Description>
-</RDF>
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_bug587088_2/testfile
+++ /dev/null
@@ -1,1 +0,0 @@
-Contents of add-on version 2
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/xpcshell/test_bug587088.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_bug587088.js
@@ -3,27 +3,60 @@
  */
 
 // Tests that trying to upgrade or uninstall an extension that has a file locked
 // will roll back the upgrade or uninstall and retry at the next restart
 
 const profileDir = gProfD.clone();
 profileDir.append("extensions");
 
-function run_test() {
+const ADDONS = [
+  {
+    "install.rdf": {
+      "id": "addon1@tests.mozilla.org",
+      "version": "1.0",
+      "name": "Bug 587088 Test",
+      "targetApplications": [
+        {
+          "id": "xpcshell@tests.mozilla.org",
+          "minVersion": "1",
+          "maxVersion": "1"
+        }
+      ]
+    },
+    "testfile": "",
+    "testfile1": "",
+  },
+
+  {
+    "install.rdf": {
+      "id": "addon1@tests.mozilla.org",
+      "version": "2.0",
+      "name": "Bug 587088 Test",
+      "targetApplications": [
+        {
+          "id": "xpcshell@tests.mozilla.org",
+          "minVersion": "1",
+          "maxVersion": "1"
+        }
+      ]
+    },
+    "testfile": "",
+    "testfile2": "",
+  },
+];
+
+add_task(async function setup() {
   // This is only an issue on windows.
   if (!("nsIWindowsRegKey" in Ci))
     return;
 
   do_test_pending();
   createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
-
-  startupManager();
-  run_test_1();
-}
+});
 
 function check_addon(aAddon, aVersion) {
   Assert.notEqual(aAddon, null);
   Assert.equal(aAddon.version, aVersion);
   Assert.ok(aAddon.isActive);
   Assert.ok(isExtensionInAddonsList(profileDir, aAddon.id));
 
   Assert.ok(aAddon.hasResource("testfile"));
@@ -67,106 +100,93 @@ function check_addon_uninstalling(aAddon
 
   Assert.ok(aAddon.hasResource("testfile"));
   Assert.ok(aAddon.hasResource("testfile1"));
   Assert.ok(!aAddon.hasResource("testfile2"));
 
   Assert.equal(aAddon.pendingOperations, AddonManager.PENDING_UNINSTALL);
 }
 
-function run_test_1() {
-  installAllFiles([do_get_addon("test_bug587088_1")], function() {
-    restartManager();
+add_task(async function test_1() {
+  await AddonTestUtils.promiseInstallXPI(ADDONS[0]);
 
-    AddonManager.getAddonByID("addon1@tests.mozilla.org", function(a1) {
-      check_addon(a1, "1.0");
+  await promiseRestartManager();
+
+  let a1 = await AddonManager.getAddonByID("addon1@tests.mozilla.org");
+  check_addon(a1, "1.0");
 
-      // Lock either install.rdf for unpacked add-ons or the xpi for packed add-ons.
-      let uri = a1.getResourceURI("install.rdf");
-      if (uri.schemeIs("jar"))
-        uri = a1.getResourceURI();
+  // Lock either install.rdf for unpacked add-ons or the xpi for packed add-ons.
+  let uri = a1.getResourceURI("install.rdf");
+  if (uri.schemeIs("jar"))
+    uri = a1.getResourceURI();
 
-      let fstream = Cc["@mozilla.org/network/file-input-stream;1"].
-                    createInstance(Ci.nsIFileInputStream);
-      fstream.init(uri.QueryInterface(Ci.nsIFileURL).file, -1, 0, 0);
+  let fstream = Cc["@mozilla.org/network/file-input-stream;1"].
+                createInstance(Ci.nsIFileInputStream);
+  fstream.init(uri.QueryInterface(Ci.nsIFileURL).file, -1, 0, 0);
 
-      installAllFiles([do_get_addon("test_bug587088_2")], function() {
-
-        check_addon_upgrading(a1);
-
-        restartManager();
+  await AddonTestUtils.promiseInstallXPI(ADDONS[1]);
 
-        AddonManager.getAddonByID("addon1@tests.mozilla.org", callback_soon(function(a1_2) {
-          check_addon_upgrading(a1_2);
+  check_addon_upgrading(a1);
 
-          restartManager();
+  await promiseRestartManager();
 
-          AddonManager.getAddonByID("addon1@tests.mozilla.org", callback_soon(function(a1_3) {
-            check_addon_upgrading(a1_3);
+  let a1_2 = await AddonManager.getAddonByID("addon1@tests.mozilla.org");
+  check_addon_upgrading(a1_2);
 
-            fstream.close();
-
-            restartManager();
+  await promiseRestartManager();
 
-            AddonManager.getAddonByID("addon1@tests.mozilla.org", function(a1_4) {
-              check_addon(a1_4, "2.0");
+  let a1_3 = await AddonManager.getAddonByID("addon1@tests.mozilla.org");
+  check_addon_upgrading(a1_3);
+
+  fstream.close();
 
-              a1_4.uninstall();
-              executeSoon(run_test_2);
-            });
-          }));
-        }));
-      });
-    });
-  });
-}
+  await promiseRestartManager();
+
+  let a1_4 = await AddonManager.getAddonByID("addon1@tests.mozilla.org");
+  check_addon(a1_4, "2.0");
+
+  a1_4.uninstall();
+});
 
 // Test that a failed uninstall gets rolled back
-function run_test_2() {
-  restartManager();
+add_task(async function test_2() {
+  await promiseRestartManager();
 
-  installAllFiles([do_get_addon("test_bug587088_1")], async function() {
-    await promiseRestartManager();
+  await AddonTestUtils.promiseInstallXPI(ADDONS[0]);
+  await promiseRestartManager();
 
-    AddonManager.getAddonByID("addon1@tests.mozilla.org", callback_soon(async function(a1) {
-      check_addon(a1, "1.0");
+  let a1 = await AddonManager.getAddonByID("addon1@tests.mozilla.org");
+  check_addon(a1, "1.0");
 
-      // Lock either install.rdf for unpacked add-ons or the xpi for packed add-ons.
-      let uri = a1.getResourceURI("install.rdf");
-      if (uri.schemeIs("jar"))
-        uri = a1.getResourceURI();
+  // Lock either install.rdf for unpacked add-ons or the xpi for packed add-ons.
+  let uri = a1.getResourceURI("install.rdf");
+  if (uri.schemeIs("jar"))
+    uri = a1.getResourceURI();
 
-      let fstream = Cc["@mozilla.org/network/file-input-stream;1"].
-                    createInstance(Ci.nsIFileInputStream);
-      fstream.init(uri.QueryInterface(Ci.nsIFileURL).file, -1, 0, 0);
+  let fstream = Cc["@mozilla.org/network/file-input-stream;1"].
+                createInstance(Ci.nsIFileInputStream);
+  fstream.init(uri.QueryInterface(Ci.nsIFileURL).file, -1, 0, 0);
 
-      a1.uninstall();
+  a1.uninstall();
 
-      check_addon_uninstalling(a1);
-
-      await promiseRestartManager();
+  check_addon_uninstalling(a1);
 
-      AddonManager.getAddonByID("addon1@tests.mozilla.org", callback_soon(async function(a1_2) {
-        check_addon_uninstalling(a1_2, true);
+  await promiseRestartManager();
 
-        await promiseRestartManager();
+  let a1_2 = await AddonManager.getAddonByID("addon1@tests.mozilla.org");
+  check_addon_uninstalling(a1_2, true);
 
-        AddonManager.getAddonByID("addon1@tests.mozilla.org", callback_soon(async function(a1_3) {
-          check_addon_uninstalling(a1_3, true);
+  await promiseRestartManager();
 
-          fstream.close();
-
-          await promiseRestartManager();
+  let a1_3 = await AddonManager.getAddonByID("addon1@tests.mozilla.org");
+  check_addon_uninstalling(a1_3, true);
 
-          AddonManager.getAddonByID("addon1@tests.mozilla.org", function(a1_4) {
-            Assert.equal(a1_4, null);
-            var dir = profileDir.clone();
-            dir.append(do_get_expected_addon_name("addon1@tests.mozilla.org"));
-            Assert.ok(!dir.exists());
-            Assert.ok(!isExtensionInAddonsList(profileDir, "addon1@tests.mozilla.org"));
+  fstream.close();
+
+  await promiseRestartManager();
 
-            executeSoon(do_test_finished);
-          });
-        }));
-      }));
-    }));
-  });
-}
+  let a1_4 = await AddonManager.getAddonByID("addon1@tests.mozilla.org");
+  Assert.equal(a1_4, null);
+  var dir = profileDir.clone();
+  dir.append(do_get_expected_addon_name("addon1@tests.mozilla.org"));
+  Assert.ok(!dir.exists());
+  Assert.ok(!isExtensionInAddonsList(profileDir, "addon1@tests.mozilla.org"));
+});
--- a/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
+++ b/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
@@ -75,18 +75,16 @@ skip-if = true # Bug 1358846 Bug 1365021
 [test_bug1180901_2.js]
 skip-if = os != "win"
 [test_bug514327_2.js]
 # Bug 676992: test consistently hangs on Android
 skip-if = os == "android"
 tags = blocklist
 [test_bug521905.js]
 [test_bug566626.js]
-[test_bug587088.js]
-skip-if = os == "win" # Bug 1358846
 [test_bug595081.js]
 [test_bug596607.js]
 [test_cache_certdb.js]
 run-if = addon_signing
 [test_cacheflush.js]
 [test_childprocess.js]
 [test_compatoverrides.js]
 [test_corrupt.js]