1
0
Fork 0
firefox/toolkit/components/search/tests/xpcshell/test_userInstalledAppEngine.js
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

103 lines
2.4 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
/*
* Tests that configuration provided engines installed by the user
* are installed and persisted correctly.
*/
"use strict";
const CONFIG = [
{
recordType: "engine",
identifier: "default",
base: {
name: "Default Engine",
urls: {
search: {
base: "https://example.org",
searchTermParamName: "q",
},
},
},
variants: [
{
environment: { allRegionsAndLocales: true },
},
],
},
{
recordType: "engine",
identifier: "additional",
base: {
name: "Additional Engine",
urls: {
search: {
base: "https://example.net",
searchTermParamName: "q",
},
},
},
variants: [
{
environment: { locales: ["de"] },
},
],
},
{
recordType: "defaultEngines",
globalDefault: "default",
specificDefaults: [],
},
{
recordType: "engineOrders",
orders: [],
},
];
add_setup(async function () {
SearchTestUtils.updateRemoteSettingsConfig(CONFIG);
await Services.search.init();
});
add_task(async () => {
let initialEngines = await Services.search.getVisibleEngines();
Assert.ok(initialEngines.length, "There are initial engines installed");
let engine =
await Services.search.findContextualSearchEngineByHost("example.net");
let settingsFileWritten = promiseAfterSettings();
await Services.search.addSearchEngine(engine);
await settingsFileWritten;
let newEngines = await Services.search.getVisibleEngines();
Assert.ok(
newEngines.length > initialEngines.length,
"New engine is installed"
);
let updatedName = "Updated Additional Engine";
CONFIG[1].base.name = updatedName;
await SearchTestUtils.updateRemoteSettingsConfig(CONFIG);
Assert.ok(
(await Services.search.getVisibleEngines()).length > initialEngines.length,
"Engine is persisted after reload"
);
Assert.ok(
await Services.search.getEngineByName(updatedName),
"The engines details are updated when configuration changes"
);
settingsFileWritten = promiseAfterSettings();
await Services.search.wrappedJSObject.reset();
await Services.search.init(true);
await settingsFileWritten;
Assert.ok(
(await Services.search.getVisibleEngines()).length > initialEngines.length,
"Engine is persisted after restart"
);
});