| 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 <div id="console"></div> | 8 <div id="console"></div> |
| 9 <script> | 9 <script> |
| 10 description('Tests for .valueAsNumber with <input type=datetime-local>.'); | 10 description('Tests for .valueAsNumber with <input type=datetime-local>.'); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 date.setUTCFullYear(year); | 24 date.setUTCFullYear(year); |
| 25 input.valueAsNumber = date.getTime(); | 25 input.valueAsNumber = date.getTime(); |
| 26 return input.value; | 26 return input.value; |
| 27 } | 27 } |
| 28 | 28 |
| 29 shouldBe('valueAsNumberFor("")', 'Number.NaN'); | 29 shouldBe('valueAsNumberFor("")', 'Number.NaN'); |
| 30 shouldBe('valueAsNumberFor("1969-12-31T12:34:56.789")', 'Date.UTC(1969, 11, 31,
12, 34, 56, 789)'); | 30 shouldBe('valueAsNumberFor("1969-12-31T12:34:56.789")', 'Date.UTC(1969, 11, 31,
12, 34, 56, 789)'); |
| 31 shouldBe('valueAsNumberFor("1970-01-01T00:00:00.000")', 'Date.UTC(1970, 0, 1, 0,
0, 0)'); | 31 shouldBe('valueAsNumberFor("1970-01-01T00:00:00.000")', 'Date.UTC(1970, 0, 1, 0,
0, 0)'); |
| 32 shouldBe('valueAsNumberFor("2009-12-22T11:32:11")', 'Date.UTC(2009, 11, 22, 11,
32, 11)'); | 32 shouldBe('valueAsNumberFor("2009-12-22T11:32:11")', 'Date.UTC(2009, 11, 22, 11,
32, 11)'); |
| 33 | 33 |
| 34 shouldBe('setValueAsNumberAndGetValue(1969, 11, 1, 0, 0, 0, 0)', '"1969-12-01T00
:00"'); | 34 shouldBeEqualToString('setValueAsNumberAndGetValue(1969, 11, 1, 0, 0, 0, 0)', '1
969-12-01T00:00'); |
| 35 shouldBe('setValueAsNumberAndGetValue(1970, 0, 1, 10, 1, 0, 100)', '"1970-01-01T
10:01:00.100"'); | 35 shouldBeEqualToString('setValueAsNumberAndGetValue(1970, 0, 1, 10, 1, 0, 100)',
'1970-01-01T10:01:00.100'); |
| 36 shouldBe('setValueAsNumberAndGetValue(2009, 11, 31, 23, 59, 59, 999)', '"2009-12
-31T23:59:59.999"'); | 36 shouldBeEqualToString('setValueAsNumberAndGetValue(2009, 11, 31, 23, 59, 59, 999
)', '2009-12-31T23:59:59.999'); |
| 37 shouldBe('setValueAsNumberAndGetValue(10000, 0, 1, 12, 0, 1, 0)', '"10000-01-01T
12:00:01"'); | 37 shouldBeEqualToString('setValueAsNumberAndGetValue(10000, 0, 1, 12, 0, 1, 0)', '
10000-01-01T12:00:01'); |
| 38 | 38 |
| 39 shouldBe('setValueAsNumberAndGetValue(-1, 0, 1, 0, 0, 0, 0)', '""'); | 39 shouldBeEqualToString('setValueAsNumberAndGetValue(-1, 0, 1, 0, 0, 0, 0)', ''); |
| 40 shouldBe('setValueAsNumberAndGetValue(0, 11, 31, 23, 59, 59, 999)', '""'); | 40 shouldBeEqualToString('setValueAsNumberAndGetValue(0, 11, 31, 23, 59, 59, 999)',
''); |
| 41 shouldBe('setValueAsNumberAndGetValue(1, 0, 1, 0, 0, 0, 0)', '"0001-01-01T00:00"
'); | 41 shouldBeEqualToString('setValueAsNumberAndGetValue(1, 0, 1, 0, 0, 0, 0)', '0001-
01-01T00:00'); |
| 42 shouldBe('setValueAsNumberAndGetValue(275760, 8, 12, 0, 0, 0, 1)', '"275760-09-1
2T00:00:00.001"'); | 42 shouldBeEqualToString('setValueAsNumberAndGetValue(275760, 8, 12, 0, 0, 0, 1)',
'275760-09-12T00:00:00.001'); |
| 43 shouldBe('setValueAsNumberAndGetValue(275760, 8, 13, 0, 0, 0, 0)', '"275760-09-1
3T00:00"'); | 43 shouldBeEqualToString('setValueAsNumberAndGetValue(275760, 8, 13, 0, 0, 0, 0)',
'275760-09-13T00:00'); |
| 44 | 44 |
| 45 debug('Tests to set invalid values to valueAsNumber:'); | 45 debug('Tests to set invalid values to valueAsNumber:'); |
| 46 shouldBe('input.value = ""; input.valueAsNumber = null; input.value', '"1970-01-
01T00:00"'); | 46 shouldBe('input.value = ""; input.valueAsNumber = null; input.value', '"1970-01-
01T00:00"'); |
| 47 shouldThrow('input.valueAsNumber = "foo"', '"NotSupportedError: Failed to set th
e \'valueAsNumber\' property on \'HTMLInputElement\': The value provided is not
a number."'); | 47 shouldBeNaN('input.valueAsNumber = "foo"; input.valueAsNumber'); |
| 48 shouldThrow('input.valueAsNumber = NaN', '"NotSupportedError: Failed to set the
\'valueAsNumber\' property on \'HTMLInputElement\': The value provided is not a
number."'); | 48 shouldBeEqualToString('input.valueAsNumber = "foo"; input.value', ''); |
| 49 shouldThrow('input.valueAsNumber = Number.NaN', '"NotSupportedError: Failed to s
et the \'valueAsNumber\' property on \'HTMLInputElement\': The value provided is
not a number."'); | 49 shouldBeNaN('input.valueAsNumber = NaN; input.valueAsNumber'); |
| 50 shouldThrow('input.valueAsNumber = Infinity', '"NotSupportedError: Failed to set
the \'valueAsNumber\' property on \'HTMLInputElement\': The value provided is i
nfinite."'); | 50 shouldBeEqualToString('input.valueAsNumber = NaN; input.value', ''); |
| 51 shouldThrow('input.valueAsNumber = Number.POSITIVE_INFINITY', '"NotSupportedErro
r: Failed to set the \'valueAsNumber\' property on \'HTMLInputElement\': The val
ue provided is infinite."'); | 51 shouldBeNaN('input.valueAsNumber = Number.NaN; input.valueAsNumber'); |
| 52 shouldThrow('input.valueAsNumber = Number.NEGATIVE_INFINITY', '"NotSupportedErro
r: Failed to set the \'valueAsNumber\' property on \'HTMLInputElement\': The val
ue provided is infinite."'); | 52 shouldBeEqualToString('input.valueAsNumber = Number.NaN; input.value', ''); |
| 53 shouldThrow('input.valueAsNumber = Date.UTC(275760, 8, 13, 0, 0, 0, 1)', '"NotSu
pportedError: Failed to set the \'valueAsNumber\' property on \'HTMLInputElement
\': The value provided is not a number."'); | 53 shouldThrow('input.valueAsNumber = Infinity', '"TypeError: Failed to set the \'v
alueAsNumber\' property on \'HTMLInputElement\': The value provided is infinite.
"'); |
| 54 shouldThrow('input.valueAsNumber = Number.POSITIVE_INFINITY', '"TypeError: Faile
d to set the \'valueAsNumber\' property on \'HTMLInputElement\': The value provi
ded is infinite."'); |
| 55 shouldThrow('input.valueAsNumber = Number.NEGATIVE_INFINITY', '"TypeError: Faile
d to set the \'valueAsNumber\' property on \'HTMLInputElement\': The value provi
ded is infinite."'); |
| 56 shouldBeNaN('input.valueAsNumber = Date.UTC(275760, 8, 13, 0, 0, 0, 1); input.va
lueAsNumber'); |
| 57 shouldBeEqualToString('input.valueAsNumber = Date.UTC(275760, 8, 13, 0, 0, 0, 1)
; input.value', ''); |
| 54 | 58 |
| 55 debug('Step attribute value and string representation:'); | 59 debug('Step attribute value and string representation:'); |
| 56 // If the step attribute value is 1 second and the second part is 0, we should s
how the second part. | 60 // If the step attribute value is 1 second and the second part is 0, we should s
how the second part. |
| 57 shouldBe('input.step = "1"; setValueAsNumberAndGetValue(2010, 0, 21, 0, 0, 0, 0)
', '"2010-01-21T00:00:00"'); | 61 shouldBe('input.step = "1"; setValueAsNumberAndGetValue(2010, 0, 21, 0, 0, 0, 0)
', '"2010-01-21T00:00:00"'); |
| 58 // If the step attribute value is 0.001 second and the millisecond part is 0, we
should show the millisecond part. | 62 // If the step attribute value is 0.001 second and the millisecond part is 0, we
should show the millisecond part. |
| 59 shouldBe('input.step = "0.001"; setValueAsNumberAndGetValue(2010, 0, 21, 0, 0, 0
, 0)', '"2010-01-21T00:00:00.000"'); | 63 shouldBe('input.step = "0.001"; setValueAsNumberAndGetValue(2010, 0, 21, 0, 0, 0
, 0)', '"2010-01-21T00:00:00.000"'); |
| 60 </script> | 64 </script> |
| 61 </body> | 65 </body> |
| 62 </html> | 66 </html> |
| OLD | NEW |