Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 /* vim:set ts=2 sw=2 sts=2 et: */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 const TEST_URI = "data:text/html;charset=utf-8,<p>bug 585991 - autocomplete popup test";
8 function test() {
9 addTab(TEST_URI);
10 browser.addEventListener("load", function onLoad() {
11 browser.removeEventListener("load", onLoad, true);
12 openConsole(null, consoleOpened);
13 }, true);
14 }
16 function consoleOpened(HUD) {
17 let items = [
18 {label: "item0", value: "value0"},
19 {label: "item1", value: "value1"},
20 {label: "item2", value: "value2"},
21 ];
23 let popup = HUD.jsterm.autocompletePopup;
25 ok(!popup.isOpen, "popup is not open");
27 popup._panel.addEventListener("popupshown", function() {
28 popup._panel.removeEventListener("popupshown", arguments.callee, false);
30 ok(popup.isOpen, "popup is open");
32 is(popup.itemCount, 0, "no items");
34 popup.setItems(items);
36 is(popup.itemCount, items.length, "items added");
38 let sameItems = popup.getItems();
39 is(sameItems.every(function(aItem, aIndex) {
40 return aItem === items[aIndex];
41 }), true, "getItems returns back the same items");
43 is(popup.selectedIndex, 2,
44 "Index of the first item from bottom is selected.");
45 is(popup.selectedItem, items[2], "First item from bottom is selected");
47 popup.selectedIndex = 1;
49 is(popup.selectedIndex, 1, "index 1 is selected");
50 is(popup.selectedItem, items[1], "item1 is selected");
52 popup.selectedItem = items[2];
54 is(popup.selectedIndex, 2, "index 2 is selected");
55 is(popup.selectedItem, items[2], "item2 is selected");
57 is(popup.selectPreviousItem(), items[1], "selectPreviousItem() works");
59 is(popup.selectedIndex, 1, "index 1 is selected");
60 is(popup.selectedItem, items[1], "item1 is selected");
62 is(popup.selectNextItem(), items[2], "selectPreviousItem() works");
64 is(popup.selectedIndex, 2, "index 2 is selected");
65 is(popup.selectedItem, items[2], "item2 is selected");
67 ok(popup.selectNextItem(), "selectPreviousItem() works");
69 is(popup.selectedIndex, 0, "index 0 is selected");
70 is(popup.selectedItem, items[0], "item0 is selected");
72 items.push({label: "label3", value: "value3"});
73 popup.appendItem(items[3]);
75 is(popup.itemCount, items.length, "item3 appended");
77 popup.selectedIndex = 3;
78 is(popup.selectedItem, items[3], "item3 is selected");
80 popup.removeItem(items[2]);
82 is(popup.selectedIndex, 2, "index2 is selected");
83 is(popup.selectedItem, items[3], "item3 is still selected");
84 is(popup.itemCount, items.length - 1, "item2 removed");
86 popup.clearItems();
87 is(popup.itemCount, 0, "items cleared");
89 popup.hidePopup();
90 finishTest();
91 }, false);
93 popup.openPopup();
94 }