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

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: Fixed tests for mac Created 5 years, 10 months 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 function openPickerErrorCallback() {
21 testFailed('picker didn\'t open')
22 finishJSTest();
23 }
24 openPicker(menu, test1, openPickerErrorCallback);
25
26 function test1() {
27 picker = window.internals.pagePopupWindow.global.picker;
28 shouldBeEqualToString('picker._selectElement.value', '1');
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('downArrow');
36 shouldBeEqualToString('picker._selectElement.value', '4');
37 shouldBeEqualToString('menuElement.value', 'bar');
38
39 eventSender.keyDown('upArrow');
40 shouldBeEqualToString('picker._selectElement.value', '1');
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('upArrow');
48 shouldBeEqualToString('picker._selectElement.value', '0');
49 shouldBeEqualToString('menuElement.value', 'bar');
50
51 eventSender.keyDown('\n');
52 shouldBeNull('window.internals.pagePopupWindow');
53 shouldBeEqualToString('menuElement.value', 'foo');
54
55 waitUntilClosing(function() {
56 openPicker(menu, test2, openPickerErrorCallback);
57 });
58 }
59
60 function test2() {
61 picker = window.internals.pagePopupWindow.global.picker;
62 shouldBeEqualToString('picker._selectElement.value', '0');
63
64 eventSender.keyDown('downArrow');
65 shouldBeEqualToString('picker._selectElement.value', '1');
66 shouldBeEqualToString('menuElement.value', 'foo');
67
68 // Escape should close the popup and select that keyboard selected item.
69 eventSender.keyDown('escape');
70 shouldBeNull('window.internals.pagePopupWindow');
71 shouldBeEqualToString('menuElement.value', 'bar');
72
73 waitUntilClosing(function() {
74 openPicker(menu, test3, openPickerErrorCallback);
75 });
76 }
77
78 function test3() {
79 picker = window.internals.pagePopupWindow.global.picker;
80 shouldBeEqualToString('picker._selectElement.value', '1');
81
82 eventSender.keyDown('g');
83 shouldBeEqualToString('picker._selectElement.value', '4');
84 shouldBeEqualToString('menuElement.value', 'bar');
85
86 // Escape should close the popup and select that keyboard selected item.
87 eventSender.keyDown('escape');
88 shouldBeNull('window.internals.pagePopupWindow');
89 shouldBeEqualToString('menuElement.value', 'garply');
90
91 waitUntilClosing(function() {
92 openPicker(menu, test4, openPickerErrorCallback);
93 });
94 }
95
96 function test4() {
97 picker = window.internals.pagePopupWindow.global.picker;
98 shouldBeEqualToString('picker._selectElement.value', '4');
99
100 hoverOverElement(picker._selectElement.children[0]);
101 shouldBeEqualToString('picker._selectElement.value', '0');
102 shouldBeEqualToString('menuElement.value', 'garply');
103
104 // Escape should close the popup. Simply hovering over an item should not se lect it.
105 eventSender.keyDown('escape');
106 shouldBeNull('window.internals.pagePopupWindow');
107 shouldBeEqualToString('menuElement.value', 'garply');
108
109 waitUntilClosing(function() {
110 openPicker(menu, test5, openPickerErrorCallback);
111 });
112 }
113
114 function test5() {
115 picker = window.internals.pagePopupWindow.global.picker;
116 shouldBeEqualToString('picker._selectElement.value', '4');
117
118 hoverOverElement(picker._selectElement.children[0]);
119 shouldBeEqualToString('picker._selectElement.value', '0');
120 shouldBeEqualToString('menuElement.value', 'garply');
121
122 eventSender.keyDown('leftArrow');
123 shouldBeEqualToString('picker._selectElement.value', '0');
124 shouldBeEqualToString('menuElement.value', 'garply');
125
126 // But if you press any key, the highlighted item should be selected.
127 eventSender.keyDown('escape');
128 shouldBeNull('window.internals.pagePopupWindow');
129 shouldBeEqualToString('menuElement.value', 'foo');
130
131 finishJSTest();
132 }
133 </script>
134 </body>
135 </html>
OLDNEW
« no previous file with comments | « LayoutTests/fast/forms/select/popup-menu-ax.html ('k') | LayoutTests/fast/forms/select/popup-menu-mouse-operations.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698