103 lines
2.4 KiB
JavaScript
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"
|
|
);
|
|
});
|