summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/urlbar/browser_bug1070778.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/urlbar/browser_bug1070778.js')
-rw-r--r--browser/base/content/test/urlbar/browser_bug1070778.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/browser/base/content/test/urlbar/browser_bug1070778.js b/browser/base/content/test/urlbar/browser_bug1070778.js
new file mode 100644
index 000000000..ab88d04d8
--- /dev/null
+++ b/browser/base/content/test/urlbar/browser_bug1070778.js
@@ -0,0 +1,55 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+function is_selected(index) {
+ is(gURLBar.popup.richlistbox.selectedIndex, index, `Item ${index + 1} should be selected`);
+}
+
+add_task(function*() {
+ let bookmarks = [];
+ bookmarks.push((yield PlacesUtils.bookmarks
+ .insert({ parentGuid: PlacesUtils.bookmarks.unfiledGuid,
+ url: "http://example.com/?q=%s",
+ title: "test" })));
+ yield PlacesUtils.keywords.insert({ keyword: "keyword",
+ url: "http://example.com/?q=%s" });
+
+ // This item only needed so we can select the keyword item, select something
+ // else, then select the keyword item again.
+ bookmarks.push((yield PlacesUtils.bookmarks
+ .insert({ parentGuid: PlacesUtils.bookmarks.unfiledGuid,
+ url: "http://example.com/keyword",
+ title: "keyword abc" })));
+
+ registerCleanupFunction(function* () {
+ for (let bm of bookmarks) {
+ yield PlacesUtils.bookmarks.remove(bm);
+ }
+ });
+
+ let tab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, "about:mozilla");
+ yield promiseAutocompleteResultPopup("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.textValue, "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, PlacesUtils.mozActionURI("keyword", {url: "http://example.com/?q=ab", input: "keyword ab"}), "Expect correct url");
+
+ EventUtils.synthesizeKey("VK_ESCAPE", {});
+ yield promisePopupHidden(gURLBar.popup);
+ gBrowser.removeTab(tab);
+});