diff options
Diffstat (limited to 'js/src/tests/js1_5/Date/regress-301738-01.js')
-rw-r--r-- | js/src/tests/js1_5/Date/regress-301738-01.js | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/js/src/tests/js1_5/Date/regress-301738-01.js b/js/src/tests/js1_5/Date/regress-301738-01.js new file mode 100644 index 000000000..8f5ae7d30 --- /dev/null +++ b/js/src/tests/js1_5/Date/regress-301738-01.js @@ -0,0 +1,97 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 301738; +var summary = 'Date parse compatibilty with MSIE'; +var actual = ''; +var expect = ''; + +printBugNumber(BUGNUMBER); +printStatus (summary); + +/* + Case 1. The input string contains an English month name. + The form of the string can be month f l, or f month l, or + f l month which each evaluate to the same date. + If f and l are both greater than or equal to 70, or + both less than 70, the date is invalid. + The year is taken to be the greater of the values f, l. + If the year is greater than or equal to 70 and less than 100, + it is considered to be the number of years after 1900. +*/ + +var month = 'January'; +var f; +var l; + +f = l = 0; +expect = true; + +actual = isNaN(new Date(month + ' ' + f + ' ' + l)); +reportCompare(expect, actual, 'January 0 0 is invalid'); + +actual = isNaN(new Date(f + ' ' + l + ' ' + month)); +reportCompare(expect, actual, '0 0 January is invalid'); + +actual = isNaN(new Date(f + ' ' + month + ' ' + l)); +reportCompare(expect, actual, '0 January 0 is invalid'); + +f = l = 70; + +actual = isNaN(new Date(month + ' ' + f + ' ' + l)); +reportCompare(expect, actual, 'January 70 70 is invalid'); + +actual = isNaN(new Date(f + ' ' + l + ' ' + month)); +reportCompare(expect, actual, '70 70 January is invalid'); + +actual = isNaN(new Date(f + ' ' + month + ' ' + l)); +reportCompare(expect, actual, '70 January 70 is invalid'); + +f = 100; +l = 15; + +// year, month, day +expect = new Date(f, 0, l).toString(); + +actual = new Date(month + ' ' + f + ' ' + l).toString(); +reportCompare(expect, actual, 'month f l'); + +actual = new Date(f + ' ' + l + ' ' + month).toString(); +reportCompare(expect, actual, 'f l month'); + +actual = new Date(f + ' ' + month + ' ' + l).toString(); +reportCompare(expect, actual, 'f month l'); + +f = 80; +l = 15; + +// year, month, day +expect = (new Date(f, 0, l)).toString(); + +actual = (new Date(month + ' ' + f + ' ' + l)).toString(); +reportCompare(expect, actual, 'month f l'); + +actual = (new Date(f + ' ' + l + ' ' + month)).toString(); +reportCompare(expect, actual, 'f l month'); + +actual = (new Date(f + ' ' + month + ' ' + l)).toString(); +reportCompare(expect, actual, 'f month l'); + +f = 2040; +l = 15; + +// year, month, day +expect = (new Date(f, 0, l)).toString(); + +actual = (new Date(month + ' ' + f + ' ' + l)).toString(); +reportCompare(expect, actual, 'month f l'); + +actual = (new Date(f + ' ' + l + ' ' + month)).toString(); +reportCompare(expect, actual, 'f l month'); + +actual = (new Date(f + ' ' + month + ' ' + l)).toString(); +reportCompare(expect, actual, 'f month l'); + |