fune/browser/base/content/test/urlbar/browser_autocomplete_edit_completed.js

47 lines
1.4 KiB
JavaScript

add_task(async function() {
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 promiseAutocompleteResultPopup("http://example.com");
await waitForAutocompleteResultAt(1);
let popup = gURLBar.popup;
let list = popup.richlistbox;
let initialIndex = list.selectedIndex;
info("Key Down to select the next item.");
EventUtils.synthesizeKey("KEY_ArrowDown");
let nextIndex = initialIndex + 1;
let nextValue = gURLBar.controller.getFinalCompleteValueAt(nextIndex);
is(list.selectedIndex, nextIndex, "The next item is selected.");
is(gURLBar.value, nextValue, "The selected URL is completed.");
info("Press backspace");
EventUtils.synthesizeKey("KEY_Backspace");
await promiseSearchComplete();
let editedValue = gURLBar.textValue;
is(list.selectedIndex, initialIndex, "The initial index is selected again.");
isnot(editedValue, nextValue, "The URL has changed.");
let docLoad = waitForDocLoadAndStopIt("http://" + editedValue);
info("Press return to load edited URL.");
EventUtils.synthesizeKey("KEY_Enter");
await Promise.all([
promisePopupHidden(gURLBar.popup),
docLoad,
]);
});