Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

"use strict";
add_setup(async function () {
useHttpServer();
await AddonTestUtils.promiseStartupManager();
await Services.search.init();
});
add_task(async function test_engine_set_alias() {
info("Set engine alias");
let extension = await SearchTestUtils.installSearchExtension(
{
name: "bacon",
keyword: "b",
},
{ skipUnload: true }
);
let engine1 = await Services.search.getEngineByName("bacon");
Assert.ok(engine1.aliases.includes("b"));
engine1.alias = "a";
Assert.equal(engine1.alias, "a");
await extension.unload();
});
add_task(async function test_engine_set_alias_with_left_space() {
info("Set engine alias with left space");
let extension = await SearchTestUtils.installSearchExtension(
{
name: "bacon",
keyword: " a",
},
{ skipUnload: true }
);
let engine2 = await Services.search.getEngineByName("bacon");
Assert.ok(engine2.aliases.includes("a"));
engine2.alias = " c";
Assert.equal(engine2.alias, "c");
await extension.unload();
});
add_task(async function test_engine_set_alias_with_right_space() {
info("Set engine alias with right space");
let extension = await SearchTestUtils.installSearchExtension(
{
name: "bacon",
keyword: "c ",
},
{ skipUnload: true }
);
let engine3 = await Services.search.getEngineByName("bacon");
Assert.ok(engine3.aliases.includes("c"));
engine3.alias = "o ";
Assert.equal(engine3.alias, "o");
await extension.unload();
});
add_task(async function test_engine_set_alias_with_right_left_space() {
info("Set engine alias with left and right space");
let extension = await SearchTestUtils.installSearchExtension(
{
name: "bacon",
keyword: " o ",
},
{ skipUnload: true }
);
let engine4 = await Services.search.getEngineByName("bacon");
Assert.ok(engine4.aliases.includes("o"));
engine4.alias = " n ";
Assert.equal(engine4.alias, "n");
await extension.unload();
});
add_task(async function test_engine_set_alias_with_space() {
info("Set engine alias with space");
let extension = await SearchTestUtils.installSearchExtension(
{
name: "bacon",
keyword: " ",
},
{ skipUnload: true }
);
let engine5 = await Services.search.getEngineByName("bacon");
Assert.equal(engine5.alias, "");
engine5.alias = "b";
Assert.equal(engine5.alias, "b");
engine5.alias = " ";
Assert.equal(engine5.alias, "");
await extension.unload();
});
add_task(async function test_engine_change_alias() {
let extension = await SearchTestUtils.installSearchExtension(
{
name: "bacon",
keyword: " o ",
},
{ skipUnload: true }
);
let engine6 = await Services.search.getEngineByName("bacon");
let promise = SearchTestUtils.promiseSearchNotification(
SearchUtils.MODIFIED_TYPE.CHANGED,
SearchUtils.TOPIC_ENGINE_MODIFIED
);
engine6.alias = "ba";
await promise;
Assert.equal(
engine6.alias,
"ba",
"Should have correctly notified and changed the alias."
);
let observed = false;
Services.obs.addObserver(function observer() {
observed = true;
}, SearchUtils.TOPIC_ENGINE_MODIFIED);
engine6.alias = "ba";
Assert.equal(engine6.alias, "ba", "Should have not changed the alias");
Assert.ok(!observed, "Should not have notified for no change in alias");
await extension.unload();
});