commit 46b34254a2dfc01e2f5de5954066ddf1094a1811
parent 30e0438d2ce8fdd56852a2a1c40518a95a8b3199
Author: Luca Greco <lgreco@mozilla.com>
Date: Thu, 13 Nov 2025 20:34:09 +0000
Bug 1999951 - Fix frequent failures hit by test_ext_networkStatus.js xpcshell test while xpcshell tests are executed in parallel. r=willdurand
Differential Revision: https://phabricator.services.mozilla.com/D272443
Diffstat:
1 file changed, 18 insertions(+), 6 deletions(-)
diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_networkStatus.js b/toolkit/components/extensions/test/xpcshell/test_ext_networkStatus.js
@@ -5,6 +5,12 @@ const Cm = Components.manager;
const uuidGenerator = Services.uuid;
AddonTestUtils.init(this);
+AddonTestUtils.createAppInfo(
+ "xpcshell@tests.mozilla.org",
+ "XPCShell",
+ "1",
+ "42"
+);
var mockNetworkStatusService = {
contractId: "@mozilla.org/network/network-link-service;1",
@@ -97,6 +103,10 @@ var mockNetworkStatusService = {
},
};
+add_setup(async () => {
+ await AddonTestUtils.promiseStartupManager();
+});
+
// nsINetworkLinkService is not directly testable. With the mock service above,
// we just exercise a couple small things here to validate the api works somewhat.
add_task(async function test_networkStatus() {
@@ -174,9 +184,7 @@ add_task(
pref_set: [["extensions.experiments.enabled", false]],
},
async function test_networkStatus_permission() {
- let extension = ExtensionTestUtils.loadExtension({
- temporarilyInstalled: true,
- isPrivileged: false,
+ let xpiFile = AddonTestUtils.createTempWebExtensionFile({
manifest: {
browser_specific_settings: {
gecko: { id: "networkstatus-permission@tests.mozilla.org" },
@@ -186,10 +194,13 @@ add_task(
});
ExtensionTestUtils.failOnSchemaWarnings(false);
let { messages } = await promiseConsoleOutput(async () => {
+ const { AddonManager } = ChromeUtils.importESModule(
+ "resource://gre/modules/AddonManager.sys.mjs"
+ );
await Assert.rejects(
- extension.startup(),
- /Using the privileged permission/,
- "Startup failed with privileged permission"
+ AddonManager.installTemporaryAddon(xpiFile),
+ /Extension is invalid/,
+ "Install failed with privileged permission"
);
});
ExtensionTestUtils.failOnSchemaWarnings(true);
@@ -205,5 +216,6 @@ add_task(
},
true
);
+ xpiFile.remove(true);
}
);