Bug 1237820: Fix the tests. r?rhelmer draft
authorDave Townsend <dtownsend@oxymoronical.com>
Tue, 26 Jan 2016 14:31:33 -0800
changeset 325991 a1fcfc09640df8aa90dfd9d1938d6c4cda332d71
parent 325990 985d89739d7b6e191ed7eb827635623280d01482
child 513530 ad05a53913ea516a23b847b9230f362bd50847f6
push id10072
push userdtownsend@mozilla.com
push dateTue, 26 Jan 2016 22:34:45 +0000
reviewersrhelmer
bugs1237820, 1231849
milestone47.0a1
Bug 1237820: Fix the tests. r?rhelmer I changed the seen property to only be false when we auto-disable sideloaded add-ons and hadn't updated the tests to match. This in turn meant we got hit with some issues with the tests seeing changes to sideloaded add-ons, mainly down to bug 1231849 so there are some date fixes here.
toolkit/mozapps/extensions/test/xpcshell/test_seen.js
toolkit/mozapps/extensions/test/xpcshell/test_startup.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_seen.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_seen.js
@@ -5,16 +5,19 @@
 const ID = "bootstrap1@tests.mozilla.org";
 
 let profileDir = gProfD.clone();
 profileDir.append("extensions");
 
 createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
 startupManager();
 
