Chromium Code Reviews| 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 <script src="../resources/common.js"></script> | 5 <script src="../resources/common.js"></script> |
| 6 </head> | 6 </head> |
| 7 <body> | 7 <body> |
| 8 <script> | 8 <script> |
| 9 description('Check stepping-up and -down for time input fields from renderer. No cases of empty initial values.'); | 9 description('Check stepping-up and -down for time input fields from renderer. No cases of empty initial values.'); |
| 10 if (!window.internals) | 10 if (!window.internals) |
| 11 testFailed('This test requires window.internals.'); | 11 testFailed('This test requires window.internals.'); |
| 12 | 12 |
| 13 var input = document.createElement('input'); | 13 var input = document.createElement('input'); |
| 14 var invalidStateErr = '"InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable."'; | |
| 15 | |
| 16 document.body.appendChild(input); | 14 document.body.appendChild(input); |
| 17 | 15 |
| 18 function keyDown(key, modifiers) | 16 function keyDown(key, modifiers) |
| 19 { | 17 { |
| 20 if (!window.eventSender) | 18 if (!window.eventSender) |
| 21 return; | 19 return; |
| 22 eventSender.keyDown(key, modifiers); | 20 eventSender.keyDown(key, modifiers); |
| 23 } | 21 } |
| 24 | 22 |
| 25 function setDateTimeFormat(pattern) { | 23 function setDateTimeFormat(pattern) { |
| 26 getElementByPseudoId(internals.youngestShadowRoot(input), '-webkit-datetime- edit').setAttribute('pattern', pattern); | 24 getElementByPseudoId(internals.youngestShadowRoot(input), '-webkit-datetime- edit').setAttribute('pattern', pattern); |
| 27 input.value = ''; // Updates the element for new format | 25 input.value = ''; // Updates the element for new format |
| 28 } | 26 } |
| 29 | 27 |
| 28 function maybeUpdateAttribute(name, value) { | |
| 29 if (value) { | |
|
yosin_UTC9
2016/07/12 01:12:09
Just attempt to shuffling lines.
# BAD: extra has
| |
| 30 if (input.getAttribute(name) != value) | |
| 31 input.setAttribute(name, value); | |
| 32 } else { | |
| 33 if (input.hasAttribute(name)) | |
| 34 input.removeAttribute(name); | |
| 35 } | |
| 36 } | |
| 37 | |
| 30 function setInputAttributes(value, min, max, step) { | 38 function setInputAttributes(value, min, max, step) { |
| 31 input.value = value; | 39 input.value = value; |
| 32 input.min = min; | 40 maybeUpdateAttribute('min', min); |
| 33 input.max = max; | 41 maybeUpdateAttribute('max', max); |
| 34 input.step = step; | 42 maybeUpdateAttribute('step', step); |
| 35 } | 43 } |
| 36 | 44 |
| 37 function test(value, step, min, max, keySequence) { | 45 function test(value, step, min, max, keySequence) { |
| 38 setInputAttributes(value, min, max, step); | 46 setInputAttributes(value, min, max, step); |
| 39 for (var i = 0; i < keySequence.length; i++) | 47 for (var i = 0; i < keySequence.length; i++) |
| 40 keyDown(keySequence[i]); | 48 keyDown(keySequence[i]); |
| 41 return input.value; | 49 return input.value; |
| 42 } | 50 } |
| 43 | 51 |
| 44 function stepUp(value, step, min, max) { | 52 function stepUp(value, step, min, max) { |
| 45 return test(value, step, min, max, ['ArrowUp']); | 53 return test(value, step, min, max, ['ArrowUp']); |
| 46 } | 54 } |
| 47 | 55 |
| 48 function stepDown(value, step, min, max) { | 56 function stepDown(value, step, min, max) { |
| 49 return test(value, step, min, max, ['ArrowDown']); | 57 return test(value, step, min, max, ['ArrowDown']); |
| 50 } | 58 } |
| 51 | 59 |
| 52 input.type = 'time'; | 60 input.type = 'time'; |
| 53 input.focus(); | 61 input.focus(); |
| 54 keyDown('ArrowRight'); | |
| 55 debug('Function arguments are (value, step, min, max, [keySequence]).'); | |
| 56 debug('Normal cases'); | |
| 57 shouldBeEqualToString('stepUp("07:13", null, null, null)', '07:14'); | |
| 58 shouldBeEqualToString('stepDown("07:13", null, null, null)', '07:12'); | |
| 59 shouldBeEqualToString('test("07:13", null, null, null, ["ArrowUp", "ArrowUp", "A rrowUp"])', '07:16'); | |
| 60 shouldBeEqualToString('test("07:13", null, null, null, ["ArrowDown", "ArrowDown" , "ArrowDown"])', '07:10'); | |
| 61 | |
| 62 debug('Milliseconds'); | |
| 63 input.step = 0.001; | |
| 64 keyDown('ArrowRight'); | |
| 65 keyDown('ArrowRight'); | |
| 66 shouldBeEqualToString('stepUp("07:13:00.000", 0.001, null, null)', '07:13:00.001 '); | |
| 67 shouldBeEqualToString('stepDown("07:13:00.001", 0.001, null, null)', '07:13'); | |
| 68 shouldBeEqualToString('stepUp("07:13:00.999", 0.001, null, null)', '07:13'); | |
| 69 shouldBeEqualToString('stepDown("07:13:00.000", 0.001, null, null)', '07:13:00.9 99'); | |
| 70 shouldBeEqualToString('stepUp("07:13:00.000", 0.250, null, null)', '07:13:00.250 '); | |
| 71 shouldBeEqualToString('stepDown("07:13:00.500", 0.250, null, null)', '07:13:00.2 50'); | |
| 72 shouldBeEqualToString('stepUp("07:13:00.750", 0.250, null, null)', '07:13'); | |
| 73 shouldBeEqualToString('stepDown("07:13:00.000", 0.250, null, null)', '07:13:00.7 50'); | |
| 74 shouldBeEqualToString('stepUp("07:13:00.099", 0.100, null, null)', '07:13:00.100 '); | |
| 75 shouldBeEqualToString('stepDown("07:13:00.101", 0.100, null, null)', '07:13:00.1 00'); | |
| 76 shouldBeEqualToString('stepUp("07:13:00.500", 0.0001, null, null)', '07:13:00.50 1'); | |
| 77 shouldBeEqualToString('stepDown("07:13:00.500", 0.0001, null, null)', '07:13:00. 499'); | |
| 78 shouldBeEqualToString('stepUp("07:13:00.500", 0, null, null)', '07:13'); | |
| 79 shouldBeEqualToString('stepDown("07:13:00.500", 0, null, null)', '07:13'); | |
| 80 shouldBeEqualToString('stepUp("07:13:00.500", 60, null, null)', '07:13'); | |
| 81 shouldBeEqualToString('stepDown("07:13:00.500", 60, null, null)', '07:13'); | |
| 82 shouldBeEqualToString('stepUp("07:13:00.500", 0.100, "00:00:00.050", null)', '07 :13:00.550'); | |
| 83 shouldBeEqualToString('stepDown("07:13:00.500", 0.100, "00:00:00.050", null)', ' 07:13:00.450'); | |
| 84 shouldBeEqualToString('test("07:13:00.500", 0.100, null, null, ["Delete", "Arrow Up"])', '07:13'); | |
| 85 shouldBeEqualToString('test("07:13:00.500", 0.100, null, null, ["Delete", "Arrow Down"])', '07:13:00.900'); | |
| 86 shouldBeEqualToString('test("07:13:00.500", 0.100, "00:00:00.050", null, ["Delet e", "ArrowUp"])', '07:13:00.050'); | |
| 87 shouldBeEqualToString('test("07:13:00.500", 0.100, "00:00:00.050", null, ["Delet e", "ArrowDown"])', '07:13:00.950'); | |
| 88 shouldBeEqualToString('stepUp("07:13:00.010", 0.001, "07:13:00.005", "07:13:00.0 10")', '07:13:00.005'); | |
| 89 shouldBeEqualToString('stepDown("07:13:00.005", 0.001, "07:13:00.005", "07:13:00 .010")', '07:13:00.010'); | |
| 90 shouldBeEqualToString('stepUp("07:13:00.005", 0.001, "07:13:00.010", "07:13:00.0 20")', '07:13:00.010'); | |
| 91 shouldBeEqualToString('stepDown("07:13:00.005", 0.001, "07:13:00.010", "07:13:00 .020")', '07:13:00.020'); | |
| 92 shouldBeEqualToString('stepUp("07:13:00.005", 0.001, "07:13:00.002", "07:13:00.0 02")', '07:13:00.002'); | |
| 93 shouldBeEqualToString('stepDown("07:13:00.005", 0.001, "07:13:00.002", "07:13:00 .002")', '07:13:00.002'); | |
| 94 shouldBeEqualToString('stepUp("07:13:00.035", 0.01, "07:13:00.010", "07:13:00.03 5")', '07:13:00.010'); | |
| 95 shouldBeEqualToString('stepDown("07:13:00.035", 0.01, "07:13:00.010", "07:13:00. 035")', '07:13:00.030'); | |
| 96 shouldBeEqualToString('stepUp("07:13:00.010", 0.001, "07:13:00.010", "07:13:01.0 20")', '07:13:00.011'); | |
| 97 shouldBeEqualToString('stepDown("07:13:00.010", 0.001, "07:13:00.010", "07:13:01 .020")', '07:13:00.009'); | |
| 98 | |
| 99 debug('Seconds'); | |
| 100 keyDown('ArrowLeft'); | |
| 101 shouldBeEqualToString('stepUp("07:13:00", 1, null, null)', '07:13:01'); | |
| 102 shouldBeEqualToString('stepDown("07:13:01", 1, null, null)', '07:13'); | |
| 103 shouldBeEqualToString('stepUp("07:13:59", 0.001, null, null)', '07:13'); | |
| 104 shouldBeEqualToString('stepDown("07:13:00", 0.001, null, null)', '07:13:59'); | |
| 105 shouldBeEqualToString('stepUp("07:13:00", 10, null, null)', '07:13:10'); | |
| 106 shouldBeEqualToString('stepDown("07:13:30", 10, null, null)', '07:13:20'); | |
| 107 shouldBeEqualToString('stepUp("07:13:50", 10, null, null)', '07:13'); | |
| 108 shouldBeEqualToString('stepDown("07:13:00", 10, null, null)', '07:13:50'); | |
| 109 shouldBeEqualToString('stepUp("07:13:09", 10, null, null)', '07:13:10'); | |
| 110 shouldBeEqualToString('stepDown("07:13:11", 10, null, null)', '07:13:10'); | |
| 111 shouldBeEqualToString('stepUp("07:13:30", 2.5, null, null)', '07:13:31'); | |
| 112 shouldBeEqualToString('stepDown("07:13:30", 2.5, null, null)', '07:13:29'); | |
| 113 shouldBeEqualToString('stepUp("07:13:30", 0, null, null)', '07:13'); | |
| 114 shouldBeEqualToString('stepDown("07:13:30", 0, null, null)', '07:13'); | |
| 115 shouldBeEqualToString('stepUp("07:13:30", 3600, null, null)', '07:13'); | |
| 116 shouldBeEqualToString('stepDown("07:13:30", 3600, null, null)', '07:13'); | |
| 117 shouldBeEqualToString('stepUp("07:13:30", 11, null, null)', '07:13:31'); | |
| 118 shouldBeEqualToString('stepDown("07:13:30", 11, null, null)', '07:13:29'); | |
| 119 shouldBeEqualToString('stepUp("07:13:30", 10, "00:00:05", null)', '07:13:35'); | |
| 120 shouldBeEqualToString('stepDown("07:13:30", 10, "00:00:05", null)', '07:13:25'); | |
| 121 shouldBeEqualToString('test("07:13:30", 10, null, null, ["Delete", "ArrowUp"])', '07:13'); | |
| 122 shouldBeEqualToString('test("07:13:30", 10, null, null, ["Delete", "ArrowDown"]) ', '07:13:50'); | |
| 123 shouldBeEqualToString('test("07:13:30", 10, "00:00:05", null, ["Delete", "ArrowU p"])', '07:13:05'); | |
| 124 shouldBeEqualToString('test("07:13:30", 10, "00:00:05", null, ["Delete", "ArrowD own"])', '07:13:55'); | |
| 125 shouldBeEqualToString('stepUp("07:13:10", 1, "07:13:05", "07:13:10")', '07:13:05 '); | |
| 126 shouldBeEqualToString('stepDown("07:13:05", 1, "07:13:05", "07:13:10")', '07:13: 10'); | |
| 127 shouldBeEqualToString('stepUp("07:13:05", 1, "07:13:10", "07:13:20")', '07:13:10 '); | |
| 128 shouldBeEqualToString('stepDown("07:13:05", 1, "07:13:10", "07:13:20")', '07:13: 20'); | |
| 129 shouldBeEqualToString('stepUp("07:13:05", 1, "07:13:02", "07:13:02")', '07:13:02 '); | |
| 130 shouldBeEqualToString('stepDown("07:13:05", 1, "07:13:02", "07:13:02")', '07:13: 02'); | |
| 131 shouldBeEqualToString('stepUp("07:13:35", 10, "07:13:10", "07:13:35")', '07:13:1 0'); | |
| 132 shouldBeEqualToString('stepDown("07:13:35", 10, "07:13:10", "07:13:35")', '07:13 :30'); | |
| 133 shouldBeEqualToString('stepUp("07:13:10", 1, "07:13:10", "07:14:20")', '07:13:11 '); | |
| 134 shouldBeEqualToString('stepDown("07:13:10", 1, "07:13:10", "07:14:20")', '07:13: 09'); | |
| 135 | |
| 136 debug('Minutes'); | |
| 137 keyDown('ArrowLeft'); | |
| 138 shouldBeEqualToString('stepUp("07:13", 1, null, null)', '07:14'); | |
| 139 shouldBeEqualToString('stepDown("07:13", 1, null, null)', '07:12'); | |
| 140 shouldBeEqualToString('stepUp("07:59", 0.001, null, null)', '07:00'); | |
| 141 shouldBeEqualToString('stepDown("07:00", 0.001, null, null)', '07:59'); | |
| 142 shouldBeEqualToString('stepUp("07:00", 600, null, null)', '07:10'); | |
| 143 shouldBeEqualToString('stepDown("07:10", 600, null, null)', '07:00'); | |
| 144 shouldBeEqualToString('stepUp("07:50", 600, null, null)', '07:00'); | |
| 145 shouldBeEqualToString('stepDown("07:00", 600, null, null)', '07:50'); | |
| 146 shouldBeEqualToString('stepUp("07:13", 600, null, null)', '07:20'); | |
| 147 shouldBeEqualToString('stepDown("07:13", 600, null, null)', '07:10'); | |
| 148 shouldBeEqualToString('stepUp("07:13", 150, null, null)', '07:14'); | |
| 149 shouldBeEqualToString('stepDown("07:13", 150, null, null)', '07:12'); | |
| 150 shouldBeEqualToString('stepUp("07:13", 0, null, null)', '07:14'); | |
| 151 shouldBeEqualToString('stepDown("07:13", 0, null, null)', '07:12'); | |
| 152 shouldBeEqualToString('stepUp("07:13", 36000, null, null)', '07:00'); | |
| 153 shouldBeEqualToString('stepDown("07:13", 36000, null, null)', '07:00'); | |
| 154 shouldBeEqualToString('stepUp("07:13", 660, null, null)', '07:14'); | |
| 155 shouldBeEqualToString('stepDown("07:13", 660, null, null)', '07:12'); | |
| 156 shouldBeEqualToString('stepUp("07:13", 600, "00:05", null)', '07:15'); | |
| 157 shouldBeEqualToString('stepDown("07:13", 600, "00:05", null)', '07:05'); | |
| 158 shouldBeEqualToString('test("07:13", 600, null, null, ["Delete", "ArrowUp"])', ' 07:00'); | |
| 159 shouldBeEqualToString('test("07:13", 600, null, null, ["Delete", "ArrowDown"])', '07:50'); | |
| 160 shouldBeEqualToString('test("07:13", 600, "00:05", null, ["Delete", "ArrowUp"])' , '07:05'); | |
| 161 shouldBeEqualToString('test("07:13", 600, "00:05", null, ["Delete", "ArrowDown"] )', '07:55'); | |
| 162 shouldBeEqualToString('stepUp("07:10", 1, "07:05", "07:10")', '07:05'); | |
| 163 shouldBeEqualToString('stepDown("07:05", 1, "07:05", "07:10")', '07:10'); | |
| 164 shouldBeEqualToString('stepUp("07:05", 1, "07:10", "07:20")', '07:10'); | |
| 165 shouldBeEqualToString('stepDown("07:05", 1, "07:10", "07:20")', '07:20'); | |
| 166 shouldBeEqualToString('stepUp("07:05", 1, "07:00", "07:00")', '07:00'); | |
| 167 shouldBeEqualToString('stepDown("07:05", 1, "07:00", "07:00")', '07:00'); | |
| 168 shouldBeEqualToString('stepUp("07:35", 600, "07:10", "07:35")', '07:10'); | |
| 169 shouldBeEqualToString('stepDown("07:35", 600, "07:10", "07:35")', '07:30'); | |
| 170 shouldBeEqualToString('stepUp("07:10", 1, "07:10", "08:20")', '07:11'); | |
| 171 shouldBeEqualToString('stepDown("07:10", 1, "07:10", "08:20")', '07:09'); | |
| 172 | 62 |
| 173 debug('Hours, 1-12'); | 63 debug('Hours, 1-12'); |
| 174 keyDown('ArrowLeft'); | |
| 175 shouldBeEqualToString('stepUp("07:00", 1, null, null)', '08:00'); | 64 shouldBeEqualToString('stepUp("07:00", 1, null, null)', '08:00'); |
| 176 shouldBeEqualToString('stepDown("07:00", 1, null, null)', '06:00'); | 65 shouldBeEqualToString('stepDown("07:00", 1, null, null)', '06:00'); |
| 177 shouldBeEqualToString('stepUp("11:00", 1, null, null)', '00:00'); | 66 shouldBeEqualToString('stepUp("11:00", 1, null, null)', '00:00'); |
| 178 shouldBeEqualToString('stepDown("00:00", 1, null, null)', '11:00'); | 67 shouldBeEqualToString('stepDown("00:00", 1, null, null)', '11:00'); |
| 179 shouldBeEqualToString('stepUp("06:00", 7200, null, null)', '08:00'); | 68 shouldBeEqualToString('stepUp("06:00", 7200, null, null)', '08:00'); |
| 180 shouldBeEqualToString('stepDown("06:00", 7200, null, null)', '04:00'); | 69 shouldBeEqualToString('stepDown("06:00", 7200, null, null)', '04:00'); |
| 181 shouldBeEqualToString('stepUp("10:00", 7200, null, null)', '00:00'); | 70 shouldBeEqualToString('stepUp("10:00", 7200, null, null)', '00:00'); |
| 182 shouldBeEqualToString('stepDown("00:00", 7200, null, null)', '10:00'); | 71 shouldBeEqualToString('stepDown("00:00", 7200, null, null)', '10:00'); |
| 183 shouldBeEqualToString('stepUp("07:00", 7200, null, null)', '08:00'); | 72 shouldBeEqualToString('stepUp("07:00", 7200, null, null)', '08:00'); |
| 184 shouldBeEqualToString('stepDown("07:00", 7200, null, null)', '06:00'); | 73 shouldBeEqualToString('stepDown("07:00", 7200, null, null)', '06:00'); |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 339 shouldBeEqualToString('stepDown("17:00", 7200, "17:00", "20:00")', '19:00'); | 228 shouldBeEqualToString('stepDown("17:00", 7200, "17:00", "20:00")', '19:00'); |
| 340 shouldBeEqualToString('stepUp("17:00", 7200, "17:00", "18:00")', '17:00'); | 229 shouldBeEqualToString('stepUp("17:00", 7200, "17:00", "18:00")', '17:00'); |
| 341 shouldBeEqualToString('stepDown("17:00", 7200, "17:00", "18:00")', '17:00'); | 230 shouldBeEqualToString('stepDown("17:00", 7200, "17:00", "18:00")', '17:00'); |
| 342 | 231 |
| 343 setDateTimeFormat(''); | 232 setDateTimeFormat(''); |
| 344 debug(''); | 233 debug(''); |
| 345 document.body.removeChild(input); | 234 document.body.removeChild(input); |
| 346 </script> | 235 </script> |
| 347 </body> | 236 </body> |
| 348 </html> | 237 </html> |
| OLD | NEW |