mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-12 06:08:24 +02:00
64 lines
2.4 KiB
JavaScript
64 lines
2.4 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
function* promiseAutoComplete(inputText) {
|
|
gURLBar.focus();
|
|
gURLBar.value = inputText.slice(0, -1);
|
|
EventUtils.synthesizeKey(inputText.slice(-1) , {});
|
|
yield promiseSearchComplete();
|
|
}
|
|
|
|
function is_selected(index) {
|
|
is(gURLBar.popup.richlistbox.selectedIndex, index, `Item ${index + 1} should be selected`);
|
|
}
|
|
|
|
add_task(function*() {
|
|
// This test is only relevant if UnifiedComplete is enabled.
|
|
if (!Services.prefs.getBoolPref("browser.urlbar.unifiedcomplete")) {
|
|
todo(false, "Stop supporting old autocomplete components.");
|
|
return;
|
|
}
|
|
|
|
registerCleanupFunction(() => {
|
|
PlacesUtils.bookmarks.removeFolderChildren(PlacesUtils.unfiledBookmarksFolderId);
|
|
});
|
|
|
|
let itemId =
|
|
PlacesUtils.bookmarks.insertBookmark(PlacesUtils.unfiledBookmarksFolderId,
|
|
NetUtil.newURI("http://example.com/?q=%s"),
|
|
PlacesUtils.bookmarks.DEFAULT_INDEX,
|
|
"test");
|
|
PlacesUtils.bookmarks.setKeywordForBookmark(itemId, "keyword");
|
|
|
|
// This item only needed so we can select the keyword item, select something
|
|
// else, then select the keyword item again.
|
|
itemId =
|
|
PlacesUtils.bookmarks.insertBookmark(PlacesUtils.unfiledBookmarksFolderId,
|
|
NetUtil.newURI("http://example.com/keyword"),
|
|
PlacesUtils.bookmarks.DEFAULT_INDEX,
|
|
"keyword abc");
|
|
|
|
yield promiseAutoComplete("keyword a");
|
|
|
|
// First item should already be selected
|
|
is_selected(0);
|
|
// Select next one (important!)
|
|
EventUtils.synthesizeKey("VK_DOWN", {});
|
|
is_selected(1);
|
|
// Re-select keyword item
|
|
EventUtils.synthesizeKey("VK_UP", {});
|
|
is_selected(0);
|
|
|
|
EventUtils.synthesizeKey("b", {});
|
|
yield promiseSearchComplete();
|
|
|
|
is(gURLBar.value, "keyword ab", "urlbar should have expected input");
|
|
|
|
let result = gURLBar.popup.richlistbox.firstChild;
|
|
isnot(result, null, "Should have first item");
|
|
let uri = NetUtil.newURI(result.getAttribute("url"));
|
|
is(uri.spec, makeActionURI("keyword", {url: "http://example.com/?q=ab", input: "keyword ab"}).spec, "Expect correct url");
|
|
|
|
EventUtils.synthesizeKey("VK_ESCAPE", {});
|
|
yield promisePopupHidden(gURLBar.popup);
|
|
});
|