+// By default disable add-ons from the profile
+Services.prefs.setIntPref("extensions.autoDisableScopes", AddonManager.SCOPE_PROFILE);
+
 // Installing an add-on through the API should mark it as seen
 add_task(function*() {
   let install = yield new Promise(resolve => AddonManager.getInstallForFile(do_get_addon("test_bootstrap1_1"), resolve));
   yield promiseCompleteAllInstalls([install]);
   do_check_eq(install.state, AddonManager.STATE_INSTALLED);
   do_check_false(hasFlag(install.addon.pendingOperations, AddonManager.PENDING_INSTALL));
 
   let addon = install.addon;
@@ -48,17 +51,17 @@ add_task(function*() {
   addon.uninstall();
   yield promiseShutdownManager();
 });
 
 // Sideloading an add-on should mark it as unseen
 add_task(function*() {
   let path = manuallyInstall(do_get_addon("test_bootstrap1_1"), profileDir, ID);
   // Make sure the startup code will detect sideloaded updates
-  setExtensionModifiedTime(path, path.lastModifiedTime - 10000);
+  setExtensionModifiedTime(path, Date.now() - 10000);
 
   startupManager();
 
   let addon = yield promiseAddonByID(ID);
   do_check_eq(addon.version, "1.0");
   do_check_true(addon.foreignInstall);
   do_check_false(addon.seen);
 
@@ -68,33 +71,34 @@ add_task(function*() {
   do_check_true(addon.foreignInstall);
   do_check_false(addon.seen);
 
   yield promiseShutdownManager();
 
   // Sideloading an update shouldn't change the state
   manuallyUninstall(profileDir, ID);
   manuallyInstall(do_get_addon("test_bootstrap1_2"), profileDir, ID);
+  setExtensionModifiedTime(path, Date.now());
 
   startupManager();
 
   addon = yield promiseAddonByID(ID);
   do_check_eq(addon.version, "2.0");
   do_check_true(addon.foreignInstall);
   do_check_false(addon.seen);
 
   addon.uninstall();
   yield promiseShutdownManager();
 });
 
 // Sideloading an add-on should mark it as unseen
 add_task(function*() {
   let path = manuallyInstall(do_get_addon("test_bootstrap1_1"), profileDir, ID);
   // Make sure the startup code will detect sideloaded updates
-  setExtensionModifiedTime(path, path.lastModifiedTime - 10000);
+  setExtensionModifiedTime(path, Date.now() - 10000);
 
   startupManager();
 
   let addon = yield promiseAddonByID(ID);
   do_check_eq(addon.version, "1.0");
   do_check_true(addon.foreignInstall);
   do_check_false(addon.seen);
 
@@ -124,17 +128,17 @@ add_task(function*() {
   addon.uninstall();
   yield promiseShutdownManager();
 });
 
 // Sideloading an add-on should mark it as unseen
 add_task(function*() {
   let path = manuallyInstall(do_get_addon("test_bootstrap1_1"), profileDir, ID);
   // Make sure the startup code will detect sideloaded updates
-  setExtensionModifiedTime(path, path.lastModifiedTime - 10000);
+  setExtensionModifiedTime(path, Date.now() - 10000);
 
   startupManager();
 
   let addon = yield promiseAddonByID(ID);
   do_check_eq(addon.version, "1.0");
   do_check_true(addon.foreignInstall);
   do_check_false(addon.seen);
   addon.markAsSeen();
@@ -146,33 +150,34 @@ add_task(function*() {
   do_check_true(addon.foreignInstall);
   do_check_true(addon.seen);
 
   yield promiseShutdownManager();
 
   // Sideloading an update shouldn't change the state
   manuallyUninstall(profileDir, ID);
   manuallyInstall(do_get_addon("test_bootstrap1_2"), profileDir, ID);
+  setExtensionModifiedTime(path, Date.now());
 
   startupManager();
 
   addon = yield promiseAddonByID(ID);
   do_check_eq(addon.version, "2.0");
   do_check_true(addon.foreignInstall);
   do_check_true(addon.seen);
 
   addon.uninstall();
   yield promiseShutdownManager();
 });
 
 // Sideloading an add-on should mark it as unseen
 add_task(function*() {
   let path = manuallyInstall(do_get_addon("test_bootstrap1_1"), profileDir, ID);
   // Make sure the startup code will detect sideloaded updates
-  setExtensionModifiedTime(path, path.lastModifiedTime - 10000);
+  setExtensionModifiedTime(path, Date.now() - 10000);
 
   startupManager();
 
   let addon = yield promiseAddonByID(ID);
   do_check_eq(addon.version, "1.0");
   do_check_true(addon.foreignInstall);
   do_check_false(addon.seen);
   addon.markAsSeen();
--- a/toolkit/mozapps/extensions/test/xpcshell/test_startup.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_startup.js
@@ -207,47 +207,50 @@ function run_test_1() {
     do_check_eq(a1.name, "Test 1");
     do_check_true(isExtensionInAddonsList(profileDir, a1.id));
     do_check_true(hasFlag(a1.permissions, AddonManager.PERM_CAN_UNINSTALL));
     do_check_true(hasFlag(a1.permissions, AddonManager.PERM_CAN_UPGRADE));
     do_check_in_crash_annotation(addon1.id, addon1.version);
     do_check_eq(a1.scope, AddonManager.SCOPE_PROFILE);
     do_check_eq(a1.sourceURI, null);
     do_check_true(a1.foreignInstall);
-    do_check_false(a1.seen);
+    do_check_false(a1.userDisabled);
+    do_check_true(a1.seen);
 
     do_check_neq(a2, null);
     do_check_eq(a2.id, "addon2@tests.mozilla.org");
     do_check_neq(a2.syncGUID, null);
     do_check_true(a2.syncGUID.length >= 9);
     do_check_eq(a2.version, "2.0");
     do_check_eq(a2.name, "Test 2");
     do_check_true(isExtensionInAddonsList(profileDir, a2.id));
     do_check_true(hasFlag(a2.permissions, AddonManager.PERM_CAN_UNINSTALL));
     do_check_true(hasFlag(a2.permissions, AddonManager.PERM_CAN_UPGRADE));
     do_check_in_crash_annotation(addon2.id, addon2.version);
     do_check_eq(a2.scope, AddonManager.SCOPE_PROFILE);
     do_check_eq(a2.sourceURI, null);
     do_check_true(a2.foreignInstall);
-    do_check_false(a2.seen);
+    do_check_false(a1.userDisabled);
+    do_check_true(a1.seen);
 
     do_check_neq(a3, null);
     do_check_eq(a3.id, "addon3@tests.mozilla.org");
     do_check_neq(a3.syncGUID, null);
     do_check_true(a3.syncGUID.length >= 9);
     do_check_eq(a3.version, "3.0");
     do_check_eq(a3.name, "Test 3");
     do_check_true(isExtensionInAddonsList(profileDir, a3.id));
     do_check_true(hasFlag(a3.permissions, AddonManager.PERM_CAN_UNINSTALL));
     do_check_true(hasFlag(a3.permissions, AddonManager.PERM_CAN_UPGRADE));
     do_check_in_crash_annotation(addon3.id, addon3.version);
     do_check_eq(a3.scope, AddonManager.SCOPE_PROFILE);
     do_check_eq(a3.sourceURI, null);
     do_check_true(a3.foreignInstall);
-    do_check_false(a3.seen);
+    do_check_false(a1.userDisabled);
+    do_check_true(a1.seen);
 
     do_check_eq(a4, null);
     do_check_false(isExtensionInAddonsList(profileDir, "addon4@tests.mozilla.org"));
     dest = profileDir.clone();
     dest.append(do_get_expected_addon_name("addon4@tests.mozilla.org"));
     do_check_false(dest.exists());
 
     do_check_eq(a5, null);
@@ -822,24 +825,27 @@ function run_test_12() {
   AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
                                "addon2@tests.mozilla.org",
                                "addon3@tests.mozilla.org",
                                "addon4@tests.mozilla.org",
                                "addon5@tests.mozilla.org"],
                                callback_soon(function([a1, a2, a3, a4, a5]) {
     do_check_neq(a1, null);
     do_check_false(a1.userDisabled);
+    do_check_true(a1.seen);
     do_check_true(a1.isActive);
 
     do_check_neq(a2, null);
     do_check_true(a2.userDisabled);
+    do_check_false(a2.seen);
     do_check_false(a2.isActive);
 
     do_check_neq(a3, null);
     do_check_false(a3.userDisabled);
+    do_check_true(a3.seen);
     do_check_true(a3.isActive);
 
     var dest = profileDir.clone();
     dest.append(do_get_expected_addon_name("addon1@tests.mozilla.org"));
     dest.remove(true);
     dest = userDir.clone();
     dest.append(do_get_expected_addon_name("addon2@tests.mozilla.org"));
     dest.remove(true);
@@ -860,24 +866,27 @@ function run_test_12() {
     AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
                                  "addon2@tests.mozilla.org",
                                  "addon3@tests.mozilla.org",
                                  "addon4@tests.mozilla.org",
                                  "addon5@tests.mozilla.org"],
                                  function([a1, a2, a3, a4, a5]) {
       do_check_neq(a1, null);
       do_check_false(a1.userDisabled);
+      do_check_true(a1.seen);
       do_check_true(a1.isActive);
 
       do_check_neq(a2, null);
       do_check_false(a2.userDisabled);
+      do_check_true(a2.seen);
       do_check_true(a2.isActive);
 
       do_check_neq(a3, null);
       do_check_true(a3.userDisabled);
+      do_check_false(a3.seen);
       do_check_false(a3.isActive);
 
       var dest = profileDir.clone();
       dest.append(do_get_expected_addon_name("addon1@tests.mozilla.org"));
       dest.remove(true);
       dest = userDir.clone();
       dest.append(do_get_expected_addon_name("addon2@tests.mozilla.org"));
       dest.remove(true);
@@ -898,23 +907,26 @@ function run_test_12() {
       AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
                                    "addon2@tests.mozilla.org",
                                    "addon3@tests.mozilla.org",
                                    "addon4@tests.mozilla.org",
                                    "addon5@tests.mozilla.org"],
                                    function([a1, a2, a3, a4, a5]) {
         do_check_neq(a1, null);
         do_check_false(a1.userDisabled);
+        do_check_true(a1.seen);
         do_check_true(a1.isActive);
 
         do_check_neq(a2, null);
         do_check_true(a2.userDisabled);
+        do_check_false(a2.seen);
         do_check_false(a2.isActive);
 
         do_check_neq(a3, null);
         do_check_true(a3.userDisabled);
+        do_check_false(a3.seen);
         do_check_false(a3.isActive);
 
         do_execute_soon(end_test);
       });
     });
   }));
 }