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.
--- 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);
});
});
}));
}