1425bb815Sopenharmony_ci// Copyright JS Foundation and other contributors, http://js.foundation 2425bb815Sopenharmony_ci// 3425bb815Sopenharmony_ci// Licensed under the Apache License, Version 2.0 (the "License"); 4425bb815Sopenharmony_ci// you may not use this file except in compliance with the License. 5425bb815Sopenharmony_ci// You may obtain a copy of the License at 6425bb815Sopenharmony_ci// 7425bb815Sopenharmony_ci// http://www.apache.org/licenses/LICENSE-2.0 8425bb815Sopenharmony_ci// 9425bb815Sopenharmony_ci// Unless required by applicable law or agreed to in writing, software 10425bb815Sopenharmony_ci// distributed under the License is distributed on an "AS IS" BASIS 11425bb815Sopenharmony_ci// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12425bb815Sopenharmony_ci// See the License for the specific language governing permissions and 13425bb815Sopenharmony_ci// limitations under the License. 14425bb815Sopenharmony_ci 15425bb815Sopenharmony_civar wrongFormats = ["", 16425bb815Sopenharmony_ci "2", 17425bb815Sopenharmony_ci "20", 18425bb815Sopenharmony_ci "201", 19425bb815Sopenharmony_ci "2015-", 20425bb815Sopenharmony_ci "2015-01-", 21425bb815Sopenharmony_ci "2015-01-01-", 22425bb815Sopenharmony_ci "qwerty", 23425bb815Sopenharmony_ci "2015-01-01T", 24425bb815Sopenharmony_ci "2015-01-01T1:1", 25425bb815Sopenharmony_ci "2015-01-01T01", 26425bb815Sopenharmony_ci "2015-01-01T01", 27425bb815Sopenharmony_ci "2015-01-01T01:01F", 28425bb815Sopenharmony_ci "T2015", 29425bb815Sopenharmony_ci "2015-01-01Z", 30425bb815Sopenharmony_ci "2015-01-01+01:00", 31425bb815Sopenharmony_ci "2015-01-01T00:00+01", 32425bb815Sopenharmony_ci "2015-01-01T00:00+1", 33425bb815Sopenharmony_ci "2015-01-01T00:00-01", 34425bb815Sopenharmony_ci "2015-01-01T00:00.000", 35425bb815Sopenharmony_ci "2015-01-01T00:00:", 36425bb815Sopenharmony_ci "2015-01-01T00:", 37425bb815Sopenharmony_ci "2015-01-01T00:00:00.1", 38425bb815Sopenharmony_ci "2015-01-01T00:00:00.01", 39425bb815Sopenharmony_ci "2015-01-01T24:01:00.000", 40425bb815Sopenharmony_ci "2015-01-01T24:00:01.000", 41425bb815Sopenharmony_ci "2015-01-01T24:00:00.001", 42425bb815Sopenharmony_ci "2015-01-01T00:00+01:00Z", 43425bb815Sopenharmony_ci "2015/01/01", 44425bb815Sopenharmony_ci "2015-01-32", 45425bb815Sopenharmony_ci "2015--1", 46425bb815Sopenharmony_ci "2015-13", 47425bb815Sopenharmony_ci "2015-01--1", 48425bb815Sopenharmony_ci "-215", 49425bb815Sopenharmony_ci "-215-01-01", 50425bb815Sopenharmony_ci "2015-01-00", 51425bb815Sopenharmony_ci "2015-01-01T25:00", 52425bb815Sopenharmony_ci "2015-01-01T00:60", 53425bb815Sopenharmony_ci "2015-01-01T-1:00", 54425bb815Sopenharmony_ci "2015-01-01T00:-1", 55425bb815Sopenharmony_ci "2e+3", 56425bb815Sopenharmony_ci "+2015-01-01", 57425bb815Sopenharmony_ci "-2015-01-01", 58425bb815Sopenharmony_ci "+02015-01-01", 59425bb815Sopenharmony_ci "-02015-01-01", 60425bb815Sopenharmony_ci "002015-01-01", 61425bb815Sopenharmony_ci "+0002015-01-01", 62425bb815Sopenharmony_ci "-0002015-01-01", 63425bb815Sopenharmony_ci "2015-01T00:00:00.000-03X00", 64425bb815Sopenharmony_ci "2015-01-01T00-03:00", 65425bb815Sopenharmony_ci "Fri Jan 01 1 00:00:00 GMT+0000", 66425bb815Sopenharmony_ci "Fri Jan 01 11 00:00:00 GMT+0000", 67425bb815Sopenharmony_ci "Fri Jan 01 111 00:00:00 GMT+0000", 68425bb815Sopenharmony_ci "Fri Jan 01 1234567 00:00:00 GMT+0000", 69425bb815Sopenharmony_ci "Fri Jan 01 +1000 00:00:00 GMT+0000", 70425bb815Sopenharmony_ci "Fri Jan 01 -1 00:00:00 GMT+0000", 71425bb815Sopenharmony_ci "Fri Jan 01 -11 00:00:00 GMT+0000", 72425bb815Sopenharmony_ci "Fri Jan 01 -111 00:00:00 GMT+0000", 73425bb815Sopenharmony_ci "Fri Jan 01 -1234567 00:00:00 GMT+0000", 74425bb815Sopenharmony_ci "Thu Apr 10 1997"]; 75425bb815Sopenharmony_ci 76425bb815Sopenharmony_cifor (i in wrongFormats) { 77425bb815Sopenharmony_ci var d = Date.parse(wrongFormats[i]); 78425bb815Sopenharmony_ci assert (isNaN(d)); 79425bb815Sopenharmony_ci} 80425bb815Sopenharmony_ci 81425bb815Sopenharmony_civar d; 82425bb815Sopenharmony_ci 83425bb815Sopenharmony_cid = Date.parse(undefined); 84425bb815Sopenharmony_ciassert (isNaN(d)); 85425bb815Sopenharmony_ci 86425bb815Sopenharmony_cid = Date.parse({}); 87425bb815Sopenharmony_ciassert (isNaN(d)); 88425bb815Sopenharmony_ci 89425bb815Sopenharmony_cid = Date.parse(2000 + 15); 90425bb815Sopenharmony_ciassert (d == 1420070400000); 91425bb815Sopenharmony_ci 92425bb815Sopenharmony_cid = Date.parse("2015"); 93425bb815Sopenharmony_ciassert (d == 1420070400000); 94425bb815Sopenharmony_ci 95425bb815Sopenharmony_cid = Date.parse("2015-01"); 96425bb815Sopenharmony_ciassert (d == 1420070400000); 97425bb815Sopenharmony_ci 98425bb815Sopenharmony_cid = Date.parse("2015-01-01"); 99425bb815Sopenharmony_ciassert (d == 1420070400000); 100425bb815Sopenharmony_ci 101425bb815Sopenharmony_cid = Date.parse("2015-01T00:00"); 102425bb815Sopenharmony_ciassert (d == 1420070400000); 103425bb815Sopenharmony_ci 104425bb815Sopenharmony_cid = Date.parse("2015-01T00:00:00"); 105425bb815Sopenharmony_ciassert (d == 1420070400000); 106425bb815Sopenharmony_ci 107425bb815Sopenharmony_cid = Date.parse("2015-01T00:00:00.000"); 108425bb815Sopenharmony_ciassert (d == 1420070400000); 109425bb815Sopenharmony_ci 110425bb815Sopenharmony_cid = Date.parse("2015-01T24:00:00.000"); 111425bb815Sopenharmony_ciassert (d == 1420156800000); 112425bb815Sopenharmony_ci 113425bb815Sopenharmony_cid = Date.parse("2015-01T00:00:00.000+03:00"); 114425bb815Sopenharmony_ciassert (d == 1420059600000); 115425bb815Sopenharmony_ci 116425bb815Sopenharmony_cid = Date.parse("2015-01T00:00:00.000-03:00"); 117425bb815Sopenharmony_ciassert (d == 1420081200000); 118425bb815Sopenharmony_ci 119425bb815Sopenharmony_cid = Date.parse("2015-07-03T14:35:43.123+01:30"); 120425bb815Sopenharmony_ciassert (d == 1435928743123); 121425bb815Sopenharmony_ci 122425bb815Sopenharmony_ciassert (Date.parse("-271821-04-20T00:00:00.000Z") == -8640000000000000) 123425bb815Sopenharmony_ciassert (Date.parse("-000001-12-31T23:59:59.999Z") == -62167219200001) 124425bb815Sopenharmony_ciassert (Date.parse("0000-01-01T00:00:00.000Z") == -62167219200000) 125425bb815Sopenharmony_ciassert (Date.parse("0009-12-31T23:59:59.999Z") == -61851600000001) 126425bb815Sopenharmony_ciassert (Date.parse("0010-01-01T00:00:00.000Z") == -61851600000000) 127425bb815Sopenharmony_ciassert (Date.parse("0099-12-31T23:59:59.999Z") == -59011459200001) 128425bb815Sopenharmony_ciassert (Date.parse("0100-01-01T00:00:00.000Z") == -59011459200000) 129425bb815Sopenharmony_ciassert (Date.parse("0999-12-31T23:59:59.999Z") == -30610224000001) 130425bb815Sopenharmony_ciassert (Date.parse("1000-01-01T00:00:00.000Z") == -30610224000000) 131425bb815Sopenharmony_ciassert (Date.parse("1969-12-31T23:59:59.999Z") == -1) 132425bb815Sopenharmony_ciassert (Date.parse("1970-01-01T00:00:00.000Z") == 0) 133425bb815Sopenharmony_ciassert (Date.parse("1970-01-01T00:00:00.001Z") == 1) 134425bb815Sopenharmony_ciassert (Date.parse("9999-12-31T23:59:59.999Z") == 253402300799999) 135425bb815Sopenharmony_ciassert (Date.parse("+010000-01-01T00:00:00.000Z") == 253402300800000) 136425bb815Sopenharmony_ciassert (Date.parse("+275760-09-13T00:00:00.000Z") == 8640000000000000) 137425bb815Sopenharmony_ciassert (Date.parse("+275760-09-13T00:00:00.001Z") == 8640000000000001) 138425bb815Sopenharmony_ci 139425bb815Sopenharmony_ci// Date.toString() format 140425bb815Sopenharmony_ciassert (Date.parse("Tue Apr 20 -271821 00:00:00 GMT+0000") == -8640000000000000) 141425bb815Sopenharmony_ciassert (Date.parse("Fri Dec 31 -0001 23:59:59 GMT+0000") == -62167219201000) 142425bb815Sopenharmony_ciassert (Date.parse("Sat Jan 01 0000 00:00:00 GMT+0000") == -62167219200000) 143425bb815Sopenharmony_ciassert (Date.parse("Thu Dec 31 0009 23:59:59 GMT+0000") == -61851600001000) 144425bb815Sopenharmony_ciassert (Date.parse("Fri Jan 01 0010 00:00:00 GMT+0000") == -61851600000000) 145425bb815Sopenharmony_ciassert (Date.parse("Thu Dec 31 0099 23:59:59 GMT+0000") == -59011459201000) 146425bb815Sopenharmony_ciassert (Date.parse("Fri Jan 01 0100 00:00:00 GMT+0000") == -59011459200000) 147425bb815Sopenharmony_ciassert (Date.parse("Tue Dec 31 0999 23:59:59 GMT+0000") == -30610224001000) 148425bb815Sopenharmony_ciassert (Date.parse("Wed Jan 01 1000 00:00:00 GMT+0000") == -30610224000000) 149425bb815Sopenharmony_ciassert (Date.parse("Wed Dec 31 1969 23:59:59 GMT+0000") == -1000) 150425bb815Sopenharmony_ciassert (Date.parse("Thu Jan 01 1970 00:00:00 GMT+0000") == 0) 151425bb815Sopenharmony_ciassert (Date.parse("Thu Jan 01 1970 00:00:01 GMT+0000") == 1000) 152425bb815Sopenharmony_ciassert (Date.parse("Fri Dec 31 9999 23:59:59 GMT+0000") == 253402300799000) 153425bb815Sopenharmony_ciassert (Date.parse("Sat Jan 01 10000 00:00:00 GMT+0000") == 253402300800000) 154425bb815Sopenharmony_ciassert (Date.parse("Sat Sep 13 275760 00:00:00 GMT+0000") == 8640000000000000) 155425bb815Sopenharmony_ci 156425bb815Sopenharmony_ci// Date.toUTCString() format 157425bb815Sopenharmony_ciassert (Date.parse("Tue, 20 Apr -271821 00:00:00 GMT") == -8640000000000000) 158425bb815Sopenharmony_ciassert (Date.parse("Fri, 31 Dec -0001 23:59:59 GMT") == -62167219201000) 159425bb815Sopenharmony_ciassert (Date.parse("Sat, 01 Jan 0000 00:00:00 GMT") == -62167219200000) 160425bb815Sopenharmony_ciassert (Date.parse("Thu, 31 Dec 0009 23:59:59 GMT") == -61851600001000) 161425bb815Sopenharmony_ciassert (Date.parse("Fri, 01 Jan 0010 00:00:00 GMT") == -61851600000000) 162425bb815Sopenharmony_ciassert (Date.parse("Thu, 31 Dec 0099 23:59:59 GMT") == -59011459201000) 163425bb815Sopenharmony_ciassert (Date.parse("Fri, 01 Jan 0100 00:00:00 GMT") == -59011459200000) 164425bb815Sopenharmony_ciassert (Date.parse("Tue, 31 Dec 0999 23:59:59 GMT") == -30610224001000) 165425bb815Sopenharmony_ciassert (Date.parse("Wed, 01 Jan 1000 00:00:00 GMT") == -30610224000000) 166425bb815Sopenharmony_ciassert (Date.parse("Wed, 31 Dec 1969 23:59:59 GMT") == -1000) 167425bb815Sopenharmony_ciassert (Date.parse("Thu, 01 Jan 1970 00:00:00 GMT") == 0) 168425bb815Sopenharmony_ciassert (Date.parse("Thu, 01 Jan 1970 00:00:01 GMT") == 1000) 169425bb815Sopenharmony_ciassert (Date.parse("Fri, 31 Dec 9999 23:59:59 GMT") == 253402300799000) 170425bb815Sopenharmony_ciassert (Date.parse("Sat, 01 Jan 10000 00:00:00 GMT") == 253402300800000) 171425bb815Sopenharmony_ciassert (Date.parse("Sat, 13 Sep 275760 00:00:00 GMT") == 8640000000000000) 172