Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
/* Any copyright is dedicated to the Public Domain.
/**
* Tests config engines are marked as used when search mode is entered.
*/
"use strict";
ChromeUtils.defineESModuleGetters(this, {
ConfigSearchEngine:
"moz-src:///toolkit/components/search/ConfigSearchEngine.sys.mjs",
});
const CONFIG = [
{
recordType: "engine",
identifier: "Example",
base: {
name: "Example",
},
aliases: ["example"],
},
},
];
add_setup(async function setup() {
await SearchTestUtils.updateRemoteSettingsConfig(CONFIG);
});
add_task(async function test_engine_used_on_search_mode_entry() {
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
let engine = SearchService.getEngineByName("Example");
Assert.equal(
engine instanceof ConfigSearchEngine,
true,
`${engine.name} should be a config engine.`
);
Assert.equal(
engine.hasBeenUsed,
false,
`${engine.name} should not be marked as used before entering search mode.`
);
await UrlbarTestUtils.promiseAutocompleteResultPopup({
window,
value: engine.aliases[0],
});
// Pick the keyword offer result to enter search mode.
let searchPromise = UrlbarTestUtils.promiseSearchComplete(window);
EventUtils.synthesizeKey("KEY_Enter");
await searchPromise;
await UrlbarTestUtils.assertSearchMode(window, {
engineName: engine.name,
source: UrlbarShared.RESULT_SOURCE.SEARCH,
entry: "keywordoffer",
});
Assert.equal(
engine.hasBeenUsed,
true,
`${engine.name} should be marked as used after entering search mode.`
);
engine.clearUsage();
await UrlbarTestUtils.exitSearchMode(window);
BrowserTestUtils.removeTab(tab);
});
add_task(async function test_engine_already_used_on_search_mode_entry() {
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
let engine = SearchService.getEngineByName("Example");
engine.markAsUsed();
Assert.equal(
engine.hasBeenUsed,
true,
`${engine.name} should already be marked as used before entering search mode.`
);
await UrlbarTestUtils.promiseAutocompleteResultPopup({
window,
value: engine.aliases[0],
});
// Pick the keyword offer result to enter search mode.
let searchPromise = UrlbarTestUtils.promiseSearchComplete(window);
EventUtils.synthesizeKey("KEY_Enter");
await searchPromise;
await UrlbarTestUtils.assertSearchMode(window, {
engineName: engine.name,
source: UrlbarShared.RESULT_SOURCE.SEARCH,
entry: "keywordoffer",
});
Assert.equal(
engine.hasBeenUsed,
true,
`${engine.name} should remain marked as used after entering search mode again.`
);
engine.clearUsage();
await UrlbarTestUtils.exitSearchMode(window);
BrowserTestUtils.removeTab(tab);
});