diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /toolkit/components/backgroundtasks/tests/BackgroundTask_targeting.sys.mjs | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'toolkit/components/backgroundtasks/tests/BackgroundTask_targeting.sys.mjs')
-rw-r--r-- | toolkit/components/backgroundtasks/tests/BackgroundTask_targeting.sys.mjs | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/toolkit/components/backgroundtasks/tests/BackgroundTask_targeting.sys.mjs b/toolkit/components/backgroundtasks/tests/BackgroundTask_targeting.sys.mjs new file mode 100644 index 0000000000..fd47d18470 --- /dev/null +++ b/toolkit/components/backgroundtasks/tests/BackgroundTask_targeting.sys.mjs @@ -0,0 +1,49 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import { EXIT_CODE } from "resource://gre/modules/BackgroundTasksManager.sys.mjs"; + +import { ASRouterTargeting } from "resource:///modules/asrouter/ASRouterTargeting.sys.mjs"; + +// Background tasks are "live" with a temporary profile that doesn't map common +// network preferences to https://mochi.test in the way that regular testing +// profiles do. Therefore, certain targeting getters will fail due to non-local +// network connections. Exclude these. +const EXCLUDED_NAMES = [ + "region", // Queries Mozilla Location Services. + "needsUpdate", // Queries Balrog update server. +]; + +/** + * Return 0 (success) if all targeting getters succeed, 11 (failure) + * otherwise. + */ +export async function runBackgroundTask(commandLine) { + let exitCode = EXIT_CODE.SUCCESS; + + // Can't use `ASRouterTargeting.getEnvironmentSnapshot`, since that + // ignores errors, and this is testing that every getter succeeds. + let target = ASRouterTargeting.Environment; + let environment = {}; + for (let name of Object.keys(target)) { + if (EXCLUDED_NAMES.includes(name)) { + continue; + } + + try { + console.debug(`Fetching property ${name}`); + environment[name] = await target[name]; + } catch (e) { + exitCode = 11; + console.error(`Caught exception for property ${name}:`, e); + } + } + + console.log(`ASRouterTargeting.Environment:`, environment); + + console.error(`runBackgroundTask: exiting with status ${exitCode}`); + + return exitCode; +} |