Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

/* Any copyright is dedicated to the Public Domain.
/**
* Tests that ensure application provided engines have all base fields set up
* correctly from the search configuration.
*/
"use strict";
let CONFIG = [
{
identifier: "testEngine",
recordType: "engine",
base: {
aliases: ["testEngine1", "testEngine2"],
charset: "EUC-JP",
classification: "general",
name: "testEngine name",
partnerCode: "pc",
urls: {
search: {
// Method defaults to GET
params: [
{ name: "partnerCode", value: "{partnerCode}" },
{ name: "starbase", value: "Regula I" },
{ name: "experiment", value: "Genesis" },
{
name: "accessPoint",
searchAccessPoint: {
addressbar: "addressbar",
contextmenu: "contextmenu",
homepage: "homepage",
newtab: "newtab",
searchbar: "searchbar",
},
},
],
searchTermParamName: "search",
},
suggestions: {
method: "POST",
searchTermParamName: "suggestions",
},
trending: {
searchTermParamName: "trending",
},
},
},
variants: [{ environment: { allRegionsAndLocales: true } }],
},
{
identifier: "testOtherValuesEngine",
recordType: "engine",
base: {
classification: "unknown",
name: "testOtherValuesEngine name",
urls: {
search: {
searchTermParamName: "search",
},
},
},
variants: [{ environment: { allRegionsAndLocales: true } }],
},
{
recordType: "defaultEngines",
globalDefault: "engine_no_initial_icon",
specificDefaults: [],
},
{
recordType: "engineOrders",
orders: [],
},
];
add_setup(async function () {
await SearchTestUtils.useTestEngines("simple-engines", null, CONFIG);
await Services.search.init();
});
add_task(async function test_engine_with_all_params_set() {
let engine = Services.search.getEngineById(
"testEngine@search.mozilla.orgdefault"
);
Assert.ok(engine, "Should have found the engine");
Assert.equal(
engine.name,
"testEngine name",
"Should have the correct engine name"
);
Assert.deepEqual(
engine.aliases,
["@testEngine1", "@testEngine2"],
"Should have the correct aliases"
);
Assert.ok(
engine.isGeneralPurposeEngine,
"Should be a general purpose engine"
);
Assert.equal(
engine.wrappedJSObject.queryCharset,
"EUC-JP",
"Should have the correct encoding"
);
let submission = engine.getSubmission("test");
Assert.equal(
submission.uri.spec,
"Should have the correct search URL"
);
Assert.ok(!submission.postData, "Should not have postData for a GET url");
let suggestSubmission = engine.getSubmission(
"test",
SearchUtils.URL_TYPE.SUGGEST_JSON
);
Assert.equal(
suggestSubmission.uri.spec,
"Should have the correct suggestion URL"
);
Assert.equal(
suggestSubmission.postData.data.data,
"suggestions=test",
"Should have the correct postData for a POST URL"
);
let trendingSubmission = engine.getSubmission(
"test",
SearchUtils.URL_TYPE.TRENDING_JSON
);
Assert.equal(
trendingSubmission.uri.spec,
);
Assert.ok(!submission.postData, "Should not have postData for a GET url");
});
add_task(async function test_engine_with_some_params_set() {
let engine = Services.search.getEngineById(
"testOtherValuesEngine@search.mozilla.orgdefault"
);
Assert.ok(engine, "Should have found the engine");
Assert.equal(
engine.name,
"testOtherValuesEngine name",
"Should have the correct engine name"
);
Assert.deepEqual(engine.aliases, [], "Should have no aliases");
Assert.ok(
!engine.isGeneralPurposeEngine,
"Should not be a general purpose engine"
);
Assert.equal(
engine.wrappedJSObject.queryCharset,
"UTF-8",
"Should default to UTF-8 charset"
);
Assert.equal(
engine.getSubmission("test").uri.spec,
"Should have the correct search URL"
);
Assert.equal(
engine.getSubmission("test", SearchUtils.URL_TYPE.SUGGEST_JSON),
null,
"Should not have a suggestions URL"
);
Assert.equal(
engine.getSubmission("test", SearchUtils.URL_TYPE.TRENDING_JSON),
null,
"Should not have a trending URL"
);
});