Move parseFontFaceDescriptor to CSSPropertyParser.cpp
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / fast / forms / select / popup-menu-key-operations.html
blobdc158432e42cc60171a6c5870e785eb25093a4f3
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 menu = document.getElementById('menu');
19 var picker = null;
20 function openPickerErrorCallback() {
21 testFailed('picker didn\'t open')
22 finishJSTest();
24 openPicker(menu, test1, openPickerErrorCallback);
26 function test1() {
27 picker = window.internals.pagePopupWindow.global.picker;
28 shouldBeEqualToString('picker._selectElement.value', '1');
29 shouldBeEqualToString('menu.value', 'bar');
30 shouldBeEqualToString('internals.selectMenuListText(menu)', 'bar');
32 eventSender.keyDown('downArrow');
33 shouldBeEqualToString('picker._selectElement.value', '4');
34 shouldBeEqualToString('menu.value', 'bar');
35 shouldBeEqualToString('internals.selectMenuListText(menu)', 'garply');
37 eventSender.keyDown('downArrow');
38 shouldBeEqualToString('picker._selectElement.value', '4');
39 shouldBeEqualToString('menu.value', 'bar');
40 shouldBeEqualToString('internals.selectMenuListText(menu)', 'garply');
42 eventSender.keyDown('upArrow');
43 shouldBeEqualToString('picker._selectElement.value', '1');
44 shouldBeEqualToString('menu.value', 'bar');
45 shouldBeEqualToString('internals.selectMenuListText(menu)', 'bar');
47 eventSender.keyDown('upArrow');
48 shouldBeEqualToString('picker._selectElement.value', '0');
49 shouldBeEqualToString('menu.value', 'bar');
50 shouldBeEqualToString('internals.selectMenuListText(menu)', 'foo');
52 eventSender.keyDown('upArrow');
53 shouldBeEqualToString('picker._selectElement.value', '0');
54 shouldBeEqualToString('menu.value', 'bar');
55 shouldBeEqualToString('internals.selectMenuListText(menu)', 'foo');
57 eventSender.keyDown('\n');
58 shouldBeNull('window.internals.pagePopupWindow');
59 shouldBeEqualToString('menu.value', 'foo');
60 shouldBeEqualToString('internals.selectMenuListText(menu)', 'foo');
62 waitUntilClosing(function() {
63 openPicker(menu, test2, openPickerErrorCallback);
64 });
67 function test2() {
68 picker = window.internals.pagePopupWindow.global.picker;
69 shouldBeEqualToString('picker._selectElement.value', '0');
70 shouldBeEqualToString('internals.selectMenuListText(menu)', 'foo');
72 eventSender.keyDown('downArrow');
73 shouldBeEqualToString('picker._selectElement.value', '1');
74 shouldBeEqualToString('menu.value', 'foo');
75 shouldBeEqualToString('internals.selectMenuListText(menu)', 'bar');
77 // Escape should close the popup and select that keyboard selected item.
78 eventSender.keyDown('escape');
79 shouldBeNull('window.internals.pagePopupWindow');
80 shouldBeEqualToString('menu.value', 'bar');
81 shouldBeEqualToString('internals.selectMenuListText(menu)', 'bar');
83 waitUntilClosing(function() {
84 openPicker(menu, test3, openPickerErrorCallback);
85 });
88 function test3() {
89 picker = window.internals.pagePopupWindow.global.picker;
90 shouldBeEqualToString('picker._selectElement.value', '1');
91 shouldBeEqualToString('internals.selectMenuListText(menu)', 'bar');
93 eventSender.keyDown('g');
94 shouldBeEqualToString('picker._selectElement.value', '4');
95 shouldBeEqualToString('menu.value', 'bar');
96 shouldBeEqualToString('internals.selectMenuListText(menu)', 'garply');
98 // Escape should close the popup and select that keyboard selected item.
99 eventSender.keyDown('escape');
100 shouldBeNull('window.internals.pagePopupWindow');
101 shouldBeEqualToString('menu.value', 'garply');
102 shouldBeEqualToString('internals.selectMenuListText(menu)', 'garply');
104 waitUntilClosing(function() {
105 openPicker(menu, test4, openPickerErrorCallback);
109 function test4() {
110 picker = window.internals.pagePopupWindow.global.picker;
111 shouldBeEqualToString('picker._selectElement.value', '4');
112 shouldBeEqualToString('internals.selectMenuListText(menu)', 'garply');
114 hoverOverElement(picker._selectElement.children[0]);
115 shouldBeEqualToString('picker._selectElement.value', '0');
116 shouldBeEqualToString('menu.value', 'garply');
117 shouldBeEqualToString('internals.selectMenuListText(menu)', 'garply');
119 // Escape should close the popup. Simply hovering over an item should not select it.
120 eventSender.keyDown('escape');
121 shouldBeNull('window.internals.pagePopupWindow');
122 shouldBeEqualToString('menu.value', 'garply');
123 shouldBeEqualToString('internals.selectMenuListText(menu)', 'garply');
125 waitUntilClosing(function() {
126 openPicker(menu, test5, openPickerErrorCallback);
130 function test5() {
131 picker = window.internals.pagePopupWindow.global.picker;
132 shouldBeEqualToString('picker._selectElement.value', '4');
133 shouldBeEqualToString('internals.selectMenuListText(menu)', 'garply');
135 hoverOverElement(picker._selectElement.children[0]);
136 shouldBeEqualToString('picker._selectElement.value', '0');
137 shouldBeEqualToString('menu.value', 'garply');
138 shouldBeEqualToString('internals.selectMenuListText(menu)', 'garply');
140 // leftArrow doesn't change the selection in the popup. So,
141 // selectMenuListText won't change.
142 eventSender.keyDown('leftArrow');
143 shouldBeEqualToString('picker._selectElement.value', '0');
144 shouldBeEqualToString('menu.value', 'garply');
145 shouldBeEqualToString('internals.selectMenuListText(menu)', 'garply');
147 eventSender.keyDown('escape');
148 shouldBeNull('window.internals.pagePopupWindow');
149 shouldBeEqualToString('menu.value', 'garply');
150 shouldBeEqualToString('internals.selectMenuListText(menu)', 'garply');
151 menu.selectedIndex = 0;
153 waitUntilClosing(function() {
154 openPicker(menu, test6, openPickerErrorCallback);
158 function test6() {
159 picker = window.internals.pagePopupWindow.global.picker;
160 shouldBeEqualToString('picker._selectElement.value', '0');
161 shouldBeEqualToString('internals.selectMenuListText(menu)', 'foo');
163 eventSender.keyDown('downArrow');
164 shouldBeEqualToString('picker._selectElement.value', '1');
165 shouldBeEqualToString('menu.value', 'foo');
166 shouldBeEqualToString('internals.selectMenuListText(menu)', 'bar');
168 clickElement(picker._selectElement.children[0]);
169 shouldBeNull('window.internals.pagePopupWindow');
170 shouldBeEqualToString('menu.value', 'foo');
171 shouldBeEqualToString('internals.selectMenuListText(menu)', 'foo');
173 finishJSTest();
175 </script>
176 </body>
177 </html>