Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(472)

Side by Side Diff: LayoutTests/fast/forms/select/popup-menu-key-operations.html

Issue 736883002: Implement <select> Popup Menu using PagePopup (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(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>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698