Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* 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],
["dom.security.https_first_schemeless", false],
],
});
await PlacesUtils.history.clear();
await PlacesTestUtils.addVisits([
{ uri: makeURI("http://example.com/foo") },
{ uri: makeURI("http://example.com/foo/bar") },
]);
let tab = await BrowserTestUtils.openNewForegroundTab(
gBrowser,
"about:blank"
);
registerCleanupFunction(async function () {
BrowserTestUtils.removeTab(tab);
await PlacesUtils.history.clear();
});
await UrlbarTestUtils.promiseAutocompleteResultPopup({
window,
value: "http://example.com",
});
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.untrimmedValue;
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(
editedValue,
gBrowser.selectedBrowser
);
info("Press return to load edited URL.");
await UrlbarTestUtils.promisePopupClose(window, () => {
EventUtils.synthesizeKey("KEY_Enter");
});
await docLoad;
});