| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <script src="../../js/resources/js-test-pre.js"></script> | 4 <script src="../../js/resources/js-test-pre.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 23 matching lines...) Expand all Loading... |
| 34 } | 34 } |
| 35 | 35 |
| 36 function beginTest(title, value) | 36 function beginTest(title, value) |
| 37 { | 37 { |
| 38 debug("== " + title + " =="); | 38 debug("== " + title + " =="); |
| 39 input.value = value; | 39 input.value = value; |
| 40 input.blur(); | 40 input.blur(); |
| 41 input.focus(); | 41 input.focus(); |
| 42 } | 42 } |
| 43 | 43 |
| 44 var eventsCounter = {}; |
| 45 function countEvents(event) |
| 46 { |
| 47 if (eventsCounter[event.type] === undefined) |
| 48 eventsCounter[event.type] = 0; |
| 49 eventsCounter[event.type]++; |
| 50 } |
| 51 input.addEventListener('input', countEvents, false); |
| 52 input.addEventListener('change', countEvents, false); |
| 53 |
| 44 beginTest('Digit keys'); | 54 beginTest('Digit keys'); |
| 45 keyDown('7'); | 55 keyDown('7'); // -> 07:[--] -- |
| 46 keyDown('5'); | 56 keyDown('5'); // -> 07:[05] -- |
| 47 keyDown('6'); | 57 keyDown('6'); // -> 07:56 [--] |
| 48 keyDown('A'); | 58 shouldBeUndefined('eventsCounter.input'); |
| 59 shouldBeUndefined('eventsCounter.change'); |
| 60 keyDown('A'); // -> 07:56 [AM] |
| 49 shouldBeEqualToString('input.value', '07:56'); | 61 shouldBeEqualToString('input.value', '07:56'); |
| 62 shouldBe('eventsCounter.input', '1'); |
| 63 shouldBe('eventsCounter.change', '1'); |
| 50 | 64 |
| 51 beginTest('Digit keys starting with zero'); | 65 beginTest('Digit keys starting with zero'); |
| 52 keyDown('0'); // -> [00]:-- -- | 66 keyDown('0'); // -> [00]:-- -- |
| 53 keyDown('2'); // -> 02:[--] -- | 67 keyDown('2'); // -> 02:[--] -- |
| 54 keyDown('0'); // -> 02:[00] -- | 68 keyDown('0'); // -> 02:[00] -- |
| 55 keyDown('3'); // -> 02:03 [--] | 69 keyDown('3'); // -> 02:03 [--] |
| 56 keyDown('P'); // -> 02:03 [PM] | 70 keyDown('P'); // -> 02:03 [PM] |
| 57 shouldBeEqualToString('input.value', '14:03'); | 71 shouldBeEqualToString('input.value', '14:03'); |
| 58 | 72 |
| 59 beginTest('Digit keys and backspace key','01:01'); | 73 beginTest('Digit keys and backspace key','01:01'); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 90 shouldBeEqualToString('document.activeElement.id', 'input'); | 104 shouldBeEqualToString('document.activeElement.id', 'input'); |
| 91 | 105 |
| 92 beginTest('Up/Down keys', '04:56'); | 106 beginTest('Up/Down keys', '04:56'); |
| 93 keyDown('upArrow'); | 107 keyDown('upArrow'); |
| 94 shouldBeEqualToString('input.value', '05:56'); | 108 shouldBeEqualToString('input.value', '05:56'); |
| 95 keyDown('downArrow'); | 109 keyDown('downArrow'); |
| 96 keyDown('downArrow'); | 110 keyDown('downArrow'); |
| 97 shouldBeEqualToString('input.value', '03:56'); | 111 shouldBeEqualToString('input.value', '03:56'); |
| 98 | 112 |
| 99 beginTest('Up/Down keys on empty value', ''); | 113 beginTest('Up/Down keys on empty value', ''); |
| 100 keyDown('upArrow'); | 114 eventsCounter = {}; |
| 101 keyDown('upArrow'); | 115 keyDown('upArrow'); // -> [01]:-- -- |
| 102 keyDown('rightArrow'); | 116 keyDown('upArrow'); // -> [02]:-- -- |
| 103 keyDown('downArrow'); | 117 keyDown('rightArrow'); // -> 02:[--] -- |
| 104 keyDown('downArrow'); | 118 keyDown('downArrow'); // -> 02:[59] -- |
| 105 keyDown('rightArrow'); | 119 keyDown('downArrow'); // -> 02:[58] -- |
| 106 keyDown('downArrow'); | 120 keyDown('rightArrow'); // -> 02:58 [--] |
| 121 shouldBeUndefined('eventsCounter.input'); |
| 122 shouldBeUndefined('eventsCounter.change'); |
| 123 keyDown('downArrow'); // -> 02:58 [PM] |
| 107 shouldBeEqualToString('input.value', '14:58'); | 124 shouldBeEqualToString('input.value', '14:58'); |
| 125 shouldBe('eventsCounter.input', '1'); |
| 126 shouldBe('eventsCounter.change', '1'); |
| 108 | 127 |
| 109 beginTest('Tab key', '03:00'); | 128 beginTest('Tab key', '03:00'); |
| 110 keyDown('\t'); | 129 keyDown('\t'); |
| 111 keyDown('5'); | 130 keyDown('5'); |
| 112 shouldBeEqualToString('input.value', '03:05'); | 131 shouldBeEqualToString('input.value', '03:05'); |
| 113 keyDown('\t', ['shiftKey']); | 132 keyDown('\t', ['shiftKey']); |
| 114 keyDown('7'); | 133 keyDown('7'); |
| 115 shouldBeEqualToString('input.value', '07:05'); | 134 shouldBeEqualToString('input.value', '07:05'); |
| 116 keyDown('\t'); | 135 keyDown('\t'); |
| 117 keyDown('\t'); | 136 keyDown('\t'); |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 keyDown('2'); // -> 01:[02] | 209 keyDown('2'); // -> 01:[02] |
| 191 shouldBeEqualToString('input.value', '01:02'); | 210 shouldBeEqualToString('input.value', '01:02'); |
| 192 keyDown('\t', ['shiftKey']); // -> [01]:02 | 211 keyDown('\t', ['shiftKey']); // -> [01]:02 |
| 193 keyDown('3'); // -> [03]:02 | 212 keyDown('3'); // -> [03]:02 |
| 194 shouldBeEqualToString('input.value', '03:02'); | 213 shouldBeEqualToString('input.value', '03:02'); |
| 195 input.removeAttribute("lang"); | 214 input.removeAttribute("lang"); |
| 196 </script> | 215 </script> |
| 197 <script src="../../js/resources/js-test-post.js"></script> | 216 <script src="../../js/resources/js-test-post.js"></script> |
| 198 </body> | 217 </body> |
| 199 </html> | 218 </html> |
| OLD | NEW |