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 |