Bug 1449255: Part 25 - Fold test_bug596607 into test_registry.js. r?aswan
MozReview-Commit-ID: KK6zpHmKlWS
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/xpcshell/test_bug596607.js
+++ /dev/null
@@ -1,147 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-// Tests that a reference to a non-existent extension in the registry doesn't
-// break things
-createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
-
-// Enable loading extensions from the user and system scopes
-Services.prefs.setIntPref("extensions.enabledScopes",
- AddonManager.SCOPE_PROFILE + AddonManager.SCOPE_USER +
- AddonManager.SCOPE_SYSTEM);
-
-var addon1 = {
- id: "addon1@tests.mozilla.org",
- version: "1.0",
- name: "Test 1",
- targetApplications: [{
- id: "xpcshell@tests.mozilla.org",
- minVersion: "1",
- maxVersion: "1"
- }]
-};
-
-var addon2 = {
- id: "addon2@tests.mozilla.org",
- version: "2.0",
- name: "Test 2",
- targetApplications: [{
- id: "xpcshell@tests.mozilla.org",
- minVersion: "1",
- maxVersion: "2"
- }]
-};
-
-const addon1Dir = writeInstallRDFForExtension(addon1, gProfD, "addon1");
-const addon2Dir = writeInstallRDFForExtension(addon2, gProfD, "addon2");
-const addon3Dir = gProfD.clone();
-addon3Dir.append("addon3@tests.mozilla.org");
-
-let registry;
-
-function run_test() {
- // This test only works where there is a registry.
- if (!("nsIWindowsRegKey" in Ci))
- return;
-
- registry = new MockRegistry();
- registerCleanupFunction(() => {
- registry.shutdown();
- });
-
- do_test_pending();
-
- run_test_1();
-}
-
-// Tests whether starting a fresh profile with a bad entry works
-function run_test_1() {
- registry.setValue(Ci.nsIWindowsRegKey.ROOT_KEY_LOCAL_MACHINE,
- "SOFTWARE\\Mozilla\\XPCShell\\Extensions",
- "addon1@tests.mozilla.org", addon1Dir.path);
- registry.setValue(Ci.nsIWindowsRegKey.ROOT_KEY_CURRENT_USER,
- "SOFTWARE\\Mozilla\\XPCShell\\Extensions",
- "addon2@tests.mozilla.org", addon2Dir.path);
- registry.setValue(Ci.nsIWindowsRegKey.ROOT_KEY_CURRENT_USER,
- "SOFTWARE\\Mozilla\\XPCShell\\Extensions",
- "addon3@tests.mozilla.org", addon3Dir.path);
-
- startupManager();
-
- AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
- "addon2@tests.mozilla.org",
- "addon3@tests.mozilla.org"], function([a1, a2, a3]) {
- Assert.notEqual(a1, null);
- Assert.ok(a1.isActive);
- Assert.ok(!hasFlag(a1.permissions, AddonManager.PERM_CAN_UNINSTALL));
- Assert.equal(a1.scope, AddonManager.SCOPE_SYSTEM);
-
- Assert.notEqual(a2, null);
- Assert.ok(a2.isActive);
- Assert.ok(!hasFlag(a2.permissions, AddonManager.PERM_CAN_UNINSTALL));
- Assert.equal(a2.scope, AddonManager.SCOPE_USER);
-
- Assert.equal(a3, null);
-
- executeSoon(run_test_2);
- });
-}
-
-// Tests whether removing the bad entry has any effect
-function run_test_2() {
- shutdownManager();
-
- registry.setValue(Ci.nsIWindowsRegKey.ROOT_KEY_CURRENT_USER,
- "SOFTWARE\\Mozilla\\XPCShell\\Extensions",
- "addon3@tests.mozilla.org", addon3Dir.path);
-
- startupManager(false);
-
- AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
- "addon2@tests.mozilla.org",
- "addon3@tests.mozilla.org"], function([a1, a2, a3]) {
- Assert.notEqual(a1, null);
- Assert.ok(a1.isActive);
- Assert.ok(!hasFlag(a1.permissions, AddonManager.PERM_CAN_UNINSTALL));
- Assert.equal(a1.scope, AddonManager.SCOPE_SYSTEM);
-
- Assert.notEqual(a2, null);
- Assert.ok(a2.isActive);
- Assert.ok(!hasFlag(a2.permissions, AddonManager.PERM_CAN_UNINSTALL));
- Assert.equal(a2.scope, AddonManager.SCOPE_USER);
-
- Assert.equal(a3, null);
-
- executeSoon(run_test_3);
- });
-}
-
-// Tests adding the bad entry to an existing profile has any effect
-function run_test_3() {
- shutdownManager();
-
- registry.setValue(Ci.nsIWindowsRegKey.ROOT_KEY_CURRENT_USER,
- "SOFTWARE\\Mozilla\\XPCShell\\Extensions",
- "addon3@tests.mozilla.org", null);
-
- startupManager(false);
-
- AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
- "addon2@tests.mozilla.org",
- "addon3@tests.mozilla.org"], function([a1, a2, a3]) {
- Assert.notEqual(a1, null);
- Assert.ok(a1.isActive);
- Assert.ok(!hasFlag(a1.permissions, AddonManager.PERM_CAN_UNINSTALL));
- Assert.equal(a1.scope, AddonManager.SCOPE_SYSTEM);
-
- Assert.notEqual(a2, null);
- Assert.ok(a2.isActive);
- Assert.ok(!hasFlag(a2.permissions, AddonManager.PERM_CAN_UNINSTALL));
- Assert.equal(a2.scope, AddonManager.SCOPE_USER);
-
- Assert.equal(a3, null);
-
- executeSoon(do_test_finished);
- });
-}
--- a/toolkit/mozapps/extensions/test/xpcshell/test_registry.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_registry.js
@@ -27,132 +27,132 @@ var addon2 = {
name: "Test 2",
targetApplications: [{
id: "xpcshell@tests.mozilla.org",
minVersion: "1",
maxVersion: "2"
}]
};
+const IDS = ["addon1@tests.mozilla.org",
+ "addon2@tests.mozilla.org",
+ "addon3@tests.mozilla.org"];
+
+
const addon1Dir = writeInstallRDFForExtension(addon1, gProfD, "addon1");
const addon2Dir = writeInstallRDFForExtension(addon2, gProfD, "addon2");
+const addon3Dir = gProfD.clone();
+addon3Dir.append("addon3@tests.mozilla.org");
let registry;
-function run_test() {
- // This test only works where there is a registry.
- if (!("nsIWindowsRegKey" in Ci))
- return;
-
+add_task(async function setup() {
registry = new MockRegistry();
registerCleanupFunction(() => {
registry.shutdown();
});
-
- do_test_pending();
-
- run_test_1();
-}
+});
// Tests whether basic registry install works
-function run_test_1() {
+add_task(async function test_1() {
registry.setValue(Ci.nsIWindowsRegKey.ROOT_KEY_LOCAL_MACHINE,
"SOFTWARE\\Mozilla\\XPCShell\\Extensions",
"addon1@tests.mozilla.org", addon1Dir.path);
registry.setValue(Ci.nsIWindowsRegKey.ROOT_KEY_CURRENT_USER,
"SOFTWARE\\Mozilla\\XPCShell\\Extensions",
"addon2@tests.mozilla.org", addon2Dir.path);
+ registry.setValue(Ci.nsIWindowsRegKey.ROOT_KEY_CURRENT_USER,
+ "SOFTWARE\\Mozilla\\XPCShell\\Extensions",
+ "addon3@tests.mozilla.org", addon3Dir.path);
- startupManager();
+ await promiseStartupManager();
- AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
- "addon2@tests.mozilla.org"], function([a1, a2]) {
- Assert.notEqual(a1, null);
- Assert.ok(a1.isActive);
- Assert.ok(!hasFlag(a1.permissions, AddonManager.PERM_CAN_UNINSTALL));
- Assert.equal(a1.scope, AddonManager.SCOPE_SYSTEM);
+ let [a1, a2, a3] = await AddonManager.getAddonsByIDs(IDS);
+ notEqual(a1, null);
+ ok(a1.isActive);
+ ok(!hasFlag(a1.permissions, AddonManager.PERM_CAN_UNINSTALL));
+ equal(a1.scope, AddonManager.SCOPE_SYSTEM);
- Assert.notEqual(a2, null);
- Assert.ok(a2.isActive);
- Assert.ok(!hasFlag(a2.permissions, AddonManager.PERM_CAN_UNINSTALL));
- Assert.equal(a2.scope, AddonManager.SCOPE_USER);
+ notEqual(a2, null);
+ ok(a2.isActive);
+ ok(!hasFlag(a2.permissions, AddonManager.PERM_CAN_UNINSTALL));
+ equal(a2.scope, AddonManager.SCOPE_USER);
- executeSoon(run_test_2);
- });
-}
+ equal(a3, null);
+});
// Tests whether uninstalling from the registry works
-function run_test_2() {
+add_task(async function test_2() {
registry.setValue(Ci.nsIWindowsRegKey.ROOT_KEY_LOCAL_MACHINE,
"SOFTWARE\\Mozilla\\XPCShell\\Extensions",
"addon1@tests.mozilla.org", null);
registry.setValue(Ci.nsIWindowsRegKey.ROOT_KEY_CURRENT_USER,
"SOFTWARE\\Mozilla\\XPCShell\\Extensions",
"addon2@tests.mozilla.org", null);
+ registry.setValue(Ci.nsIWindowsRegKey.ROOT_KEY_CURRENT_USER,
+ "SOFTWARE\\Mozilla\\XPCShell\\Extensions",
+ "addon3@tests.mozilla.org", null);
- restartManager();
+ await promiseRestartManager();
- AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
- "addon2@tests.mozilla.org"], function([a1, a2]) {
- Assert.equal(a1, null);
- Assert.equal(a2, null);
-
- executeSoon(run_test_3);
- });
-}
+ let [a1, a2, a3] = await AddonManager.getAddonsByIDs(IDS);
+ equal(a1, null);
+ equal(a2, null);
+ equal(a3, null);
+});
// Checks that the ID in the registry must match that in the install manifest
-function run_test_3() {
+add_task(async function test_3() {
registry.setValue(Ci.nsIWindowsRegKey.ROOT_KEY_LOCAL_MACHINE,
"SOFTWARE\\Mozilla\\XPCShell\\Extensions",
"addon1@tests.mozilla.org", addon2Dir.path);
registry.setValue(Ci.nsIWindowsRegKey.ROOT_KEY_CURRENT_USER,
"SOFTWARE\\Mozilla\\XPCShell\\Extensions",
"addon2@tests.mozilla.org", addon1Dir.path);
+ registry.setValue(Ci.nsIWindowsRegKey.ROOT_KEY_CURRENT_USER,
+ "SOFTWARE\\Mozilla\\XPCShell\\Extensions",
+ "addon3@tests.mozilla.org", addon3Dir.path);
- restartManager();
+ await promiseRestartManager();
- AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
- "addon2@tests.mozilla.org"], function([a1, a2]) {
- Assert.equal(a1, null);
- Assert.equal(a2, null);
-
- executeSoon(run_test_4);
- });
-}
+ let [a1, a2, a3] = await AddonManager.getAddonsByIDs(IDS);
+ equal(a1, null);
+ equal(a2, null);
+ equal(a3, null);
+});
// Tests whether an extension's ID can change without its directory changing
-function run_test_4() {
+add_task(async function test_4() {
// Restarting with bad items in the registry should not force an EM restart
- restartManager();
+ await promiseRestartManager();
registry.setValue(Ci.nsIWindowsRegKey.ROOT_KEY_LOCAL_MACHINE,
"SOFTWARE\\Mozilla\\XPCShell\\Extensions",
"addon1@tests.mozilla.org", null);
registry.setValue(Ci.nsIWindowsRegKey.ROOT_KEY_CURRENT_USER,
"SOFTWARE\\Mozilla\\XPCShell\\Extensions",
"addon2@tests.mozilla.org", null);
+ registry.setValue(Ci.nsIWindowsRegKey.ROOT_KEY_CURRENT_USER,
+ "SOFTWARE\\Mozilla\\XPCShell\\Extensions",
+ "addon3@tests.mozilla.org", null);
- restartManager();
+ await promiseRestartManager();
registry.setValue(Ci.nsIWindowsRegKey.ROOT_KEY_LOCAL_MACHINE,
"SOFTWARE\\Mozilla\\XPCShell\\Extensions",
"addon1@tests.mozilla.org", addon1Dir.path);
- restartManager();
+ await promiseRestartManager();
registry.setValue(Ci.nsIWindowsRegKey.ROOT_KEY_LOCAL_MACHINE,
"SOFTWARE\\Mozilla\\XPCShell\\Extensions",
"addon1@tests.mozilla.org", null);
registry.setValue(Ci.nsIWindowsRegKey.ROOT_KEY_CURRENT_USER,
"SOFTWARE\\Mozilla\\XPCShell\\Extensions",
"addon2@tests.mozilla.org", addon1Dir.path);
writeInstallRDFForExtension(addon2, gProfD, "addon1");
- restartManager();
+ await promiseRestartManager();
- AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
- "addon2@tests.mozilla.org"], function([a1, a2]) {
- Assert.equal(a1, null);
- Assert.notEqual(a2, null);
-
- executeSoon(do_test_finished);
- });
-}
+ let [a1, a2, a3] = await AddonManager.getAddonsByIDs(IDS);
+ equal(a1, null);
+ notEqual(a2, null);
+ equal(a3, null);
+});
--- a/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
+++ b/toolkit/mozapps/extensions/test/xpcshell/xpcshell.ini
@@ -75,17 +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_bug596607.js]
[test_cache_certdb.js]
run-if = addon_signing
[test_cacheflush.js]
[test_childprocess.js]
[test_compatoverrides.js]
[test_corrupt.js]
[test_corruptfile.js]
[test_crash_annotation_quoting.js]
@@ -188,16 +187,17 @@ skip-if = os == "android"
[test_provider_markSafe.js]
[test_provider_shutdown.js]
[test_provider_unsafe_access_shutdown.js]
[test_provider_unsafe_access_startup.js]
[test_proxies.js]
[test_proxy.js]
[test_registerchrome.js]
[test_registry.js]
+skip-if = os != 'win'
[test_reload.js]
# Bug 676992: test consistently hangs on Android
# There's a problem removing a temp file without manually clearing the cache on Windows
skip-if = os == "android" || os == "win"
tags = webextensions
[test_safemode.js]
[test_schema_change.js]
[test_seen.js]