Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test gets skipped with pattern: os == 'android'
- Manifest: toolkit/components/search/tests/xpcshell/xpcshell.toml
/* Any copyright is dedicated to the Public Domain.
/*
* Tests covering sending submission URLs for major engines
*/
const SUBMISSION_YES = [
["Google1 Test", "https://www.google.com/search", "q={searchTerms}"],
["Google2 Test", "https://www.google.co.uk/search", "q={searchTerms}"],
["Yahoo1 Test", "https://search.yahoo.com/search", "p={searchTerms}"],
["Yahoo2 Test", "https://uk.search.yahoo.com/search", "p={searchTerms}"],
["AOL1 Test", "https://search.aol.com/aol/search", "q={searchTerms}"],
["AOL2 Test", "https://search.aol.co.uk/aol/search", "q={searchTerms}"],
["Yandex1 Test", "https://yandex.ru/search/", "text={searchTerms}"],
["Yandex2 Test", "https://yandex.com/search/", "text={searchTerms}"],
["Ask1 Test", "https://www.ask.com/web", "q={searchTerms}"],
["Ask2 Test", "https://fr.ask.com/web", "q={searchTerms}"],
["Bing Test", "https://www.bing.com/search", "q={searchTerms}"],
[
"Startpage Test",
"query={searchTerms}",
],
["DuckDuckGo Test", "https://duckduckgo.com/", "q={searchTerms}"],
["Baidu Test", "https://www.baidu.com/s", "wd={searchTerms}"],
];
const SUBMISSION_NO = [
["Other1 Test", "https://example.com", "q={searchTerms}"],
["Other2 Test", "https://googlebutnotgoogle.com", "q={searchTerms}"],
];
add_setup(async function () {
SearchTestUtils.setRemoteSettingsConfig([
{
identifier: "engine",
},
},
]);
});
async function addAndMakeDefault(name, search_url, search_url_get_params) {
await SearchTestUtils.installSearchExtension({
name,
search_url,
search_url_get_params,
});
let engine = SearchService.getEngineByName(name);
await SearchService.setDefault(engine, SearchService.CHANGE_REASON.UNKNOWN);
return engine;
}
add_task(async function test_submission_url_matching() {
Assert.ok(!SearchService.isInitialized);
let engineInfo;
let engine;
for (let [name, searchURL, searchParams] of SUBMISSION_YES) {
engine = await addAndMakeDefault(name, searchURL, searchParams);
engineInfo = SearchService.getDefaultEngineInfo();
Assert.equal(
engineInfo.defaultSearchEngineData.submissionURL,
(searchURL + "?" + searchParams).replace("{searchTerms}", "")
);
await SearchService.removeEngine(engine);
}
for (let [name, searchURL, searchParams] of SUBMISSION_NO) {
engine = await addAndMakeDefault(name, searchURL, searchParams);
engineInfo = SearchService.getDefaultEngineInfo();
Assert.equal(engineInfo.defaultSearchEngineData.submissionURL, null);
await SearchService.removeEngine(engine);
}
});
add_task(async function test_submission_url_built_in() {
const engine = await SearchService.getEngineById("engine");
await SearchService.setDefault(engine, SearchService.CHANGE_REASON.UNKNOWN);
const engineInfo = SearchService.getDefaultEngineInfo();
Assert.equal(
engineInfo.defaultSearchEngineData.submissionURL,
"Should have given the submission url for a built-in engine."
);
});