From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../test/browser/browser_hiddenOneOffs_cleanup.js | 117 +++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 browser/components/search/test/browser/browser_hiddenOneOffs_cleanup.js (limited to 'browser/components/search/test/browser/browser_hiddenOneOffs_cleanup.js') diff --git a/browser/components/search/test/browser/browser_hiddenOneOffs_cleanup.js b/browser/components/search/test/browser/browser_hiddenOneOffs_cleanup.js new file mode 100644 index 0000000000..8be90b3288 --- /dev/null +++ b/browser/components/search/test/browser/browser_hiddenOneOffs_cleanup.js @@ -0,0 +1,117 @@ +/* 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/. */ +const testPref = "Foo,FooDupe"; + +registerCleanupFunction(() => { + Services.prefs.clearUserPref("browser.search.hiddenOneOffs"); +}); + +add_task(async function test_remove() { + await SearchTestUtils.promiseNewSearchEngine({ + url: getRootDirectory(gTestPath) + "testEngine_dupe.xml", + }); + await SearchTestUtils.promiseNewSearchEngine({ + url: getRootDirectory(gTestPath) + "testEngine.xml", + }); + Services.prefs.setCharPref("browser.search.hiddenOneOffs", testPref); + + info("Removing testEngine_dupe.xml"); + await Services.search.removeEngine( + Services.search.getEngineByName("FooDupe") + ); + + let hiddenOneOffs = Services.prefs + .getCharPref("browser.search.hiddenOneOffs") + .split(","); + + is( + hiddenOneOffs.length, + 1, + "hiddenOneOffs has the correct engine count post removal." + ); + is( + hiddenOneOffs.some(x => x == "FooDupe"), + false, + "Removed Engine is not in hiddenOneOffs after removal" + ); + is( + hiddenOneOffs.some(x => x == "Foo"), + true, + "Current hidden engine is not affected by removal." + ); + + info("Removing testEngine.xml"); + await Services.search.removeEngine(Services.search.getEngineByName("Foo")); + + is( + Services.prefs.getCharPref("browser.search.hiddenOneOffs"), + "", + "hiddenOneOffs is empty after removing all hidden engines." + ); +}); + +add_task(async function test_add() { + await SearchTestUtils.promiseNewSearchEngine({ + url: getRootDirectory(gTestPath) + "testEngine.xml", + }); + info("setting prefs to " + testPref); + Services.prefs.setCharPref("browser.search.hiddenOneOffs", testPref); + await SearchTestUtils.promiseNewSearchEngine({ + url: getRootDirectory(gTestPath) + "testEngine_dupe.xml", + }); + let hiddenOneOffs = Services.prefs + .getCharPref("browser.search.hiddenOneOffs") + .split(","); + + is( + hiddenOneOffs.length, + 1, + "hiddenOneOffs has the correct number of hidden engines present post add." + ); + is( + hiddenOneOffs.some(x => x == "FooDupe"), + false, + "Added engine is not present in hidden list." + ); + is( + hiddenOneOffs.some(x => x == "Foo"), + true, + "Adding an engine does not remove engines from hidden list." + ); +}); + +add_task(async function test_diacritics() { + const diacritic_engine = "Foo \u2661"; + let { Preferences } = ChromeUtils.importESModule( + "resource://gre/modules/Preferences.sys.mjs" + ); + + Preferences.set("browser.search.hiddenOneOffs", diacritic_engine); + await SearchTestUtils.promiseNewSearchEngine({ + url: getRootDirectory(gTestPath) + "testEngine_diacritics.xml", + }); + + let hiddenOneOffs = Preferences.get("browser.search.hiddenOneOffs").split( + "," + ); + is( + hiddenOneOffs.some(x => x == diacritic_engine), + false, + "Observer cleans up added hidden engines that include a diacritic." + ); + + Preferences.set("browser.search.hiddenOneOffs", diacritic_engine); + + info("Removing testEngine_diacritics.xml"); + await Services.search.removeEngine( + Services.search.getEngineByName(diacritic_engine) + ); + + hiddenOneOffs = Preferences.get("browser.search.hiddenOneOffs").split(","); + is( + hiddenOneOffs.some(x => x == diacritic_engine), + false, + "Observer cleans up removed hidden engines that include a diacritic." + ); +}); -- cgit v1.2.3