OLD | NEW |
| (Empty) |
1 <!DOCTYPE html> | |
2 <html> | |
3 <head> | |
4 <script src="../../../resources/js-test.js"></script> | |
5 <script src="../resources/common.js"></script> | |
6 <script src="../resources/picker-common.js"></script> | |
7 </head> | |
8 <body> | |
9 <select id="menu"> | |
10 <option>foo</option> | |
11 <option selected>bar</option> | |
12 <option hidden>baz</option> | |
13 <optgroup label="qux"> | |
14 <option>garply</option> | |
15 </optgroup> | |
16 </select> | |
17 <script> | |
18 var menuElement = document.getElementById('menu'); | |
19 var picker = null; | |
20 openPicker(menuElement, test1); | |
21 | |
22 function test1() { | |
23 picker = window.internals.pagePopupWindow.global.picker; | |
24 shouldBeEqualToString('picker._selectElement.value', '1'); | |
25 shouldBeEqualToString('menuElement.value', 'bar'); | |
26 | |
27 eventSender.keyDown('downArrow'); | |
28 shouldBeEqualToString('picker._selectElement.value', '4'); | |
29 shouldBeEqualToString('menuElement.value', 'bar'); | |
30 | |
31 eventSender.keyDown('downArrow'); | |
32 shouldBeEqualToString('picker._selectElement.value', '4'); | |
33 shouldBeEqualToString('menuElement.value', 'bar'); | |
34 | |
35 eventSender.keyDown('upArrow'); | |
36 shouldBeEqualToString('picker._selectElement.value', '1'); | |
37 shouldBeEqualToString('menuElement.value', 'bar'); | |
38 | |
39 eventSender.keyDown('upArrow'); | |
40 shouldBeEqualToString('picker._selectElement.value', '0'); | |
41 shouldBeEqualToString('menuElement.value', 'bar'); | |
42 | |
43 eventSender.keyDown('upArrow'); | |
44 shouldBeEqualToString('picker._selectElement.value', '0'); | |
45 shouldBeEqualToString('menuElement.value', 'bar'); | |
46 | |
47 eventSender.keyDown('\n'); | |
48 shouldBeNull('window.internals.pagePopupWindow'); | |
49 shouldBeEqualToString('menuElement.value', 'foo'); | |
50 | |
51 waitUntilClosing(function() { | |
52 openPicker(menuElement, test2); | |
53 }); | |
54 } | |
55 | |
56 function test2() { | |
57 picker = window.internals.pagePopupWindow.global.picker; | |
58 shouldBeEqualToString('picker._selectElement.value', '0'); | |
59 | |
60 eventSender.keyDown('downArrow'); | |
61 shouldBeEqualToString('picker._selectElement.value', '1'); | |
62 shouldBeEqualToString('menuElement.value', 'foo'); | |
63 | |
64 // Escape should close the popup and select that keyboard selected item. | |
65 eventSender.keyDown('escape'); | |
66 shouldBeNull('window.internals.pagePopupWindow'); | |
67 shouldBeEqualToString('menuElement.value', 'bar'); | |
68 | |
69 waitUntilClosing(function() { | |
70 openPicker(menuElement, test3); | |
71 }); | |
72 } | |
73 | |
74 function test3() { | |
75 picker = window.internals.pagePopupWindow.global.picker; | |
76 shouldBeEqualToString('picker._selectElement.value', '1'); | |
77 | |
78 eventSender.keyDown('g'); | |
79 shouldBeEqualToString('picker._selectElement.value', '4'); | |
80 shouldBeEqualToString('menuElement.value', 'bar'); | |
81 | |
82 // Escape should close the popup and select that keyboard selected item. | |
83 eventSender.keyDown('escape'); | |
84 shouldBeNull('window.internals.pagePopupWindow'); | |
85 shouldBeEqualToString('menuElement.value', 'garply'); | |
86 | |
87 waitUntilClosing(function() { | |
88 openPicker(menuElement, test4); | |
89 }); | |
90 } | |
91 | |
92 function test4() { | |
93 picker = window.internals.pagePopupWindow.global.picker; | |
94 shouldBeEqualToString('picker._selectElement.value', '4'); | |
95 | |
96 hoverOverElement(picker._selectElement.children[0]); | |
97 shouldBeEqualToString('picker._selectElement.value', '0'); | |
98 shouldBeEqualToString('menuElement.value', 'garply'); | |
99 | |
100 // Escape should close the popup. Simply hovering over an item should not se
lect it. | |
101 eventSender.keyDown('escape'); | |
102 shouldBeNull('window.internals.pagePopupWindow'); | |
103 shouldBeEqualToString('menuElement.value', 'garply'); | |
104 | |
105 waitUntilClosing(function() { | |
106 openPicker(menuElement, test5); | |
107 }); | |
108 } | |
109 | |
110 function test5() { | |
111 picker = window.internals.pagePopupWindow.global.picker; | |
112 shouldBeEqualToString('picker._selectElement.value', '4'); | |
113 | |
114 hoverOverElement(picker._selectElement.children[0]); | |
115 shouldBeEqualToString('picker._selectElement.value', '0'); | |
116 shouldBeEqualToString('menuElement.value', 'garply'); | |
117 | |
118 eventSender.keyDown('leftArrow'); | |
119 shouldBeEqualToString('picker._selectElement.value', '0'); | |
120 shouldBeEqualToString('menuElement.value', 'garply'); | |
121 | |
122 // But if you press any key, the highlighted item should be selected. | |
123 eventSender.keyDown('escape'); | |
124 shouldBeNull('window.internals.pagePopupWindow'); | |
125 shouldBeEqualToString('menuElement.value', 'foo'); | |
126 | |
127 finishJSTest(); | |
128 } | |
129 </script> | |
130 </body> | |
131 </html> | |
OLD | NEW |