Skip to content

Commit 9b40638

Browse files
committed
Bug 1870684 - Ensure test that are using custom engine configs and manifest data from data directory are passing for search-config-v2. r=Standard8,extension-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D201938
1 parent 1b8ba2d commit 9b40638

11 files changed

+1106
-90
lines changed

browser/components/extensions/test/xpcshell/test_ext_settings_overrides_search_mozParam.js

Lines changed: 117 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ const { NimbusFeatures } = ChromeUtils.importESModule(
1515
const { sinon } = ChromeUtils.importESModule(
1616
"resource://testing-common/Sinon.sys.mjs"
1717
);
18+
const { SearchUtils } = ChromeUtils.importESModule(
19+
"resource://gre/modules/SearchUtils.sys.mjs"
20+
);
1821

1922
AddonTestUtils.init(this);
2023
AddonTestUtils.overrideCertDB();
@@ -51,23 +54,118 @@ const params = [
5154
{ name: "prefval", condition: "pref", pref: "code" },
5255
];
5356

57+
const CONFIG = [
58+
{
59+
webExtension: {
60+
id: "test@search.mozilla.org",
61+
},
62+
appliesTo: [
63+
{
64+
included: { everywhere: true },
65+
default: "yes",
66+
},
67+
],
68+
},
69+
];
70+
const CONFIG_V2 = [
71+
{
72+
recordType: "engine",
73+
identifier: "test",
74+
base: {
75+
name: "MozParamsTest",
76+
urls: {
77+
search: {
78+
base: "https://example.com/",
79+
params: [
80+
{
81+
name: "test-0",
82+
searchAccessPoint: {
83+
contextmenu: "0",
84+
},
85+
},
86+
{
87+
name: "test-1",
88+
searchAccessPoint: {
89+
searchbar: "1",
90+
},
91+
},
92+
{
93+
name: "test-2",
94+
searchAccessPoint: {
95+
homepage: "2",
96+
},
97+
},
98+
{
99+
name: "test-3",
100+
searchAccessPoint: {
101+
addressbar: "3",
102+
},
103+
},
104+
{
105+
name: "test-4",
106+
searchAccessPoint: {
107+
newtab: "4",
108+
},
109+
},
110+
{
111+
name: "simple",
112+
value: "5",
113+
},
114+
{
115+
name: "term",
116+
value: "{searchTerms}",
117+
},
118+
{
119+
name: "lang",
120+
value: "{language}",
121+
},
122+
{
123+
name: "locale",
124+
value: "{moz:locale}",
125+
},
126+
{
127+
name: "prefval",
128+
experimentConfig: "code",
129+
},
130+
{
131+
name: "experimenter-1",
132+
experimentConfig: "nimbus-key-1",
133+
},
134+
{
135+
name: "experimenter-2",
136+
experimentConfig: "nimbus-key-2",
137+
},
138+
],
139+
searchTermParamName: "q",
140+
},
141+
},
142+
},
143+
variants: [
144+
{
145+
environment: { allRegionsAndLocales: true },
146+
},
147+
],
148+
},
149+
{
150+
recordType: "defaultEngines",
151+
globalDefault: "test",
152+
specificDefaults: [],
153+
},
154+
{
155+
recordType: "engineOrders",
156+
orders: [],
157+
},
158+
];
159+
54160
add_task(async function setup() {
55161
let readyStub = sinon.stub(NimbusFeatures.search, "ready").resolves();
56162
let updateStub = sinon.stub(NimbusFeatures.search, "onUpdate");
57163
await promiseStartupManager();
58-
await SearchTestUtils.useTestEngines("data", null, [
59-
{
60-
webExtension: {
61-
id: "test@search.mozilla.org",
62-
},
63-
appliesTo: [
64-
{
65-
included: { everywhere: true },
66-
default: "yes",
67-
},
68-
],
69-
},
70-
]);
164+
await SearchTestUtils.useTestEngines(
165+
"data",
166+
null,
167+
SearchUtils.newSearchConfigEnabled ? CONFIG_V2 : CONFIG
168+
);
71169
await Services.search.init();
72170
registerCleanupFunction(async () => {
73171
await promiseShutdownManager();
@@ -107,7 +205,9 @@ add_task(async function test_extension_setting_moz_params() {
107205
).uri.spec;
108206
equal(
109207
expectedURL,
110-
`https://example.com/?q=test&${p.name}=${p.value}&${paramStr}`,
208+
SearchUtils.newSearchConfigEnabled
209+
? `https://example.com/?${p.name}=${p.value}&${paramStr}&q=test`
210+
: `https://example.com/?q=test&${p.name}=${p.value}&${paramStr}`,
111211
"search url is expected"
112212
);
113213
}
@@ -180,7 +280,9 @@ add_task(async function test_nimbus_params() {
180280
).uri.spec;
181281
equal(
182282
expectedURL,
183-
`https://example.com/?q=test&${p.name}=${p.value}&${paramStr}`,
283+
SearchUtils.newSearchConfigEnabled
284+
? `https://example.com/?${p.name}=${p.value}&${paramStr}&q=test`
285+
: `https://example.com/?q=test&${p.name}=${p.value}&${paramStr}`,
184286
"search url is expected"
185287
);
186288
}

toolkit/components/search/SearchService.sys.mjs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,10 @@ export const NON_SPLIT_ENGINE_IDS = [
7676
"engine-resourceicon",
7777
"engine-resourceicon-gd",
7878
"engine-reordered",
79+
"engine-same-name",
80+
"engine-same-name-gd",
81+
"engine-purpose",
82+
"engine-fr",
7983
];
8084

8185
const TOPIC_LOCALES_CHANGE = "intl:app-locales-changed";

toolkit/components/search/tests/xpcshell/test_engine_ids.js

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,56 @@ const CONFIG = [
4747
},
4848
];
4949

50+
const CONFIG_V2 = [
51+
{
52+
recordType: "engine",
53+
identifier: "engine",
54+
base: {
55+
name: "Test search engine",
56+
urls: {
57+
search: {
58+
base: "https://www.google.com/search",
59+
params: [
60+
{
61+
name: "channel",
62+
searchAccessPoint: {
63+
addressbar: "fflb",
64+
contextmenu: "rcs",
65+
},
66+
},
67+
],
68+
searchTermParamName: "q",
69+
},
70+
suggestions: {
71+
base: "https://suggestqueries.google.com/complete/search?output=firefox&client=firefox&hl={moz:locale}",
72+
searchTermParamName: "q",
73+
},
74+
},
75+
},
76+
variants: [
77+
{
78+
environment: { allRegionsAndLocales: true },
79+
},
80+
],
81+
},
82+
{
83+
recordType: "defaultEngines",
84+
globalDefault: "engine",
85+
specificDefaults: [],
86+
},
87+
{
88+
recordType: "engineOrders",
89+
orders: [],
90+
},
91+
];
92+
5093
add_setup(async function () {
5194
useHttpServer("opensearch");
52-
await SearchTestUtils.useTestEngines("data", null, CONFIG);
95+
await SearchTestUtils.useTestEngines(
96+
"data",
97+
null,
98+
SearchUtils.newSearchConfigEnabled ? CONFIG_V2 : CONFIG
99+
);
53100
await AddonTestUtils.promiseStartupManager();
54101
await Services.search.init();
55102
});

toolkit/components/search/tests/xpcshell/test_initialization.js

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,60 @@ const CONFIG = [
4343
},
4444
];
4545

46+
const CONFIG_V2 = [
47+
{
48+
recordType: "engine",
49+
identifier: "engine",
50+
base: {
51+
name: "Test search engine",
52+
urls: {
53+
search: {
54+
base: "https://www.google.com/search",
55+
params: [
56+
{
57+
name: "channel",
58+
searchAccessPoint: {
59+
addressbar: "fflb",
60+
contextmenu: "rcs",
61+
},
62+
},
63+
],
64+
searchTermParamName: "q",
65+
},
66+
suggestions: {
67+
base: "https://suggestqueries.google.com/complete/search?output=firefox&client=firefox&hl={moz:locale}",
68+
searchTermParamName: "q",
69+
},
70+
},
71+
},
72+
variants: [
73+
{
74+
environment: { allRegionsAndLocales: true },
75+
},
76+
],
77+
},
78+
{
79+
recordType: "defaultEngines",
80+
globalDefault: "engine",
81+
specificDefaults: [],
82+
},
83+
{
84+
recordType: "engineOrders",
85+
orders: [],
86+
},
87+
];
88+
4689
add_setup(() => {
4790
do_get_profile();
4891
Services.fog.initializeFOG();
4992
});
5093

5194
add_task(async function test_initialization_delayed_addon_manager() {
52-
let stub = await SearchTestUtils.useTestEngines("data", null, CONFIG);
95+
let stub = await SearchTestUtils.useTestEngines(
96+
"data",
97+
null,
98+
SearchUtils.newSearchConfigEnabled ? CONFIG_V2 : CONFIG
99+
);
53100
// Wait until the search service gets its configuration before starting
54101
// to initialise the add-on manager. This simulates the add-on manager
55102
// starting late which used to cause the search service to fail to load any
@@ -58,7 +105,7 @@ add_task(async function test_initialization_delayed_addon_manager() {
58105
Services.tm.dispatchToMainThread(() => {
59106
AddonTestUtils.promiseStartupManager();
60107
});
61-
return CONFIG;
108+
return SearchUtils.newSearchConfigEnabled ? CONFIG_V2 : CONFIG;
62109
});
63110

64111
await Services.search.init();

0 commit comments

Comments
 (0)