Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test runs only with pattern: os != 'android'
- Manifest: browser/components/urlbar/tests/unit/xpcshell.toml
/* Any copyright is dedicated to the Public Domain.
"use strict";
const { UrlbarProviderSearchSuggestions } = ChromeUtils.importESModule(
"moz-src:///browser/components/urlbar/UrlbarProviderSearchSuggestions.sys.mjs"
);
const KEYWORD_ENABLED = "keyword.enabled";
const SUGGEST_ENABLED = "browser.search.suggest.enabled";
const URLBAR_SUGGEST = "browser.urlbar.suggest.searches";
add_setup(async function () {
await Services.search.init();
});
add_task(async function test_allowRemoteSuggestions() {
let suggestionsProvider = new UrlbarProviderSearchSuggestions();
let context = createContext("bacon", {
isPrivate: false,
sapName: "urlbar",
sources: [UrlbarUtils.RESULT_SOURCE.SEARCH],
});
Assert.ok(
suggestionsProvider._allowRemoteSuggestions(context),
"Remote suggestions should be enabled with keyword enabled"
);
info("Setting " + KEYWORD_ENABLED + "=false");
Services.prefs.setBoolPref(KEYWORD_ENABLED, false);
context = createContext("bacon", {
isPrivate: false,
sapName: "urlbar",
sources: [UrlbarUtils.RESULT_SOURCE.SEARCH],
});
Assert.ok(
!suggestionsProvider._allowRemoteSuggestions(context),
"Remote suggestions should be disabled with keyword disabled"
);
context = createContext("bacon", {
isPrivate: false,
sapName: "searchbar",
sources: [UrlbarUtils.RESULT_SOURCE.SEARCH],
});
Assert.ok(
suggestionsProvider._allowRemoteSuggestions(context),
"Remote suggestions should still be enabled on searchbar"
);
Services.prefs.clearUserPref(KEYWORD_ENABLED);
});
add_task(async function test_allowSuggestions() {
let suggestionsProvider = new UrlbarProviderSearchSuggestions();
let context = createContext("bacon eggs", {
isPrivate: false,
sapName: "urlbar",
sources: [UrlbarUtils.RESULT_SOURCE.SEARCH],
});
Assert.ok(
suggestionsProvider._allowSuggestions(context),
"Suggestions in the urlbar should be enabled by default"
);
context = createContext("bacon eggs", {
isPrivate: false,
sapName: "searchbar",
sources: [UrlbarUtils.RESULT_SOURCE.SEARCH],
});
Assert.ok(
suggestionsProvider._allowSuggestions(context),
"Suggestions in the searchbar should be enabled by default"
);
info("Setting " + URLBAR_SUGGEST + "=false");
Services.prefs.setBoolPref(URLBAR_SUGGEST, false);
context = createContext("bacon eggs", {
isPrivate: false,
sapName: "urlbar",
sources: [UrlbarUtils.RESULT_SOURCE.SEARCH],
});
Assert.ok(
!suggestionsProvider._allowSuggestions(context),
"Suggestions in the urlbar should be disabled"
);
context = createContext("bacon eggs", {
isPrivate: false,
sapName: "searchbar",
sources: [UrlbarUtils.RESULT_SOURCE.SEARCH],
});
Assert.ok(
suggestionsProvider._allowSuggestions(context),
"Suggestions in the searchbar should still be enabled"
);
info("Setting " + SUGGEST_ENABLED + "=false");
Services.prefs.setBoolPref(SUGGEST_ENABLED, false);
context = createContext("bacon eggs", {
isPrivate: false,
sapName: "urlbar",
sources: [UrlbarUtils.RESULT_SOURCE.SEARCH],
});
Assert.ok(
!suggestionsProvider._allowSuggestions(context),
"Suggestions in the urlbar should be disabled"
);
context = createContext("bacon eggs", {
isPrivate: false,
sapName: "searchbar",
sources: [UrlbarUtils.RESULT_SOURCE.SEARCH],
});
Assert.ok(
!suggestionsProvider._allowSuggestions(context),
"Suggestions in the urlbar should be disabled"
);
Services.prefs.clearUserPref(SUGGEST_ENABLED);
Services.prefs.clearUserPref(URLBAR_SUGGEST);
});