Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(137)

Side by Side Diff: LayoutTests/fast/forms/datetimelocal/input-valueasnumber-datetimelocal.html

Issue 149413004: HTMLInputElement.valueAsNumber compliance (NaN handling.) (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 &lt;input type=datetime-local>.'); 10 description('Tests for .valueAsNumber with &lt;input type=datetime-local>.');
(...skipping 13 matching lines...) Expand all
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>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698