Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- Manifest: browser/components/urlbar/tests/browser-UrlbarInput/browser-nova.toml includes browser/components/urlbar/tests/browser-UrlbarInput/browser.toml
- Manifest: browser/components/urlbar/tests/browser-UrlbarInput/browser-proton.toml includes browser/components/urlbar/tests/browser-UrlbarInput/browser.toml
/* Any copyright is dedicated to the Public Domain.
*/
"use strict";
const SLOW_PAGE =
add_setup(async function () {
await PlacesUtils.history.clear();
await SpecialPowers.pushPrefEnv({
set: [
["browser.urlbar.autoFill", false],
["browser.urlbar.suggest.searches", false],
],
});
});
add_task(async function test_typed_then_selected() {
// Setup a history to pick up as suggestion.
await PlacesTestUtils.addVisits(suggestionURL);
await PlacesFrecencyRecalculator.recalculateAnyOutdatedFrecencies();
// Load slow page.
let onLoad = BrowserTestUtils.browserLoaded(
gBrowser.selectedBrowser,
false,
SLOW_PAGE
);
BrowserTestUtils.startLoadingURIString(gBrowser.selectedBrowser, SLOW_PAGE);
// Select a history suggestion before loading.
await UrlbarTestUtils.promiseAutocompleteResultPopup({
window,
value: "exam",
fireInputEvent: true,
});
EventUtils.synthesizeKey("KEY_ArrowDown");
Assert.equal(gURLBar.untrimmedValue, suggestionURL);
// Wait for the slow page.
await onLoad;
Assert.equal(
gURLBar.untrimmedValue,
suggestionURL,
"Input keeps the selected suggestion after the load finished"
);
// Pick the suggestion.
let onPick = BrowserTestUtils.browserLoaded(
gBrowser.selectedBrowser,
false,
suggestionURL
);
EventUtils.synthesizeKey("KEY_Enter");
await onPick;
Assert.equal(
gBrowser.selectedBrowser.currentURI.spec,
suggestionURL,
"Loaded expected suggestion"
);
await PlacesUtils.history.clear();
});
add_task(async function test_selected_without_typing() {
// Setup a top site to pick up as suggestion.
// Visit it enough times to make it a top site.
for (let i = 0; i < 5; i++) {
await PlacesTestUtils.addVisits(suggestionURL);
}
await PlacesFrecencyRecalculator.recalculateAnyOutdatedFrecencies();
await updateTopSites(sites => sites?.[0]?.url == suggestionURL);
// Load slow page.
let onLoad = BrowserTestUtils.browserLoaded(
gBrowser.selectedBrowser,
false,
SLOW_PAGE
);
BrowserTestUtils.startLoadingURIString(gBrowser.selectedBrowser, SLOW_PAGE);
// Select a top site without typing.
await UrlbarTestUtils.promiseAutocompleteResultPopup({
window,
value: "",
});
EventUtils.synthesizeKey("KEY_ArrowDown");
Assert.equal(gURLBar.untrimmedValue, suggestionURL);
// Wait for the slow page.
await onLoad;
Assert.equal(
gURLBar.untrimmedValue,
suggestionURL,
"Input keeps the selected top site after the load finished"
);
// Pick the top site.
let onPick = BrowserTestUtils.browserLoaded(
gBrowser.selectedBrowser,
false,
suggestionURL
);
EventUtils.synthesizeKey("KEY_Enter");
await onPick;
Assert.equal(
gBrowser.selectedBrowser.currentURI.spec,
suggestionURL,
"Loaded expected top site"
);
await PlacesUtils.history.clear();
});