Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test gets skipped with pattern: os == 'linux' && os_version == '18.04' && asan OR os == 'linux' && os_version == '18.04' && tsan OR win11_2009 && asan
- Manifest: browser/components/urlbar/tests/browser/browser.toml
/* Any copyright is dedicated to the Public Domain.
/**
* Tests selecting a result, and editing the value of that autocompleted result.
*/
add_task(async function () {
SpecialPowers.pushPrefEnv({ set: [["browser.urlbar.trimHttps", false]] });
await PlacesUtils.history.clear();
await PlacesTestUtils.addVisits([
]);
let tab = await BrowserTestUtils.openNewForegroundTab(
gBrowser,
"about:blank"
);
registerCleanupFunction(async function () {
BrowserTestUtils.removeTab(tab);
await PlacesUtils.history.clear();
});
await UrlbarTestUtils.promiseAutocompleteResultPopup({
window,
});
const initialIndex = UrlbarTestUtils.getSelectedRowIndex(window);
info("Key Down to select the next item.");
EventUtils.synthesizeKey("KEY_ArrowDown");
let nextIndex = initialIndex + 1;
let nextResult = await UrlbarTestUtils.getDetailsOfResultAt(
window,
nextIndex
);
Assert.equal(
UrlbarTestUtils.getSelectedRowIndex(window),
nextIndex,
"Should have selected the next item"
);
Assert.equal(
gURLBar.untrimmedValue,
nextResult.url,
"Should have completed the URL"
);
info("Press backspace");
EventUtils.synthesizeKey("KEY_Backspace");
info("Backspaced value is " + gURLBar.value);
await UrlbarTestUtils.promiseSearchComplete(window);
let editedValue = gURLBar.value;
Assert.equal(
UrlbarTestUtils.getSelectedRowIndex(window),
initialIndex,
"Should have selected the initialIndex again"
);
Assert.notEqual(editedValue, nextResult.url, "The URL has changed.");
let docLoad = BrowserTestUtils.waitForDocLoadAndStopIt(
"http://" + editedValue,
gBrowser.selectedBrowser
);
info("Press return to load edited URL.");
await UrlbarTestUtils.promisePopupClose(window, () => {
EventUtils.synthesizeKey("KEY_Enter");
});
await docLoad;
});