From d8bbc7858622b6d9c278469aab701ca0b609cddf Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 15 May 2024 05:35:49 +0200 Subject: Merging upstream version 126.0. Signed-off-by: Daniel Baumann --- modules/libpref/test/unit/test_backupPrefFile.js | 46 ++++++++++++++++++++++++ modules/libpref/test/unit/xpcshell.toml | 2 ++ 2 files changed, 48 insertions(+) create mode 100644 modules/libpref/test/unit/test_backupPrefFile.js (limited to 'modules/libpref/test') diff --git a/modules/libpref/test/unit/test_backupPrefFile.js b/modules/libpref/test/unit/test_backupPrefFile.js new file mode 100644 index 0000000000..6624443e7c --- /dev/null +++ b/modules/libpref/test/unit/test_backupPrefFile.js @@ -0,0 +1,46 @@ +/* Any copyright is dedicated to the Public Domain. +http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +/** + * Tests that we can create a backup of the preferences state to + * a file asynchronously. + */ +add_task(async function test_backupPrefFile() { + // Create a backup of the preferences state to a file. + Services.prefs.setBoolPref("test.backup", true); + + let backupFilePath = PathUtils.join(PathUtils.tempDir, "prefs-backup.js"); + let backupFile = await IOUtils.getFile(backupFilePath); + await Services.prefs.backupPrefFile(backupFile); + + // Verify that the backup file was created and contains the expected content. + let backupContent = await IOUtils.read(backupFilePath, { encoding: "utf-8" }); + + let sawTestValue = false; + + // Now parse the backup file and verify that it contains the expected + // preference value. We'll not worry about any of the other preferences. + let observer = { + onStringPref() {}, + onIntPref() {}, + onBoolPref(kind, name, value, _isSticky, _isLocked) { + if (name == "test.backup" && value) { + sawTestValue = true; + } + }, + onError(message) { + Assert.ok(false, "Error while parsing backup file: " + message); + }, + }; + Services.prefs.parsePrefsFromBuffer(backupContent, observer); + + Assert.ok( + sawTestValue, + "The backup file contains the expected preference value." + ); + + // Clean up the backup file. + await IOUtils.remove(backupFilePath); +}); diff --git a/modules/libpref/test/unit/xpcshell.toml b/modules/libpref/test/unit/xpcshell.toml index 6f9440d609..03cf56d21a 100644 --- a/modules/libpref/test/unit/xpcshell.toml +++ b/modules/libpref/test/unit/xpcshell.toml @@ -5,6 +5,8 @@ support-files = [ "extdata/testExt.js", ] +["test_backupPrefFile.js"] + ["test_bug345529.js"] ["test_bug506224.js"] -- cgit v1.2.3