 Chromium Code Reviews
 Chromium Code Reviews Issue 2631483002:
  Improve performance of time-multiple-fields-stepup-stepdown-from-renderer-hour.html  (Closed)
    
  
    Issue 2631483002:
  Improve performance of time-multiple-fields-stepup-stepdown-from-renderer-hour.html  (Closed) 
  | 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/testharness.js"></script> | 
| 5 <script src="../../../resources/testharnessreport.js"></script> | |
| 5 <script src="../resources/common.js"></script> | 6 <script src="../resources/common.js"></script> | 
| 6 </head> | 7 </head> | 
| 7 <body> | 8 <body> | 
| 8 <script> | 9 <script> | 
| 9 description('Check stepping-up and -down for time input fields from renderer. No cases of empty initial values.'); | 10 // We use a single INPUT element for multiple testcases to improve test performa nce. | 
| 10 if (!window.internals) | |
| 11 testFailed('This test requires window.internals.'); | |
| 12 | |
| 13 var input = document.createElement('input'); | 11 var input = document.createElement('input'); | 
| 12 input.type = 'time'; | |
| 14 document.body.appendChild(input); | 13 document.body.appendChild(input); | 
| 15 | 14 input.focus(); | 
| 16 function keyDown(key, modifiers) | |
| 17 { | |
| 18 if (!window.eventSender) | |
| 19 return; | |
| 20 eventSender.keyDown(key, modifiers); | |
| 21 } | |
| 22 | 15 | 
| 23 function setDateTimeFormat(pattern) { | 16 function setDateTimeFormat(pattern) { | 
| 24 getElementByPseudoId(internals.youngestShadowRoot(input), '-webkit-datetime- edit').setAttribute('pattern', pattern); | 17 getElementByPseudoId(internals.youngestShadowRoot(input), '-webkit-datetime-ed it').setAttribute('pattern', pattern); | 
| 25 input.value = ''; // Updates the element for new format | 18 input.value = ''; // Updates the element for new format | 
| 26 } | 19 } | 
| 27 | 20 | 
| 28 function maybeUpdateAttribute(name, value) { | 21 function maybeUpdateAttribute(name, value) { | 
| 29 if (value) { | 22 if (value) { | 
| 30 if (input.getAttribute(name) != value) | 23 if (input.getAttribute(name) != value) | 
| 
yosin_UTC9
2017/01/13 07:13:52
nit: s/!=/!==/
 
tkent
2017/01/13 08:39:02
Done
 | |
| 31 input.setAttribute(name, value); | 24 input.setAttribute(name, value); | 
| 32 } else { | 25 } else { | 
| 33 if (input.hasAttribute(name)) | 26 if (input.hasAttribute(name)) | 
| 34 input.removeAttribute(name); | 27 input.removeAttribute(name); | 
| 35 } | 28 } | 
| 36 } | 29 } | 
| 37 | 30 | 
| 38 function setInputAttributes(value, min, max, step) { | 31 function assert_input_value_with_limits(initial, step, min, max, keySequence, ex pected, expectedDisplayValue) { | 
| 39 input.value = value; | 32 input.value = initial; | 
| 40 maybeUpdateAttribute('min', min); | 33 maybeUpdateAttribute('min', min); | 
| 41 maybeUpdateAttribute('max', max); | 34 maybeUpdateAttribute('max', max); | 
| 42 maybeUpdateAttribute('step', step); | 35 maybeUpdateAttribute('step', step); | 
| 43 } | 36 | 
| 44 | 37 for (var i = 0; i < keySequence.length; ++i) | 
| 
yosin_UTC9
2017/01/13 07:13:52
nit: s/var/let/
 
tkent
2017/01/13 08:39:02
I made this |forEach|.
 | |
| 45 function test(value, step, min, max, keySequence) { | 38 eventSender.keyDown(keySequence[i]); | 
| 46 setInputAttributes(value, min, max, step); | 39 | 
| 47 for (var i = 0; i < keySequence.length; i++) | 40 assert_equals(input.value, expected); | 
| 48 keyDown(keySequence[i]); | 41 if (expectedDisplayValue) | 
| 49 return input.value; | 42 assert_equals(getUserAgentShadowTextContent(input), expectedDisplayValue); | 
| 50 } | 43 } | 
| 51 | 44 | 
| 52 function stepUp(value, step, min, max) { | 45 function assert_input_value_with_limits_after_up(initial, step, min, max, expect ed, expectedDisplayValue) { | 
| 53 return test(value, step, min, max, ['ArrowUp']); | 46 assert_input_value_with_limits(initial, step, min, max, ['ArrowUp'], expected, expectedDisplayValue); | 
| 54 } | 47 } | 
| 55 | 48 | 
| 56 function stepDown(value, step, min, max) { | 49 function assert_input_value_with_limits_after_down(initial, step, min, max, expe cted, expectedDisplayValue) { | 
| 57 return test(value, step, min, max, ['ArrowDown']); | 50 assert_input_value_with_limits(initial, step, min, max, ['ArrowDown'], expecte d, expectedDisplayValue); | 
| 58 } | 51 } | 
| 59 | 52 | 
| 60 input.type = 'time'; | 53 function assert_input_value_with_limits_after_deleteup(initial, step, min, max, expected, expectedDisplayValue) { | 
| 61 input.focus(); | 54 assert_input_value_with_limits(initial, step, min, max, ['Delete', 'ArrowUp'], expected, expectedDisplayValue); | 
| 62 | 55 } | 
| 63 debug('Hours, 1-12'); | 56 | 
| 64 shouldBeEqualToString('stepUp("07:00", 1, null, null)', '08:00'); | 57 function assert_input_value_with_limits_after_deletedown(initial, step, min, max , expected, expectedDisplayValue) { | 
| 65 shouldBeEqualToString('stepDown("07:00", 1, null, null)', '06:00'); | 58 assert_input_value_with_limits(initial, step, min, max, ['Delete', 'ArrowDown' ], expected, expectedDisplayValue); | 
| 66 shouldBeEqualToString('stepUp("11:00", 1, null, null)', '00:00'); | 59 } | 
| 67 shouldBeEqualToString('stepDown("00:00", 1, null, null)', '11:00'); | 60 | 
| 68 shouldBeEqualToString('stepUp("06:00", 7200, null, null)', '08:00'); | 61 function assert_input_value_after_up(initial, step, expected, expectedDisplayVal ue) { | 
| 69 shouldBeEqualToString('stepDown("06:00", 7200, null, null)', '04:00'); | 62 assert_input_value_with_limits(initial, step, null, null, ['ArrowUp'], expecte d, expectedDisplayValue); | 
| 70 shouldBeEqualToString('stepUp("10:00", 7200, null, null)', '00:00'); | 63 } | 
| 71 shouldBeEqualToString('stepDown("00:00", 7200, null, null)', '10:00'); | 64 | 
| 72 shouldBeEqualToString('stepUp("07:00", 7200, null, null)', '08:00'); | 65 function assert_input_value_after_down(initial, step, expected, expectedDisplayV alue) { | 
| 73 shouldBeEqualToString('stepDown("07:00", 7200, null, null)', '06:00'); | 66 assert_input_value_with_limits(initial, step, null, null, ['ArrowDown'], expec ted, expectedDisplayValue); | 
| 74 shouldBeEqualToString('stepUp("06:00", 3601, null, null)', '07:00'); | 67 } | 
| 75 shouldBeEqualToString('stepDown("06:00", 3601, null, null)', '05:00'); | 68 | 
| 76 shouldBeEqualToString('stepUp("06:00", 0, null, null)', '07:00'); | 69 // Hours, 1-12 | 
| 77 shouldBeEqualToString('stepDown("06:00", 0, null, null)', '05:00'); | 70 test(() => { | 
| 78 shouldBeEqualToString('stepUp("06:00", 86400, null, null)', '00:00'); | 71 assert_exists(window, 'internals'); | 
| 
yosin_UTC9
2017/01/13 07:13:52
You found new pattern. It is better than before.
 | |
| 79 shouldBeEqualToString('stepDown("06:00", 86400, null, null)', '00:00'); | 72 assert_exists(window, 'eventSender'); | 
| 80 shouldBeEqualToString('stepUp("06:00", 36000, null, null)', '07:00'); | 73 | 
| 81 shouldBeEqualToString('stepDown("06:00", 36000, null, null)', '05:00'); | 74 assert_input_value_after_up('07:00', 1, '08:00'); | 
| 82 shouldBeEqualToString('stepUp("06:00", 7200, "01:00", null)', '07:00'); | 75 assert_input_value_after_down('07:00', 1, '06:00'); | 
| 83 shouldBeEqualToString('stepDown("06:00", 7200, "01:00", null)', '05:00'); | 76 assert_input_value_after_up('11:00', 1, '00:00'); | 
| 84 shouldBeEqualToString('test("06:00", 7200, null, null, ["Delete", "ArrowUp"])', '02:00'); | 77 assert_input_value_after_down('00:00', 1, '11:00'); | 
| 85 shouldBeEqualToString('test("06:00", 7200, null, null, ["Delete", "ArrowDown"])' , '00:00'); | 78 assert_input_value_after_up('06:00', 7200, '08:00'); | 
| 86 shouldBeEqualToString('getUserAgentShadowTextContent(input)', '12:00 AM'); | 79 assert_input_value_after_down('06:00', 7200, '04:00'); | 
| 87 shouldBeEqualToString('test("06:00", 7200, "01:00", null, ["Delete", "ArrowUp"]) ', '01:00'); | 80 assert_input_value_after_up('10:00', 7200, '00:00'); | 
| 88 shouldBeEqualToString('test("06:00", 7200, "01:00", null, ["Delete", "ArrowDown" ])', '11:00'); | 81 assert_input_value_after_down('00:00', 7200, '10:00'); | 
| 89 shouldBeEqualToString('stepUp("17:00", 1, "17:00", "20:00")', '18:00'); | 82 assert_input_value_after_up('07:00', 7200, '08:00'); | 
| 90 shouldBeEqualToString('stepDown("17:00", 1, "17:00", "20:00")', '20:00'); | 83 assert_input_value_after_down('07:00', 7200, '06:00'); | 
| 91 shouldBeEqualToString('stepUp("17:00", 1, "15:00", "17:00")', '15:00'); | 84 assert_input_value_after_up('06:00', 3601, '07:00'); | 
| 92 shouldBeEqualToString('stepDown("17:00", 1, "15:00", "17:00")', '16:00'); | 85 assert_input_value_after_down('06:00', 3601, '05:00'); | 
| 93 shouldBeEqualToString('stepUp("15:00", 1, "17:00", "20:00")', '17:00'); | 86 assert_input_value_after_up('06:00', 0, '07:00'); | 
| 94 shouldBeEqualToString('stepDown("15:00", 1, "17:00", "20:00")', '20:00'); | 87 assert_input_value_after_down('06:00', 0, '05:00'); | 
| 95 shouldBeEqualToString('stepUp("15:00", 1, "13:00", "13:00")', '13:00'); | 88 assert_input_value_after_up('06:00', 86400, '00:00'); | 
| 96 shouldBeEqualToString('stepDown("15:00", 1, "13:00", "13:00")', '13:00'); | 89 assert_input_value_after_down('06:00', 86400, '00:00'); | 
| 97 shouldBeEqualToString('stepUp("12:00", 1, "12:00", "15:00")', '13:00'); | 90 assert_input_value_after_up('06:00', 36000, '07:00'); | 
| 98 shouldBeEqualToString('stepDown("12:00", 1, "12:00", "15:00")', '23:00'); | 91 assert_input_value_after_down('06:00', 36000, '05:00'); | 
| 99 shouldBeEqualToString('stepUp("15:00", 1, "12:00", "15:00")', '16:00'); | 92 assert_input_value_with_limits_after_up('06:00', 7200, '01:00', null, '07:00') ; | 
| 100 shouldBeEqualToString('stepDown("15:00", 1, "12:00", "15:00")', '14:00'); | 93 assert_input_value_with_limits_after_down('06:00', 7200, '01:00', null, '05:00 '); | 
| 101 shouldBeEqualToString('stepUp("12:00", 1, "10:00", "12:00")', '13:00'); | 94 assert_input_value_with_limits_after_deleteup('06:00', 7200, null, null, '02:0 0'); | 
| 102 shouldBeEqualToString('stepDown("12:00", 1, "10:00", "12:00")', '23:00'); | 95 assert_input_value_with_limits_after_deletedown('06:00', 7200, null, null, '00 :00', '12:00 AM'); | 
| 103 shouldBeEqualToString('stepUp("00:00", 1, "00:00", "03:00")', '01:00'); | 96 assert_input_value_with_limits_after_deleteup('06:00', 7200, '01:00', null, '0 1:00'); | 
| 104 shouldBeEqualToString('stepDown("00:00", 1, "00:00", "03:00")', '11:00'); | 97 assert_input_value_with_limits_after_deletedown('06:00', 7200, '01:00', null, '11:00'); | 
| 105 shouldBeEqualToString('stepUp("15:00", 1, "10:00", "15:00")', '16:00'); | 98 assert_input_value_with_limits_after_up('17:00', 1, '17:00', '20:00', '18:00') ; | 
| 106 shouldBeEqualToString('stepDown("10:00", 1, "10:00", "15:00")', '09:00'); | 99 assert_input_value_with_limits_after_down('17:00', 1, '17:00', '20:00', '20:00 '); | 
| 107 shouldBeEqualToString('stepUp("17:00", 7200, "17:00", "20:00")', '19:00'); | 100 assert_input_value_with_limits_after_up('17:00', 1, '15:00', '17:00', '15:00') ; | 
| 108 shouldBeEqualToString('stepDown("17:00", 7200, "17:00", "20:00")', '19:00'); | 101 assert_input_value_with_limits_after_down('17:00', 1, '15:00', '17:00', '16:00 '); | 
| 109 shouldBeEqualToString('stepUp("17:00", 7200, "17:00", "18:00")', '17:00'); | 102 assert_input_value_with_limits_after_up('15:00', 1, '17:00', '20:00', '17:00') ; | 
| 110 shouldBeEqualToString('stepDown("17:00", 7200, "17:00", "18:00")', '17:00'); | 103 assert_input_value_with_limits_after_down('15:00', 1, '17:00', '20:00', '20:00 '); | 
| 111 | 104 assert_input_value_with_limits_after_up('15:00', 1, '13:00', '13:00', '13:00') ; | 
| 112 debug('Hours, 0-11'); | 105 assert_input_value_with_limits_after_down('15:00', 1, '13:00', '13:00', '13:00 '); | 
| 113 setDateTimeFormat('KK:mm a'); | 106 assert_input_value_with_limits_after_up('12:00', 1, '12:00', '15:00', '13:00') ; | 
| 114 shouldBeEqualToString('stepUp("11:00", 1, null, null)', '00:00'); | 107 assert_input_value_with_limits_after_down('12:00', 1, '12:00', '15:00', '23:00 '); | 
| 115 shouldBeEqualToString('getUserAgentShadowTextContent(input)', '00:00 AM'); | 108 assert_input_value_with_limits_after_up('15:00', 1, '12:00', '15:00', '16:00') ; | 
| 116 shouldBeEqualToString('stepDown("00:00", 1, null, null)', '11:00'); | 109 assert_input_value_with_limits_after_down('15:00', 1, '12:00', '15:00', '14:00 '); | 
| 117 shouldBeEqualToString('getUserAgentShadowTextContent(input)', '11:00 AM'); | 110 assert_input_value_with_limits_after_up('12:00', 1, '10:00', '12:00', '13:00') ; | 
| 118 shouldBeEqualToString('stepUp("23:00", 1, null, null)', '12:00'); | 111 assert_input_value_with_limits_after_down('12:00', 1, '10:00', '12:00', '23:00 '); | 
| 119 shouldBeEqualToString('getUserAgentShadowTextContent(input)', '00:00 PM'); | 112 assert_input_value_with_limits_after_up('00:00', 1, '00:00', '03:00', '01:00') ; | 
| 120 shouldBeEqualToString('stepDown("12:00", 1, null, null)', '23:00'); | 113 assert_input_value_with_limits_after_down('00:00', 1, '00:00', '03:00', '11:00 '); | 
| 121 shouldBeEqualToString('getUserAgentShadowTextContent(input)', '11:00 PM'); | 114 assert_input_value_with_limits_after_up('15:00', 1, '10:00', '15:00', '16:00') ; | 
| 122 shouldBeEqualToString('test("06:00", 7200, null, null, ["Delete", "ArrowUp"])', '00:00'); | 115 assert_input_value_with_limits_after_down('10:00', 1, '10:00', '15:00', '09:00 '); | 
| 123 shouldBeEqualToString('test("06:00", 7200, null, null, ["Delete", "ArrowDown"])' , '10:00'); | 116 assert_input_value_with_limits_after_up('17:00', 7200, '17:00', '20:00', '19:0 0'); | 
| 124 shouldBeEqualToString('test("06:00", 7200, "01:00", null, ["Delete", "ArrowUp"]) ', '01:00'); | 117 assert_input_value_with_limits_after_down('17:00', 7200, '17:00', '20:00', '19 :00'); | 
| 125 shouldBeEqualToString('test("06:00", 7200, "01:00", null, ["Delete", "ArrowDown" ])', '11:00'); | 118 assert_input_value_with_limits_after_up('17:00', 7200, '17:00', '18:00', '17:0 0'); | 
| 126 shouldBeEqualToString('stepUp("17:00", 1, "17:00", "20:00")', '18:00'); | 119 assert_input_value_with_limits_after_down('17:00', 7200, '17:00', '18:00', '17 :00'); | 
| 127 shouldBeEqualToString('stepDown("17:00", 1, "17:00", "20:00")', '20:00'); | 120 }, 'Hours, 1-12'); | 
| 128 shouldBeEqualToString('stepUp("17:00", 1, "15:00", "17:00")', '15:00'); | 121 | 
| 129 shouldBeEqualToString('stepDown("17:00", 1, "15:00", "17:00")', '16:00'); | 122 // Hours, 0-11 | 
| 130 shouldBeEqualToString('stepUp("15:00", 1, "17:00", "20:00")', '17:00'); | 123 test(() => { | 
| 131 shouldBeEqualToString('stepDown("15:00", 1, "17:00", "20:00")', '20:00'); | 124 assert_exists(window, 'internals'); | 
| 132 shouldBeEqualToString('stepUp("15:00", 1, "13:00", "13:00")', '13:00'); | 125 assert_exists(window, 'eventSender'); | 
| 133 shouldBeEqualToString('stepDown("15:00", 1, "13:00", "13:00")', '13:00'); | 126 setDateTimeFormat('KK:mm a'); | 
| 134 shouldBeEqualToString('stepUp("12:00", 1, "12:00", "15:00")', '13:00'); | 127 | 
| 135 shouldBeEqualToString('stepDown("12:00", 1, "12:00", "15:00")', '15:00'); | 128 assert_input_value_after_up('11:00', 1, '00:00', '00:00 AM'); | 
| 136 shouldBeEqualToString('stepUp("15:00", 1, "12:00", "15:00")', '12:00'); | 129 assert_input_value_after_down('00:00', 1, '11:00', '11:00 AM'); | 
| 137 shouldBeEqualToString('stepDown("15:00", 1, "12:00", "15:00")', '14:00'); | 130 assert_input_value_after_up('23:00', 1, '12:00', '00:00 PM'); | 
| 138 shouldBeEqualToString('stepUp("12:00", 1, "10:00", "12:00")', '13:00'); | 131 assert_input_value_after_down('12:00', 1, '23:00', '11:00 PM'); | 
| 139 shouldBeEqualToString('stepDown("12:00", 1, "10:00", "12:00")', '23:00'); | 132 assert_input_value_with_limits_after_deleteup('06:00', 7200, null, null, '00:0 0'); | 
| 140 shouldBeEqualToString('stepUp("00:00", 1, "00:00", "03:00")', '01:00'); | 133 assert_input_value_with_limits_after_deletedown('06:00', 7200, null, null, '10 :00'); | 
| 141 shouldBeEqualToString('stepDown("00:00", 1, "00:00", "03:00")', '03:00'); | 134 assert_input_value_with_limits_after_deleteup('06:00', 7200, '01:00', null, '0 1:00'); | 
| 142 shouldBeEqualToString('stepUp("15:00", 1, "10:00", "15:00")', '16:00'); | 135 assert_input_value_with_limits_after_deletedown('06:00', 7200, '01:00', null, '11:00'); | 
| 143 shouldBeEqualToString('stepDown("10:00", 1, "10:00", "15:00")', '09:00'); | 136 assert_input_value_with_limits_after_up('17:00', 1, '17:00', '20:00', '18:00') ; | 
| 144 shouldBeEqualToString('stepUp("20:00", 7200, "17:00", "20:00")', '17:00'); | 137 assert_input_value_with_limits_after_down('17:00', 1, '17:00', '20:00', '20:00 '); | 
| 145 shouldBeEqualToString('stepDown("20:00", 7200, "17:00", "20:00")', '19:00'); | 138 assert_input_value_with_limits_after_up('17:00', 1, '15:00', '17:00', '15:00') ; | 
| 146 | 139 assert_input_value_with_limits_after_down('17:00', 1, '15:00', '17:00', '16:00 '); | 
| 147 debug('Hours, 0-23'); | 140 assert_input_value_with_limits_after_up('15:00', 1, '17:00', '20:00', '17:00') ; | 
| 148 setDateTimeFormat('HH:mm'); | 141 assert_input_value_with_limits_after_down('15:00', 1, '17:00', '20:00', '20:00 '); | 
| 149 shouldBeEqualToString('stepUp("07:00", 1, null, null)', '08:00'); | 142 assert_input_value_with_limits_after_up('15:00', 1, '13:00', '13:00', '13:00') ; | 
| 150 shouldBeEqualToString('stepDown("07:00", 1, null, null)', '06:00'); | 143 assert_input_value_with_limits_after_down('15:00', 1, '13:00', '13:00', '13:00 '); | 
| 151 shouldBeEqualToString('stepUp("23:00", 1, null, null)', '00:00'); | 144 assert_input_value_with_limits_after_up('12:00', 1, '12:00', '15:00', '13:00') ; | 
| 152 shouldBeEqualToString('stepDown("00:00", 1, null, null)', '23:00'); | 145 assert_input_value_with_limits_after_down('12:00', 1, '12:00', '15:00', '15:00 '); | 
| 153 shouldBeEqualToString('stepUp("06:00", 7200, null, null)', '08:00'); | 146 assert_input_value_with_limits_after_up('15:00', 1, '12:00', '15:00', '12:00') ; | 
| 154 shouldBeEqualToString('stepDown("06:00", 7200, null, null)', '04:00'); | 147 assert_input_value_with_limits_after_down('15:00', 1, '12:00', '15:00', '14:00 '); | 
| 155 shouldBeEqualToString('stepUp("22:00", 7200, null, null)', '00:00'); | 148 assert_input_value_with_limits_after_up('12:00', 1, '10:00', '12:00', '13:00') ; | 
| 156 shouldBeEqualToString('stepDown("00:00", 7200, null, null)', '22:00'); | 149 assert_input_value_with_limits_after_down('12:00', 1, '10:00', '12:00', '23:00 '); | 
| 157 shouldBeEqualToString('stepUp("07:00", 7200, null, null)', '08:00'); | 150 assert_input_value_with_limits_after_up('00:00', 1, '00:00', '03:00', '01:00') ; | 
| 158 shouldBeEqualToString('stepDown("07:00", 7200, null, null)', '06:00'); | 151 assert_input_value_with_limits_after_down('00:00', 1, '00:00', '03:00', '03:00 '); | 
| 159 shouldBeEqualToString('stepUp("06:00", 3601, null, null)', '07:00'); | 152 assert_input_value_with_limits_after_up('15:00', 1, '10:00', '15:00', '16:00') ; | 
| 160 shouldBeEqualToString('stepDown("06:00", 3601, null, null)', '05:00'); | 153 assert_input_value_with_limits_after_down('10:00', 1, '10:00', '15:00', '09:00 '); | 
| 161 shouldBeEqualToString('stepUp("06:00", 0, null, null)', '07:00'); | 154 assert_input_value_with_limits_after_up('20:00', 7200, '17:00', '20:00', '17:0 0'); | 
| 162 shouldBeEqualToString('stepDown("06:00", 0, null, null)', '05:00'); | 155 assert_input_value_with_limits_after_down('20:00', 7200, '17:00', '20:00', '19 :00'); | 
| 163 shouldBeEqualToString('stepUp("06:00", 86400, null, null)', '00:00'); | 156 }, 'Hours, 0-11'); | 
| 164 shouldBeEqualToString('stepDown("06:00", 86400, null, null)', '00:00'); | 157 | 
| 165 shouldBeEqualToString('stepUp("06:00", 36000, null, null)', '07:00'); | 158 // Hours, 0-23 | 
| 166 shouldBeEqualToString('stepDown("06:00", 36000, null, null)', '05:00'); | 159 test(() => { | 
| 167 shouldBeEqualToString('stepUp("06:00", 7200, "01:00", null)', '07:00'); | 160 assert_exists(window, 'internals'); | 
| 168 shouldBeEqualToString('stepDown("06:00", 7200, "01:00", null)', '05:00'); | 161 assert_exists(window, 'eventSender'); | 
| 169 shouldBeEqualToString('test("06:00", 7200, null, null, ["Delete", "ArrowUp"])', '00:00'); | 162 setDateTimeFormat('HH:mm'); | 
| 170 shouldBeEqualToString('getUserAgentShadowTextContent(input)', '00:00'); | 163 | 
| 171 shouldBeEqualToString('test("06:00", 7200, null, null, ["Delete", "ArrowDown"])' , '22:00'); | 164 assert_input_value_after_up('07:00', 1, '08:00'); | 
| 172 shouldBeEqualToString('test("06:00", 7200, "01:00", null, ["Delete", "ArrowUp"]) ', '01:00'); | 165 assert_input_value_after_down('07:00', 1, '06:00'); | 
| 173 shouldBeEqualToString('test("06:00", 7200, "01:00", null, ["Delete", "ArrowDown" ])', '23:00'); | 166 assert_input_value_after_up('23:00', 1, '00:00'); | 
| 174 shouldBeEqualToString('stepUp("17:00", 1, "17:00", "20:00")', '18:00'); | 167 assert_input_value_after_down('00:00', 1, '23:00'); | 
| 175 shouldBeEqualToString('stepDown("17:00", 1, "17:00", "20:00")', '20:00'); | 168 assert_input_value_after_up('06:00', 7200, '08:00'); | 
| 176 shouldBeEqualToString('stepUp("17:00", 1, "15:00", "17:00")', '15:00'); | 169 assert_input_value_after_down('06:00', 7200, '04:00'); | 
| 177 shouldBeEqualToString('stepDown("17:00", 1, "15:00", "17:00")', '16:00'); | 170 assert_input_value_after_up('22:00', 7200, '00:00'); | 
| 178 shouldBeEqualToString('stepUp("15:00", 1, "17:00", "20:00")', '17:00'); | 171 assert_input_value_after_down('00:00', 7200, '22:00'); | 
| 179 shouldBeEqualToString('stepDown("15:00", 1, "17:00", "20:00")', '20:00'); | 172 assert_input_value_after_up('07:00', 7200, '08:00'); | 
| 180 shouldBeEqualToString('stepUp("15:00", 1, "13:00", "13:00")', '13:00'); | 173 assert_input_value_after_down('07:00', 7200, '06:00'); | 
| 181 shouldBeEqualToString('stepDown("15:00", 1, "13:00", "13:00")', '13:00'); | 174 assert_input_value_after_up('06:00', 3601, '07:00'); | 
| 182 shouldBeEqualToString('stepUp("00:00", 1, "00:00", "03:00")', '01:00'); | 175 assert_input_value_after_down('06:00', 3601, '05:00'); | 
| 183 shouldBeEqualToString('stepDown("00:00", 1, "00:00", "03:00")', '03:00'); | 176 assert_input_value_after_up('06:00', 0, '07:00'); | 
| 184 shouldBeEqualToString('stepUp("03:00", 1, "00:00", "03:00")', '00:00'); | 177 assert_input_value_after_down('06:00', 0, '05:00'); | 
| 185 shouldBeEqualToString('stepDown("03:00", 1, "00:00", "03:00")', '02:00'); | 178 assert_input_value_after_up('06:00', 86400, '00:00'); | 
| 186 shouldBeEqualToString('stepUp("12:00", 1, "10:00", "12:00")', '10:00'); | 179 assert_input_value_after_down('06:00', 86400, '00:00'); | 
| 187 shouldBeEqualToString('stepDown("12:00", 1, "10:00", "12:00")', '11:00'); | 180 assert_input_value_after_up('06:00', 36000, '07:00'); | 
| 188 shouldBeEqualToString('stepUp("00:00", 1, "00:00", "03:00")', '01:00'); | 181 assert_input_value_after_down('06:00', 36000, '05:00'); | 
| 189 shouldBeEqualToString('stepDown("00:00", 1, "00:00", "03:00")', '03:00'); | 182 assert_input_value_with_limits_after_up('06:00', 7200, '01:00', null, '07:00') ; | 
| 190 shouldBeEqualToString('stepUp("15:00", 1, "10:00", "15:00")', '10:00'); | 183 assert_input_value_with_limits_after_down('06:00', 7200, '01:00', null, '05:00 '); | 
| 191 shouldBeEqualToString('stepDown("10:00", 1, "10:00", "15:00")', '15:00'); | 184 assert_input_value_with_limits_after_deleteup('06:00', 7200, null, null, '00:0 0', '00:00'); | 
| 192 shouldBeEqualToString('stepUp("20:00", 7200, "17:00", "20:00")', '17:00'); | 185 assert_input_value_with_limits_after_deletedown('06:00', 7200, null, null, '22 :00'); | 
| 193 shouldBeEqualToString('stepDown("20:00", 7200, "17:00", "20:00")', '19:00'); | 186 assert_input_value_with_limits_after_deleteup('06:00', 7200, '01:00', null, '0 1:00'); | 
| 194 | 187 assert_input_value_with_limits_after_deletedown('06:00', 7200, '01:00', null, '23:00'); | 
| 195 debug('Hours, 1-24'); | 188 assert_input_value_with_limits_after_up('17:00', 1, '17:00', '20:00', '18:00') ; | 
| 196 setDateTimeFormat('kk:mm'); | 189 assert_input_value_with_limits_after_down('17:00', 1, '17:00', '20:00', '20:00 '); | 
| 197 shouldBeEqualToString('stepUp("11:00", 1, null, null)', '12:00'); | 190 assert_input_value_with_limits_after_up('17:00', 1, '15:00', '17:00', '15:00') ; | 
| 198 shouldBeEqualToString('getUserAgentShadowTextContent(input)', '12:00'); | 191 assert_input_value_with_limits_after_down('17:00', 1, '15:00', '17:00', '16:00 '); | 
| 199 shouldBeEqualToString('stepDown("00:00", 1, null, null)', '23:00'); | 192 assert_input_value_with_limits_after_up('15:00', 1, '17:00', '20:00', '17:00') ; | 
| 200 shouldBeEqualToString('getUserAgentShadowTextContent(input)', '23:00'); | 193 assert_input_value_with_limits_after_down('15:00', 1, '17:00', '20:00', '20:00 '); | 
| 201 shouldBeEqualToString('stepUp("23:00", 1, null, null)', '00:00'); | 194 assert_input_value_with_limits_after_up('15:00', 1, '13:00', '13:00', '13:00') ; | 
| 202 shouldBeEqualToString('getUserAgentShadowTextContent(input)', '24:00'); | 195 assert_input_value_with_limits_after_down('15:00', 1, '13:00', '13:00', '13:00 '); | 
| 203 shouldBeEqualToString('stepDown("12:00", 1, null, null)', '11:00'); | 196 assert_input_value_with_limits_after_up('00:00', 1, '00:00', '03:00', '01:00') ; | 
| 204 shouldBeEqualToString('getUserAgentShadowTextContent(input)', '11:00'); | 197 assert_input_value_with_limits_after_down('00:00', 1, '00:00', '03:00', '03:00 '); | 
| 205 shouldBeEqualToString('test("06:00", 7200, null, null, ["Delete", "ArrowUp"])', '02:00'); | 198 assert_input_value_with_limits_after_up('03:00', 1, '00:00', '03:00', '00:00') ; | 
| 206 shouldBeEqualToString('test("06:00", 7200, null, null, ["Delete", "ArrowDown"])' , '00:00'); | 199 assert_input_value_with_limits_after_down('03:00', 1, '00:00', '03:00', '02:00 '); | 
| 207 shouldBeEqualToString('test("06:00", 7200, "01:00", null, ["Delete", "ArrowUp"]) ', '01:00'); | 200 assert_input_value_with_limits_after_up('12:00', 1, '10:00', '12:00', '10:00') ; | 
| 208 shouldBeEqualToString('test("06:00", 7200, "01:00", null, ["Delete", "ArrowDown" ])', '23:00'); | 201 assert_input_value_with_limits_after_down('12:00', 1, '10:00', '12:00', '11:00 '); | 
| 209 shouldBeEqualToString('stepUp("17:00", 1, "17:00", "20:00")', '18:00'); | 202 assert_input_value_with_limits_after_up('00:00', 1, '00:00', '03:00', '01:00') ; | 
| 210 shouldBeEqualToString('stepDown("17:00", 1, "17:00", "20:00")', '20:00'); | 203 assert_input_value_with_limits_after_down('00:00', 1, '00:00', '03:00', '03:00 '); | 
| 211 shouldBeEqualToString('stepUp("17:00", 1, "15:00", "17:00")', '15:00'); | 204 assert_input_value_with_limits_after_up('15:00', 1, '10:00', '15:00', '10:00') ; | 
| 212 shouldBeEqualToString('stepDown("17:00", 1, "15:00", "17:00")', '16:00'); | 205 assert_input_value_with_limits_after_down('10:00', 1, '10:00', '15:00', '15:00 '); | 
| 213 shouldBeEqualToString('stepUp("15:00", 1, "17:00", "20:00")', '17:00'); | 206 assert_input_value_with_limits_after_up('20:00', 7200, '17:00', '20:00', '17:0 0'); | 
| 214 shouldBeEqualToString('stepDown("15:00", 1, "17:00", "20:00")', '20:00'); | 207 assert_input_value_with_limits_after_down('20:00', 7200, '17:00', '20:00', '19 :00'); | 
| 215 shouldBeEqualToString('stepUp("15:00", 1, "13:00", "13:00")', '13:00'); | 208 }, 'Hours, 0-23'); | 
| 216 shouldBeEqualToString('stepDown("15:00", 1, "13:00", "13:00")', '13:00'); | 209 | 
| 217 shouldBeEqualToString('stepUp("00:00", 1, "00:00", "03:00")', '01:00'); | 210 // Hours, 1-24 | 
| 218 shouldBeEqualToString('stepDown("00:00", 1, "00:00", "03:00")', '23:00'); | 211 test(() => { | 
| 219 shouldBeEqualToString('stepUp("03:00", 1, "00:00", "03:00")', '04:00'); | 212 assert_exists(window, 'internals'); | 
| 220 shouldBeEqualToString('stepDown("03:00", 1, "00:00", "03:00")', '02:00'); | 213 assert_exists(window, 'eventSender'); | 
| 221 shouldBeEqualToString('stepUp("12:00", 1, "10:00", "12:00")', '10:00'); | 214 setDateTimeFormat('kk:mm'); | 
| 222 shouldBeEqualToString('stepDown("12:00", 1, "10:00", "12:00")', '11:00'); | 215 | 
| 223 shouldBeEqualToString('stepUp("00:00", 1, "00:00", "03:00")', '01:00'); | 216 assert_input_value_after_up('11:00', 1, '12:00', '12:00'); | 
| 224 shouldBeEqualToString('stepDown("00:00", 1, "00:00", "03:00")', '23:00'); | 217 assert_input_value_after_down('00:00', 1, '23:00', '23:00'); | 
| 225 shouldBeEqualToString('stepUp("15:00", 1, "10:00", "15:00")', '10:00'); | 218 assert_input_value_after_up('23:00', 1, '00:00', '24:00'); | 
| 226 shouldBeEqualToString('stepDown("10:00", 1, "10:00", "15:00")', '15:00'); | 219 assert_input_value_after_down('12:00', 1, '11:00', '11:00'); | 
| 227 shouldBeEqualToString('stepUp("17:00", 7200, "17:00", "20:00")', '19:00'); | 220 assert_input_value_with_limits_after_deleteup('06:00', 7200, null, null, '02:0 0'); | 
| 228 shouldBeEqualToString('stepDown("17:00", 7200, "17:00", "20:00")', '19:00'); | 221 assert_input_value_with_limits_after_deletedown('06:00', 7200, null, null, '00 :00'); | 
| 229 shouldBeEqualToString('stepUp("17:00", 7200, "17:00", "18:00")', '17:00'); | 222 assert_input_value_with_limits_after_deleteup('06:00', 7200, '01:00', null, '0 1:00'); | 
| 230 shouldBeEqualToString('stepDown("17:00", 7200, "17:00", "18:00")', '17:00'); | 223 assert_input_value_with_limits_after_deletedown('06:00', 7200, '01:00', null, '23:00'); | 
| 231 | 224 assert_input_value_with_limits_after_up('17:00', 1, '17:00', '20:00', '18:00') ; | 
| 232 setDateTimeFormat(''); | 225 assert_input_value_with_limits_after_down('17:00', 1, '17:00', '20:00', '20:00 '); | 
| 233 debug(''); | 226 assert_input_value_with_limits_after_up('17:00', 1, '15:00', '17:00', '15:00') ; | 
| 234 document.body.removeChild(input); | 227 assert_input_value_with_limits_after_down('17:00', 1, '15:00', '17:00', '16:00 '); | 
| 228 assert_input_value_with_limits_after_up('15:00', 1, '17:00', '20:00', '17:00') ; | |
| 229 assert_input_value_with_limits_after_down('15:00', 1, '17:00', '20:00', '20:00 '); | |
| 230 assert_input_value_with_limits_after_up('15:00', 1, '13:00', '13:00', '13:00') ; | |
| 231 assert_input_value_with_limits_after_down('15:00', 1, '13:00', '13:00', '13:00 '); | |
| 232 assert_input_value_with_limits_after_up('00:00', 1, '00:00', '03:00', '01:00') ; | |
| 233 assert_input_value_with_limits_after_down('00:00', 1, '00:00', '03:00', '23:00 '); | |
| 234 assert_input_value_with_limits_after_up('03:00', 1, '00:00', '03:00', '04:00') ; | |
| 235 assert_input_value_with_limits_after_down('03:00', 1, '00:00', '03:00', '02:00 '); | |
| 236 assert_input_value_with_limits_after_up('12:00', 1, '10:00', '12:00', '10:00') ; | |
| 237 assert_input_value_with_limits_after_down('12:00', 1, '10:00', '12:00', '11:00 '); | |
| 238 assert_input_value_with_limits_after_up('00:00', 1, '00:00', '03:00', '01:00') ; | |
| 239 assert_input_value_with_limits_after_down('00:00', 1, '00:00', '03:00', '23:00 '); | |
| 240 assert_input_value_with_limits_after_up('15:00', 1, '10:00', '15:00', '10:00') ; | |
| 241 assert_input_value_with_limits_after_down('10:00', 1, '10:00', '15:00', '15:00 '); | |
| 242 assert_input_value_with_limits_after_up('17:00', 7200, '17:00', '20:00', '19:0 0'); | |
| 243 assert_input_value_with_limits_after_down('17:00', 7200, '17:00', '20:00', '19 :00'); | |
| 244 assert_input_value_with_limits_after_up('17:00', 7200, '17:00', '18:00', '17:0 0'); | |
| 245 assert_input_value_with_limits_after_down('17:00', 7200, '17:00', '18:00', '17 :00'); | |
| 246 }, 'Hours, 1-24'); | |
| 235 </script> | 247 </script> | 
| 236 </body> | 248 </body> | 
| 237 </html> | 249 </html> | 
| OLD | NEW |