97 lines
3.1 KiB
JavaScript
97 lines
3.1 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
const { SearchTestUtils } = ChromeUtils.importESModule(
|
|
"resource://testing-common/SearchTestUtils.sys.mjs"
|
|
);
|
|
|
|
const MAIN_PREF = "browser.search.suggest.enabled";
|
|
const URLBAR_PREF = "browser.urlbar.suggest.searches";
|
|
const TRENDING_PREF = "browser.urlbar.trending.featureGate";
|
|
|
|
const TRENDING_CHECKBOX_ID = "showTrendingSuggestions";
|
|
const SUGGESTIONED_CHECKBOX_ID = "suggestionsInSearchFieldsCheckbox";
|
|
|
|
SearchTestUtils.init(this);
|
|
|
|
add_setup(async function () {
|
|
await SpecialPowers.pushPrefEnv({
|
|
set: [
|
|
[MAIN_PREF, true],
|
|
[URLBAR_PREF, true],
|
|
[TRENDING_PREF, true],
|
|
],
|
|
});
|
|
|
|
await SearchTestUtils.installSearchExtension({
|
|
name: "engine1",
|
|
search_url: "https://example.com/engine1",
|
|
search_url_get_params: "search={searchTerms}",
|
|
});
|
|
const defaultEngine = await Services.search.getDefault();
|
|
|
|
registerCleanupFunction(async () => {
|
|
await Services.search.setDefault(
|
|
defaultEngine,
|
|
Ci.nsISearchService.CHANGE_REASON_UNKNOWN
|
|
);
|
|
});
|
|
});
|
|
|
|
add_task(async function testSuggestionsDisabled() {
|
|
await openPreferencesViaOpenPreferencesAPI("search", { leaveOpen: true });
|
|
let doc = gBrowser.selectedBrowser.contentDocument;
|
|
let trendingCheckbox = doc.getElementById(TRENDING_CHECKBOX_ID);
|
|
let suggestionsCheckbox = doc.getElementById(SUGGESTIONED_CHECKBOX_ID);
|
|
|
|
Assert.ok(trendingCheckbox.checked, "Checkbox should be visible and checked");
|
|
Assert.ok(!trendingCheckbox.disabled, "Checkbox should not be disabled");
|
|
|
|
// Disable search suggestions.
|
|
suggestionsCheckbox.checked = false;
|
|
suggestionsCheckbox.doCommand();
|
|
|
|
await BrowserTestUtils.waitForCondition(
|
|
() => trendingCheckbox.disabled,
|
|
"Trending checkbox should be disabled when search suggestions are disabled"
|
|
);
|
|
|
|
// Clean up.
|
|
Services.prefs.clearUserPref(MAIN_PREF);
|
|
gBrowser.removeCurrentTab();
|
|
});
|
|
|
|
add_task(async function testNonTrendingEngine() {
|
|
// Set engine that does not support trending suggestions as default.
|
|
const engine1 = Services.search.getEngineByName("engine1");
|
|
Services.search.setDefault(
|
|
engine1,
|
|
Ci.nsISearchService.CHANGE_REASON_UNKNOWN
|
|
);
|
|
await openPreferencesViaOpenPreferencesAPI("search", { leaveOpen: true });
|
|
let doc = gBrowser.selectedBrowser.contentDocument;
|
|
let trendingCheckbox = doc.getElementById(TRENDING_CHECKBOX_ID);
|
|
|
|
Assert.ok(
|
|
trendingCheckbox.disabled,
|
|
"Checkbox should be disabled when an engine that doesnt support trending suggestions is default"
|
|
);
|
|
gBrowser.removeCurrentTab();
|
|
});
|
|
|
|
add_task(async function testEnabledTrendingEngine() {
|
|
const engine1 = Services.search.getEngineByName("Google");
|
|
Services.search.setDefault(
|
|
engine1,
|
|
Ci.nsISearchService.CHANGE_REASON_UNKNOWN
|
|
);
|
|
await openPreferencesViaOpenPreferencesAPI("search", { leaveOpen: true });
|
|
let doc = gBrowser.selectedBrowser.contentDocument;
|
|
let trendingCheckbox = doc.getElementById(TRENDING_CHECKBOX_ID);
|
|
|
|
Assert.ok(
|
|
!trendingCheckbox.disabled,
|
|
"Checkbox should not be disabled when an engine that supports trending suggestions is default"
|
|
);
|
|
gBrowser.removeCurrentTab();
|
|
});
|