browser/devtools/webconsole/test/browser_webconsole_bug_585991_autocomplete_popup.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:5f0a1d35ed27
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/. */
5
6 const TEST_URI = "data:text/html;charset=utf-8,<p>bug 585991 - autocomplete popup test";
7
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 }
15
16 function consoleOpened(HUD) {
17 let items = [
18 {label: "item0", value: "value0"},
19 {label: "item1", value: "value1"},
20 {label: "item2", value: "value2"},
21 ];
22
23 let popup = HUD.jsterm.autocompletePopup;
24
25 ok(!popup.isOpen, "popup is not open");
26
27 popup._panel.addEventListener("popupshown", function() {
28 popup._panel.removeEventListener("popupshown", arguments.callee, false);
29
30 ok(popup.isOpen, "popup is open");
31
32 is(popup.itemCount, 0, "no items");
33
34 popup.setItems(items);
35
36 is(popup.itemCount, items.length, "items added");
37
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");
42
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");
46
47 popup.selectedIndex = 1;
48
49 is(popup.selectedIndex, 1, "index 1 is selected");
50 is(popup.selectedItem, items[1], "item1 is selected");
51
52 popup.selectedItem = items[2];
53
54 is(popup.selectedIndex, 2, "index 2 is selected");
55 is(popup.selectedItem, items[2], "item2 is selected");
56
57 is(popup.selectPreviousItem(), items[1], "selectPreviousItem() works");
58
59 is(popup.selectedIndex, 1, "index 1 is selected");
60 is(popup.selectedItem, items[1], "item1 is selected");
61
62 is(popup.selectNextItem(), items[2], "selectPreviousItem() works");
63
64 is(popup.selectedIndex, 2, "index 2 is selected");
65 is(popup.selectedItem, items[2], "item2 is selected");
66
67 ok(popup.selectNextItem(), "selectPreviousItem() works");
68
69 is(popup.selectedIndex, 0, "index 0 is selected");
70 is(popup.selectedItem, items[0], "item0 is selected");
71
72 items.push({label: "label3", value: "value3"});
73 popup.appendItem(items[3]);
74
75 is(popup.itemCount, items.length, "item3 appended");
76
77 popup.selectedIndex = 3;
78 is(popup.selectedItem, items[3], "item3 is selected");
79
80 popup.removeItem(items[2]);
81
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");
85
86 popup.clearItems();
87 is(popup.itemCount, 0, "items cleared");
88
89 popup.hidePopup();
90 finishTest();
91 }, false);
92
93 popup.openPopup();
94 }
95

mercurial