132 lines
3.1 KiB
JavaScript
132 lines
3.1 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
// Tests that a delayed add-on manager start up does not affect the start up
|
|
// of the search service.
|
|
|
|
"use strict";
|
|
|
|
const CONFIG = [
|
|
{
|
|
webExtension: {
|
|
id: "engine@search.mozilla.org",
|
|
name: "Test search engine",
|
|
search_url: "https://www.google.com/search",
|
|
params: [
|
|
{
|
|
name: "q",
|
|
value: "{searchTerms}",
|
|
},
|
|
{
|
|
name: "channel",
|
|
condition: "purpose",
|
|
purpose: "contextmenu",
|
|
value: "rcs",
|
|
},
|
|
{
|
|
name: "channel",
|
|
condition: "purpose",
|
|
purpose: "keyword",
|
|
value: "fflb",
|
|
},
|
|
],
|
|
suggest_url:
|
|
"https://suggestqueries.google.com/complete/search?output=icecat&client=icecat&q={searchTerms}",
|
|
},
|
|
orderHint: 30,
|
|
appliesTo: [
|
|
{
|
|
included: { everywhere: true },
|
|
default: "yes",
|
|
},
|
|
],
|
|
},
|
|
];
|
|
|
|
const CONFIG_V2 = [
|
|
{
|
|
recordType: "engine",
|
|
identifier: "engine",
|
|
base: {
|
|
name: "Test search engine",
|
|
urls: {
|
|
search: {
|
|
base: "https://www.google.com/search",
|
|
params: [
|
|
{
|
|
name: "channel",
|
|
searchAccessPoint: {
|
|
addressbar: "fflb",
|
|
contextmenu: "rcs",
|
|
},
|
|
},
|
|
],
|
|
searchTermParamName: "q",
|
|
},
|
|
suggestions: {
|
|
base: "https://suggestqueries.google.com/complete/search?output=icecat&client=icecat",
|
|
searchTermParamName: "q",
|
|
},
|
|
},
|
|
},
|
|
variants: [
|
|
{
|
|
environment: { allRegionsAndLocales: true },
|
|
},
|
|
],
|
|
},
|
|
{
|
|
recordType: "defaultEngines",
|
|
globalDefault: "engine",
|
|
specificDefaults: [],
|
|
},
|
|
{
|
|
recordType: "engineOrders",
|
|
orders: [],
|
|
},
|
|
];
|
|
|
|
add_setup(() => {
|
|
do_get_profile();
|
|
Services.fog.initializeFOG();
|
|
});
|
|
|
|
add_task(async function test_initialization_delayed_addon_manager() {
|
|
let stub = await SearchTestUtils.useTestEngines(
|
|
"data",
|
|
null,
|
|
SearchUtils.newSearchConfigEnabled ? CONFIG_V2 : CONFIG
|
|
);
|
|
// Wait until the search service gets its configuration before starting
|
|
// to initialise the add-on manager. This simulates the add-on manager
|
|
// starting late which used to cause the search service to fail to load any
|
|
// engines.
|
|
stub.callsFake(() => {
|
|
Services.tm.dispatchToMainThread(() => {
|
|
AddonTestUtils.promiseStartupManager();
|
|
});
|
|
return SearchUtils.newSearchConfigEnabled ? CONFIG_V2 : CONFIG;
|
|
});
|
|
|
|
await Services.search.init();
|
|
|
|
Assert.equal(
|
|
Services.search.defaultEngine.name,
|
|
"Test search engine",
|
|
"Test engine shouldn't be the default anymore"
|
|
);
|
|
|
|
await assertGleanDefaultEngine({
|
|
normal: {
|
|
engineId: "engine",
|
|
displayName: "Test search engine",
|
|
loadPath: [
|
|
SearchUtils.newSearchConfigEnabled
|
|
? "[app]engine@search.mozilla.org"
|
|
: "[addon]engine@search.mozilla.org",
|
|
],
|
|
submissionUrl: "https://www.google.com/search?q=",
|
|
verified: "default",
|
|
},
|
|
});
|
|
});
|