summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/extensions/test/xpcshell/head_amremotesettings.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /toolkit/mozapps/extensions/test/xpcshell/head_amremotesettings.js
parentInitial commit. (diff)
downloadthunderbird-upstream.tar.xz
thunderbird-upstream.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'toolkit/mozapps/extensions/test/xpcshell/head_amremotesettings.js')
-rw-r--r--toolkit/mozapps/extensions/test/xpcshell/head_amremotesettings.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/toolkit/mozapps/extensions/test/xpcshell/head_amremotesettings.js b/toolkit/mozapps/extensions/test/xpcshell/head_amremotesettings.js
new file mode 100644
index 0000000000..36741736fa
--- /dev/null
+++ b/toolkit/mozapps/extensions/test/xpcshell/head_amremotesettings.js
@@ -0,0 +1,31 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+ChromeUtils.defineESModuleGetters(this, {
+ RemoteSettings: "resource://services-settings/remote-settings.sys.mjs",
+});
+
+async function setAndEmitFakeRemoteSettingsData(
+ data,
+ expectClientInitialized = true
+) {
+ const { AMRemoteSettings } = ChromeUtils.importESModule(
+ "resource://gre/modules/AddonManager.sys.mjs"
+ );
+ let client;
+ if (expectClientInitialized) {
+ ok(AMRemoteSettings.client, "Got a remote settings client");
+ ok(AMRemoteSettings.onSync, "Got a remote settings 'sync' event handler");
+ client = AMRemoteSettings.client;
+ } else {
+ // No client is expected to exist, and so we create one to inject the expected data
+ // into the RemoteSettings db.
+ client = new RemoteSettings(AMRemoteSettings.RS_COLLECTION);
+ }
+
+ await client.db.clear();
+ if (data.length) {
+ await client.db.importChanges({}, Date.now(), data);
+ }
+ await client.emit("sync", { data: {} });
+}