OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <script src="../../../resources/js-test.js"></script> | 4 <script src="../../../resources/js-test.js"></script> |
5 </head> | 5 </head> |
6 <body> | 6 <body> |
7 <p id="description"></p> | 7 <p id="description"></p> |
8 <p> | 8 <p> |
9 Please run this with DumpRenderTree. | 9 Please run this with DumpRenderTree. |
10 </p> | 10 </p> |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 beginTest('Digit keys starting with zero'); | 71 beginTest('Digit keys starting with zero'); |
72 keyDown('0'); // -> [00]:-- -- | 72 keyDown('0'); // -> [00]:-- -- |
73 keyDown('2'); // -> 02:[--] -- | 73 keyDown('2'); // -> 02:[--] -- |
74 keyDown('0'); // -> 02:[00] -- | 74 keyDown('0'); // -> 02:[00] -- |
75 keyDown('3'); // -> 02:03 [--] | 75 keyDown('3'); // -> 02:03 [--] |
76 keyDown('P'); // -> 02:03 [PM] | 76 keyDown('P'); // -> 02:03 [PM] |
77 shouldBeEqualToString('input.value', '14:03'); | 77 shouldBeEqualToString('input.value', '14:03'); |
78 | 78 |
79 beginTest('Digit keys and backspace key','01:01'); | 79 beginTest('Digit keys and backspace key','01:01'); |
80 keyDown('0'); // -> [00]:-- -- | 80 keyDown('0'); // -> [00]:-- -- |
81 keyDown('\b'); // -> [--]:-- -- | 81 keyDown('Backspace'); // -> [--]:-- -- |
82 keyDown('5'); // -> 05:[--] -- | 82 keyDown('5'); // -> 05:[--] -- |
83 keyDown('6'); // -> 05:06 [--] | 83 keyDown('6'); // -> 05:06 [--] |
84 keyDown('\b'); // -> 05:06 [--] | 84 keyDown('Backspace'); // -> 05:06 [--] |
85 keyDown('P'); // -> 05:06 [PM] | 85 keyDown('P'); // -> 05:06 [PM] |
86 shouldBeEqualToString('input.value', '17:06'); | 86 shouldBeEqualToString('input.value', '17:06'); |
87 | 87 |
88 beginTest('Left/Right keys', '01:24'); | 88 beginTest('Left/Right keys', '01:24'); |
89 keyDown('rightArrow'); | 89 keyDown('ArrowRight'); |
90 keyDown('5'); | 90 keyDown('5'); |
91 keyDown('leftArrow'); | 91 keyDown('ArrowLeft'); |
92 keyDown('6'); | 92 keyDown('6'); |
93 shouldBeEqualToString('input.value', '06:05'); | 93 shouldBeEqualToString('input.value', '06:05'); |
94 keyDown('leftArrow'); | 94 keyDown('ArrowLeft'); |
95 keyDown('leftArrow'); | 95 keyDown('ArrowLeft'); |
96 keyDown('leftArrow'); | 96 keyDown('ArrowLeft'); |
97 shouldBeEqualToString('document.activeElement.id', 'input'); | 97 shouldBeEqualToString('document.activeElement.id', 'input'); |
98 | 98 |
99 beginTest('Up/Down keys', '04:56'); | 99 beginTest('Up/Down keys', '04:56'); |
100 keyDown('upArrow'); | 100 keyDown('ArrowUp'); |
101 shouldBeEqualToString('input.value', '05:56'); | 101 shouldBeEqualToString('input.value', '05:56'); |
102 keyDown('downArrow'); | 102 keyDown('ArrowDown'); |
103 keyDown('downArrow'); | 103 keyDown('ArrowDown'); |
104 shouldBeEqualToString('input.value', '03:56'); | 104 shouldBeEqualToString('input.value', '03:56'); |
105 | 105 |
106 beginTest('Up/Down keys on empty value', ''); | 106 beginTest('Up/Down keys on empty value', ''); |
107 eventsCounter = {}; | 107 eventsCounter = {}; |
108 keyDown('upArrow'); // -> [01]:-- -- | 108 keyDown('ArrowUp'); // -> [01]:-- -- |
109 keyDown('upArrow'); // -> [02]:-- -- | 109 keyDown('ArrowUp'); // -> [02]:-- -- |
110 keyDown('rightArrow'); // -> 02:[--] -- | 110 keyDown('ArrowRight'); // -> 02:[--] -- |
111 keyDown('downArrow'); // -> 02:[59] -- | 111 keyDown('ArrowDown'); // -> 02:[59] -- |
112 keyDown('downArrow'); // -> 02:[58] -- | 112 keyDown('ArrowDown'); // -> 02:[58] -- |
113 keyDown('rightArrow'); // -> 02:58 [--] | 113 keyDown('ArrowRight'); // -> 02:58 [--] |
114 shouldBeUndefined('eventsCounter.input'); | 114 shouldBeUndefined('eventsCounter.input'); |
115 shouldBeUndefined('eventsCounter.change'); | 115 shouldBeUndefined('eventsCounter.change'); |
116 keyDown('downArrow'); // -> 02:58 [PM] | 116 keyDown('ArrowDown'); // -> 02:58 [PM] |
117 shouldBeEqualToString('input.value', '14:58'); | 117 shouldBeEqualToString('input.value', '14:58'); |
118 shouldBe('eventsCounter.input', '1'); | 118 shouldBe('eventsCounter.input', '1'); |
119 shouldBe('eventsCounter.change', '1'); | 119 shouldBe('eventsCounter.change', '1'); |
120 | 120 |
121 beginTest('Tab key', '03:00'); | 121 beginTest('Tab key', '03:00'); |
122 keyDown('\t'); | 122 keyDown('\t'); |
123 keyDown('5'); | 123 keyDown('5'); |
124 shouldBeEqualToString('input.value', '03:05'); | 124 shouldBeEqualToString('input.value', '03:05'); |
125 keyDown('\t', ['shiftKey']); | 125 keyDown('\t', ['shiftKey']); |
126 keyDown('7'); | 126 keyDown('7'); |
127 shouldBeEqualToString('input.value', '07:05'); | 127 shouldBeEqualToString('input.value', '07:05'); |
128 keyDown('\t'); | 128 keyDown('\t'); |
129 keyDown('\t'); | 129 keyDown('\t'); |
130 shouldBeEqualToString('document.activeElement.id', 'another'); | 130 shouldBeEqualToString('document.activeElement.id', 'another'); |
131 | 131 |
132 beginTest('Tab navigation should skip disabled inputs', ''); | 132 beginTest('Tab navigation should skip disabled inputs', ''); |
133 before.focus(); | 133 before.focus(); |
134 input.disabled = true; | 134 input.disabled = true; |
135 keyDown('\t'); | 135 keyDown('\t'); |
136 shouldBeEqualToString('document.activeElement.id', 'another'); | 136 shouldBeEqualToString('document.activeElement.id', 'another'); |
137 input.disabled = false; | 137 input.disabled = false; |
138 | 138 |
139 beginTest('Tab navigation should not skip readonly inputs, but editing operation
s should be ignored.', ''); | 139 beginTest('Tab navigation should not skip readonly inputs, but editing operation
s should be ignored.', ''); |
140 before.focus(); | 140 before.focus(); |
141 input.value = '01:01'; | 141 input.value = '01:01'; |
142 input.readOnly = true; | 142 input.readOnly = true; |
143 keyDown('\t'); | 143 keyDown('\t'); |
144 shouldBeEqualToString('document.activeElement.id', 'input'); | 144 shouldBeEqualToString('document.activeElement.id', 'input'); |
145 shouldBeEqualToString('shadowPseudoIdOfFocusedSubField(input)', '-webkit-datetim
e-edit-hour-field'); | 145 shouldBeEqualToString('shadowPseudoIdOfFocusedSubField(input)', '-webkit-datetim
e-edit-hour-field'); |
146 shouldBeEqualToString('keyDown("upArrow"); input.value', '01:01'); | 146 shouldBeEqualToString('keyDown("ArrowUp"); input.value', '01:01'); |
147 shouldBeEqualToString('keyDown("downArrow"); input.value', '01:01'); | 147 shouldBeEqualToString('keyDown("ArrowDown"); input.value', '01:01'); |
148 keyDown('rightArrow'); | 148 keyDown('ArrowRight'); |
149 shouldBeEqualToString('shadowPseudoIdOfFocusedSubField(input)', '-webkit-datetim
e-edit-minute-field'); | 149 shouldBeEqualToString('shadowPseudoIdOfFocusedSubField(input)', '-webkit-datetim
e-edit-minute-field'); |
150 shouldBeEqualToString('keyDown("3"); input.value', '01:01'); | 150 shouldBeEqualToString('keyDown("3"); input.value', '01:01'); |
151 keyDown('\t'); | 151 keyDown('\t'); |
152 shouldBeEqualToString('shadowPseudoIdOfFocusedSubField(input)', '-webkit-datetim
e-edit-ampm-field'); | 152 shouldBeEqualToString('shadowPseudoIdOfFocusedSubField(input)', '-webkit-datetim
e-edit-ampm-field'); |
153 keyDown('leftArrow'); | 153 keyDown('ArrowLeft'); |
154 shouldBeEqualToString('shadowPseudoIdOfFocusedSubField(input)', '-webkit-datetim
e-edit-minute-field'); | 154 shouldBeEqualToString('shadowPseudoIdOfFocusedSubField(input)', '-webkit-datetim
e-edit-minute-field'); |
155 keyDown('\t'); | 155 keyDown('\t'); |
156 keyDown('\t'); | 156 keyDown('\t'); |
157 shouldBeEqualToString('document.activeElement.id', 'another'); | 157 shouldBeEqualToString('document.activeElement.id', 'another'); |
158 input.readOnly = false; | 158 input.readOnly = false; |
159 | 159 |
160 beginTest('Shfit+Tab key', '03:00'); | 160 beginTest('Shfit+Tab key', '03:00'); |
161 another.focus(); | 161 another.focus(); |
162 keyDown('\t', ['shiftKey']); | 162 keyDown('\t', ['shiftKey']); |
163 keyDown('P'); | 163 keyDown('P'); |
164 shouldBeEqualToString('input.value', '15:00'); | 164 shouldBeEqualToString('input.value', '15:00'); |
165 keyDown('\t', ['shiftKey']); | 165 keyDown('\t', ['shiftKey']); |
166 keyDown('3'); | 166 keyDown('3'); |
167 shouldBeEqualToString('input.value', '15:03'); | 167 shouldBeEqualToString('input.value', '15:03'); |
168 keyDown('\t', ['shiftKey']); | 168 keyDown('\t', ['shiftKey']); |
169 keyDown('\t', ['shiftKey']); | 169 keyDown('\t', ['shiftKey']); |
170 shouldBeEqualToString('document.activeElement.id', 'before'); | 170 shouldBeEqualToString('document.activeElement.id', 'before'); |
171 | 171 |
172 beginTest('Up key on maximum value', '12:59:59.999'); | 172 beginTest('Up key on maximum value', '12:59:59.999'); |
173 keyDown('upArrow'); | 173 keyDown('ArrowUp'); |
174 keyDown('\t'); | 174 keyDown('\t'); |
175 keyDown('upArrow'); | 175 keyDown('ArrowUp'); |
176 keyDown('\t'); | 176 keyDown('\t'); |
177 keyDown('upArrow'); | 177 keyDown('ArrowUp'); |
178 keyDown('\t'); | 178 keyDown('\t'); |
179 keyDown('upArrow'); | 179 keyDown('ArrowUp'); |
180 shouldBeEqualToString('input.value', '13:00'); | 180 shouldBeEqualToString('input.value', '13:00'); |
181 | 181 |
182 beginTest('Down key on minimum value', '01:00'); | 182 beginTest('Down key on minimum value', '01:00'); |
183 input.step = 0.001; | 183 input.step = 0.001; |
184 keyDown('downArrow'); | 184 keyDown('ArrowDown'); |
185 keyDown('\t'); | 185 keyDown('\t'); |
186 keyDown('downArrow'); | 186 keyDown('ArrowDown'); |
187 keyDown('\t'); | 187 keyDown('\t'); |
188 keyDown('downArrow'); | 188 keyDown('ArrowDown'); |
189 keyDown('\t'); | 189 keyDown('\t'); |
190 keyDown('downArrow'); | 190 keyDown('ArrowDown'); |
191 shouldBeEqualToString('input.value', '00:59:59.999'); | 191 shouldBeEqualToString('input.value', '00:59:59.999'); |
192 input.step = 60; | 192 input.step = 60; |
193 | 193 |
194 beginTest('Backspace key', '12:34'); | 194 beginTest('Backspace key', '12:34'); |
195 keyDown("\b"); | 195 keyDown("Backspace"); |
196 shouldBeEqualToString('input.value', ''); | 196 shouldBeEqualToString('input.value', ''); |
197 | 197 |
198 beginTest('Delete key', '12:34'); | 198 beginTest('Delete key', '12:34'); |
199 keyDown("delete"); | 199 keyDown("Delete"); |
200 shouldBeEqualToString('input.value', ''); | 200 shouldBeEqualToString('input.value', ''); |
201 | 201 |
202 beginTest('Typeahead', '12:34:56'); | 202 beginTest('Typeahead', '12:34:56'); |
203 keyDown('rightArrow'); | 203 keyDown('ArrowRight'); |
204 keyDown('1'); | 204 keyDown('1'); |
205 shouldBeEqualToString('input.value', '12:01:56'); | 205 shouldBeEqualToString('input.value', '12:01:56'); |
206 keyDown('rightArrow'); | 206 keyDown('ArrowRight'); |
207 keyDown('leftArrow'); | 207 keyDown('ArrowLeft'); |
208 keyDown('2'); | 208 keyDown('2'); |
209 shouldBeEqualToString('input.value', '12:02:56'); | 209 shouldBeEqualToString('input.value', '12:02:56'); |
210 | 210 |
211 input.setAttribute("lang", "he-il"); | 211 input.setAttribute("lang", "he-il"); |
212 beginTest('RTL focus navigation', '04:56'); | 212 beginTest('RTL focus navigation', '04:56'); |
213 debug('The tests in this block fail on platforms without the lang-attribute-awar
e-form-control-UI feature.'); | 213 debug('The tests in this block fail on platforms without the lang-attribute-awar
e-form-control-UI feature.'); |
214 keyDown('1'); // -> [01]:56 | 214 keyDown('1'); // -> [01]:56 |
215 shouldBeEqualToString('input.value', '01:56'); | 215 shouldBeEqualToString('input.value', '01:56'); |
216 keyDown('\t'); // -> 01:[56] | 216 keyDown('\t'); // -> 01:[56] |
217 keyDown('2'); // -> 01:[02] | 217 keyDown('2'); // -> 01:[02] |
218 shouldBeEqualToString('input.value', '01:02'); | 218 shouldBeEqualToString('input.value', '01:02'); |
219 keyDown('\t', ['shiftKey']); // -> [01]:02 | 219 keyDown('\t', ['shiftKey']); // -> [01]:02 |
220 keyDown('3'); // -> [03]:02 | 220 keyDown('3'); // -> [03]:02 |
221 shouldBeEqualToString('input.value', '03:02'); | 221 shouldBeEqualToString('input.value', '03:02'); |
222 input.removeAttribute("lang"); | 222 input.removeAttribute("lang"); |
223 </script> | 223 </script> |
224 </body> | 224 </body> |
225 </html> | 225 </html> |
OLD | NEW |