OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 // Dart test program for Date. | 5 // Dart test program for Date. |
6 | 6 |
7 class DateTest { | 7 class DateTest { |
8 // Tests if the time moves eventually forward. | 8 // Tests if the time moves eventually forward. |
9 static void testNow() { | 9 static void testNow() { |
10 var t1 = new Date.now(); | 10 var t1 = new Date.now(); |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
180 Expect.equals(1, dt.millisecond); | 180 Expect.equals(1, dt.millisecond); |
181 dt = new Date.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 - 1, | 181 dt = new Date.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 - 1, |
182 isUtc: true); | 182 isUtc: true); |
183 Expect.equals(2034, dt.year); | 183 Expect.equals(2034, dt.year); |
184 Expect.equals(12, dt.month); | 184 Expect.equals(12, dt.month); |
185 Expect.equals(31, dt.day); | 185 Expect.equals(31, dt.day); |
186 Expect.equals(23, dt.hour); | 186 Expect.equals(23, dt.hour); |
187 Expect.equals(59, dt.minute); | 187 Expect.equals(59, dt.minute); |
188 Expect.equals(59, dt.second); | 188 Expect.equals(59, dt.second); |
189 Expect.equals(999, dt.millisecond); | 189 Expect.equals(999, dt.millisecond); |
190 dt = new Date(2035, 1, 1, 0, 0, 0, 1, isUtc: true); | 190 dt = new Date.utc(2035, 1, 1, 0, 0, 0, 1); |
191 Expect.equals(SECONDS_YEAR_2035 * 1000 + 1, dt.millisecondsSinceEpoch); | 191 Expect.equals(SECONDS_YEAR_2035 * 1000 + 1, dt.millisecondsSinceEpoch); |
192 dt = new Date(2034, 12, 31, 23, 59, 59, 999, isUtc: true); | 192 dt = new Date.utc(2034, 12, 31, 23, 59, 59, 999); |
193 Expect.equals(SECONDS_YEAR_2035 * 1000 - 1, dt.millisecondsSinceEpoch); | 193 Expect.equals(SECONDS_YEAR_2035 * 1000 - 1, dt.millisecondsSinceEpoch); |
194 dt = new Date.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 + 1); | 194 dt = new Date.fromMillisecondsSinceEpoch(SECONDS_YEAR_2035 * 1000 + 1); |
195 Expect.equals(true, (2035 == dt.year && 1 == dt.month && 1 == dt.day) || | 195 Expect.equals(true, (2035 == dt.year && 1 == dt.month && 1 == dt.day) || |
196 (2034 == dt.year && 12 == dt.month && 31 == dt.day)); | 196 (2034 == dt.year && 12 == dt.month && 31 == dt.day)); |
197 Expect.equals(0, dt.second); | 197 Expect.equals(0, dt.second); |
198 Expect.equals(1, dt.millisecond); | 198 Expect.equals(1, dt.millisecond); |
199 Date dt2 = new Date( | 199 Date dt2 = new Date( |
200 dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, | 200 dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, |
201 dt.millisecond); | 201 dt.millisecond); |
202 Expect.equals(dt.millisecondsSinceEpoch, dt2.millisecondsSinceEpoch); | 202 Expect.equals(dt.millisecondsSinceEpoch, dt2.millisecondsSinceEpoch); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
257 Expect.throws(() => new Date.fromMillisecondsSinceEpoch(8640000000000001, | 257 Expect.throws(() => new Date.fromMillisecondsSinceEpoch(8640000000000001, |
258 isUtc: true)); | 258 isUtc: true)); |
259 Expect.throws(() => new Date.fromMillisecondsSinceEpoch(-8640000000000001, | 259 Expect.throws(() => new Date.fromMillisecondsSinceEpoch(-8640000000000001, |
260 isUtc: true)); | 260 isUtc: true)); |
261 Expect.throws(() => new Date.fromMillisecondsSinceEpoch(8640000000000001)); | 261 Expect.throws(() => new Date.fromMillisecondsSinceEpoch(8640000000000001)); |
262 Expect.throws(() => new Date.fromMillisecondsSinceEpoch(-8640000000000001)); | 262 Expect.throws(() => new Date.fromMillisecondsSinceEpoch(-8640000000000001)); |
263 dt = new Date.fromMillisecondsSinceEpoch(8640000000000000); | 263 dt = new Date.fromMillisecondsSinceEpoch(8640000000000000); |
264 Expect.throws(() => new Date(dt.year, dt.month, dt.day, | 264 Expect.throws(() => new Date(dt.year, dt.month, dt.day, |
265 dt.hour, dt.minute, 0, 1)); | 265 dt.hour, dt.minute, 0, 1)); |
266 dt = new Date.fromMillisecondsSinceEpoch(8640000000000000, isUtc: true); | 266 dt = new Date.fromMillisecondsSinceEpoch(8640000000000000, isUtc: true); |
267 Expect.throws(() => new Date(dt.year, dt.month, dt.day, | 267 Expect.throws(() => new Date.utc(dt.year, dt.month, dt.day, |
268 dt.hour, dt.minute, 0, 1, isUtc: true)); | 268 dt.hour, dt.minute, 0, 1)); |
269 dt = new Date.fromMillisecondsSinceEpoch(-8640000000000000); | 269 dt = new Date.fromMillisecondsSinceEpoch(-8640000000000000); |
270 Expect.throws(() => new Date(dt.year, dt.month, dt.day, | 270 Expect.throws(() => new Date(dt.year, dt.month, dt.day, |
271 dt.hour, dt.minute, 0, -1)); | 271 dt.hour, dt.minute, 0, -1)); |
272 dt = new Date.fromMillisecondsSinceEpoch(-8640000000000000, isUtc: true); | 272 dt = new Date.fromMillisecondsSinceEpoch(-8640000000000000, isUtc: true); |
273 Expect.throws(() => new Date(dt.year, dt.month, dt.day, | 273 Expect.throws(() => new Date.utc(dt.year, dt.month, dt.day, |
274 dt.hour, dt.minute, 0, -1, isUtc: true)); | 274 dt.hour, dt.minute, 0, -1)); |
275 } | 275 } |
276 | 276 |
277 static void testUTCGetters() { | 277 static void testUTCGetters() { |
278 var dt = new Date.fromMillisecondsSinceEpoch(1305140315000, isUtc: true); | 278 var dt = new Date.fromMillisecondsSinceEpoch(1305140315000, isUtc: true); |
279 Expect.equals(2011, dt.year); | 279 Expect.equals(2011, dt.year); |
280 Expect.equals(5, dt.month); | 280 Expect.equals(5, dt.month); |
281 Expect.equals(11, dt.day); | 281 Expect.equals(11, dt.day); |
282 Expect.equals(18, dt.hour); | 282 Expect.equals(18, dt.hour); |
283 Expect.equals(58, dt.minute); | 283 Expect.equals(58, dt.minute); |
284 Expect.equals(35, dt.second); | 284 Expect.equals(35, dt.second); |
285 Expect.equals(0, dt.millisecond); | 285 Expect.equals(0, dt.millisecond); |
286 Expect.equals(true, dt.isUtc); | 286 Expect.equals(true, dt.isUtc); |
287 Expect.equals(1305140315000, dt.millisecondsSinceEpoch); | 287 Expect.equals(1305140315000, dt.millisecondsSinceEpoch); |
288 dt = new Date.fromMillisecondsSinceEpoch(-9999999, isUtc: true); | 288 dt = new Date.fromMillisecondsSinceEpoch(-9999999, isUtc: true); |
289 Expect.equals(1969, dt.year); | 289 Expect.equals(1969, dt.year); |
290 Expect.equals(12, dt.month); | 290 Expect.equals(12, dt.month); |
291 Expect.equals(31, dt.day); | 291 Expect.equals(31, dt.day); |
292 Expect.equals(21, dt.hour); | 292 Expect.equals(21, dt.hour); |
293 Expect.equals(13, dt.minute); | 293 Expect.equals(13, dt.minute); |
294 Expect.equals(20, dt.second); | 294 Expect.equals(20, dt.second); |
295 Expect.equals(1, dt.millisecond); | 295 Expect.equals(1, dt.millisecond); |
296 } | 296 } |
297 | 297 |
298 static void testLocalGetters() { | 298 static void testLocalGetters() { |
299 var dt1 = new Date.fromMillisecondsSinceEpoch(1305140315000); | 299 var dt1 = new Date.fromMillisecondsSinceEpoch(1305140315000); |
300 var dt2 = new Date(dt1.year, dt1.month, dt1.day, | 300 var dt2 = new Date.utc(dt1.year, dt1.month, dt1.day, |
301 dt1.hour, dt1.minute, dt1.second, | 301 dt1.hour, dt1.minute, dt1.second, dt1.millisecond); |
302 dt1.millisecond, | |
303 isUtc: true); | |
304 Duration zoneOffset = dt1.difference(dt2); | 302 Duration zoneOffset = dt1.difference(dt2); |
305 Expect.equals(true, zoneOffset.inDays == 0); | 303 Expect.equals(true, zoneOffset.inDays == 0); |
306 Expect.equals(true, zoneOffset.inHours.abs() <= 12); | 304 Expect.equals(true, zoneOffset.inHours.abs() <= 12); |
307 Expect.equals(dt1.year, dt2.year); | 305 Expect.equals(dt1.year, dt2.year); |
308 Expect.equals(dt1.month, dt2.month); | 306 Expect.equals(dt1.month, dt2.month); |
309 Expect.equals(true, (dt1.day - dt2.day).abs() <= 1); | 307 Expect.equals(true, (dt1.day - dt2.day).abs() <= 1); |
310 Expect.equals(true, dt1.hour < 24); | 308 Expect.equals(true, dt1.hour < 24); |
311 // There are timezones with 0.5 or 0.25 hour offsets. | 309 // There are timezones with 0.5 or 0.25 hour offsets. |
312 Expect.equals(true, | 310 Expect.equals(true, |
313 (dt1.minute == dt2.minute) || | 311 (dt1.minute == dt2.minute) || |
314 ((dt1.minute - dt2.minute).abs() == 30) || | 312 ((dt1.minute - dt2.minute).abs() == 30) || |
315 ((dt1.minute - dt2.minute).abs() == 15)); | 313 ((dt1.minute - dt2.minute).abs() == 15)); |
316 Expect.equals(dt1.second, dt2.second); | 314 Expect.equals(dt1.second, dt2.second); |
317 Expect.equals(dt1.millisecond, dt2.millisecond); | 315 Expect.equals(dt1.millisecond, dt2.millisecond); |
318 } | 316 } |
319 | 317 |
320 static void testConstructors() { | 318 static void testConstructors() { |
321 var dt0 = new Date(2011, 5, 11, 18, 58, 35, 0, isUtc: true); | 319 var dt0 = new Date.utc(2011, 5, 11, 18, 58, 35, 0); |
322 Expect.equals(1305140315000, dt0.millisecondsSinceEpoch); | 320 Expect.equals(1305140315000, dt0.millisecondsSinceEpoch); |
323 var dt1 = new Date.fromMillisecondsSinceEpoch(1305140315000); | 321 var dt1 = new Date.fromMillisecondsSinceEpoch(1305140315000); |
324 Expect.equals(dt1.millisecondsSinceEpoch, dt0.millisecondsSinceEpoch); | 322 Expect.equals(dt1.millisecondsSinceEpoch, dt0.millisecondsSinceEpoch); |
325 Expect.equals(true, dt1 == dt0); | 323 Expect.equals(true, dt1 == dt0); |
326 var dt3 = new Date(dt1.year, dt1.month, dt1.day, dt1.hour, dt1.minute, | 324 var dt3 = new Date(dt1.year, dt1.month, dt1.day, dt1.hour, dt1.minute, |
327 dt1.second, dt1.millisecond); | 325 dt1.second, dt1.millisecond); |
328 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); | 326 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); |
329 Expect.equals(true, dt1 == dt3); | 327 Expect.equals(true, dt1 == dt3); |
330 dt3 = new Date( | 328 dt3 = new Date( |
331 dt1.year, dt1.month, dt1.day, dt1.hour, dt1.minute, | 329 dt1.year, dt1.month, dt1.day, dt1.hour, dt1.minute, |
332 dt1.second, dt1.millisecond); | 330 dt1.second, dt1.millisecond); |
333 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); | 331 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); |
334 Expect.equals(true, dt1 == dt3); | 332 Expect.equals(true, dt1 == dt3); |
335 var dt2 = dt1.toLocal(); | 333 var dt2 = dt1.toLocal(); |
336 dt3 = new Date(2011, 5, dt1.day, dt1.hour, dt1.minute, 35, 0); | 334 dt3 = new Date(2011, 5, dt1.day, dt1.hour, dt1.minute, 35, 0); |
337 Expect.equals(dt2.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); | 335 Expect.equals(dt2.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); |
338 Expect.equals(true, dt2 == dt3); | 336 Expect.equals(true, dt2 == dt3); |
339 dt1 = new Date.fromMillisecondsSinceEpoch(-9999999, isUtc: true); | 337 dt1 = new Date.fromMillisecondsSinceEpoch(-9999999, isUtc: true); |
340 dt3 = new Date( | 338 dt3 = new Date.utc(dt1.year, dt1.month, dt1.day, dt1.hour, dt1.minute, |
341 dt1.year, dt1.month, dt1.day, dt1.hour, dt1.minute, | 339 dt1.second, dt1.millisecond); |
342 dt1.second, dt1.millisecond, isUtc: true); | |
343 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); | 340 Expect.equals(dt1.millisecondsSinceEpoch, dt3.millisecondsSinceEpoch); |
344 dt3 = new Date(99, 1, 2, 10, 11, 12, 0, isUtc: true); | 341 dt3 = new Date.utc(99, 1, 2, 10, 11, 12, 0); |
345 Expect.equals(99, dt3.year); | 342 Expect.equals(99, dt3.year); |
346 Expect.equals(1, dt3.month); | 343 Expect.equals(1, dt3.month); |
347 Expect.equals(2, dt3.day); | 344 Expect.equals(2, dt3.day); |
348 Expect.equals(10, dt3.hour); | 345 Expect.equals(10, dt3.hour); |
349 Expect.equals(11, dt3.minute); | 346 Expect.equals(11, dt3.minute); |
350 Expect.equals(12, dt3.second); | 347 Expect.equals(12, dt3.second); |
351 Expect.equals(0, dt3.millisecond); | 348 Expect.equals(0, dt3.millisecond); |
352 Expect.equals(true, dt3.isUtc); | 349 Expect.equals(true, dt3.isUtc); |
353 var dt4 = new Date(99, 1, 2); | 350 var dt4 = new Date(99, 1, 2); |
354 Expect.equals(99, dt4.year); | 351 Expect.equals(99, dt4.year); |
355 Expect.equals(1, dt4.month); | 352 Expect.equals(1, dt4.month); |
356 Expect.equals(2, dt4.day); | 353 Expect.equals(2, dt4.day); |
357 Expect.equals(0, dt4.hour); | 354 Expect.equals(0, dt4.hour); |
358 Expect.equals(0, dt4.minute); | 355 Expect.equals(0, dt4.minute); |
359 Expect.equals(0, dt4.second); | 356 Expect.equals(0, dt4.second); |
360 Expect.equals(0, dt4.millisecond); | 357 Expect.equals(0, dt4.millisecond); |
361 Expect.isFalse(dt4.isUtc); | 358 Expect.isFalse(dt4.isUtc); |
362 var dt5 = new Date(99, 1, 2, isUtc: true); | 359 var dt5 = new Date.utc(99, 1, 2); |
363 Expect.equals(99, dt5.year); | 360 Expect.equals(99, dt5.year); |
364 Expect.equals(1, dt5.month); | 361 Expect.equals(1, dt5.month); |
365 Expect.equals(2, dt5.day); | 362 Expect.equals(2, dt5.day); |
366 Expect.equals(0, dt5.hour); | 363 Expect.equals(0, dt5.hour); |
367 Expect.equals(0, dt5.minute); | 364 Expect.equals(0, dt5.minute); |
368 Expect.equals(0, dt5.second); | 365 Expect.equals(0, dt5.second); |
369 Expect.equals(0, dt5.millisecond); | 366 Expect.equals(0, dt5.millisecond); |
370 Expect.isTrue(dt5.isUtc); | 367 Expect.isTrue(dt5.isUtc); |
371 var dt6 = new Date(2012, 2, 27, 13, 27, 0); | 368 var dt6 = new Date(2012, 2, 27, 13, 27, 0); |
372 Expect.equals(2012, dt6.year); | 369 Expect.equals(2012, dt6.year); |
373 Expect.equals(2, dt6.month); | 370 Expect.equals(2, dt6.month); |
374 Expect.equals(27, dt6.day); | 371 Expect.equals(27, dt6.day); |
375 Expect.equals(13, dt6.hour); | 372 Expect.equals(13, dt6.hour); |
376 Expect.equals(27, dt6.minute); | 373 Expect.equals(27, dt6.minute); |
377 Expect.equals(0, dt6.second); | 374 Expect.equals(0, dt6.second); |
378 Expect.equals(0, dt6.millisecond); | 375 Expect.equals(0, dt6.millisecond); |
379 Expect.isFalse(dt6.isUtc); | 376 Expect.isFalse(dt6.isUtc); |
380 var dt7 = new Date(2012, 2, 27, 13, 27, 0, isUtc: true); | 377 var dt7 = new Date.utc(2012, 2, 27, 13, 27, 0); |
381 Expect.equals(2012, dt7.year); | 378 Expect.equals(2012, dt7.year); |
382 Expect.equals(2, dt7.month); | 379 Expect.equals(2, dt7.month); |
383 Expect.equals(27, dt7.day); | 380 Expect.equals(27, dt7.day); |
384 Expect.equals(13, dt7.hour); | 381 Expect.equals(13, dt7.hour); |
385 Expect.equals(27, dt7.minute); | 382 Expect.equals(27, dt7.minute); |
386 Expect.equals(0, dt7.second); | 383 Expect.equals(0, dt7.second); |
387 Expect.equals(0, dt7.millisecond); | 384 Expect.equals(0, dt7.millisecond); |
388 Expect.isTrue(dt7.isUtc); | 385 Expect.isTrue(dt7.isUtc); |
389 } | 386 } |
390 | 387 |
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
774 Expect.equals(9, dt1.minute); | 771 Expect.equals(9, dt1.minute); |
775 Expect.equals(9, dt1.second); | 772 Expect.equals(9, dt1.second); |
776 Expect.equals(9, dt1.millisecond); | 773 Expect.equals(9, dt1.millisecond); |
777 Expect.equals(true, dt1.isUtc); | 774 Expect.equals(true, dt1.isUtc); |
778 } | 775 } |
779 | 776 |
780 static void testWeekday() { | 777 static void testWeekday() { |
781 // 2011-10-06 is Summertime. | 778 // 2011-10-06 is Summertime. |
782 var d = new Date(2011, 10, 6, 0, 45, 37, 0); | 779 var d = new Date(2011, 10, 6, 0, 45, 37, 0); |
783 Expect.equals(Date.THU, d.weekday); | 780 Expect.equals(Date.THU, d.weekday); |
784 d = new Date(2011, 10, 6, 0, 45, 37, 0, isUtc: true); | 781 d = new Date.utc(2011, 10, 6, 0, 45, 37, 0); |
785 Expect.equals(Date.THU, d.weekday); | 782 Expect.equals(Date.THU, d.weekday); |
786 d = new Date(2011, 10, 5, 23, 45, 37, 0); | 783 d = new Date(2011, 10, 5, 23, 45, 37, 0); |
787 Expect.equals(Date.WED, d.weekday); | 784 Expect.equals(Date.WED, d.weekday); |
788 d = new Date(2011, 10, 5, 23, 45, 37, 0, isUtc: true); | 785 d = new Date.utc(2011, 10, 5, 23, 45, 37, 0); |
789 Expect.equals(Date.WED, d.weekday); | 786 Expect.equals(Date.WED, d.weekday); |
790 // 1970-01-01 is Wintertime. | 787 // 1970-01-01 is Wintertime. |
791 d = new Date(1970, 1, 1, 0, 0, 0, 1); | 788 d = new Date(1970, 1, 1, 0, 0, 0, 1); |
792 Expect.equals(Date.THU, d.weekday); | 789 Expect.equals(Date.THU, d.weekday); |
793 d = new Date(1970, 1, 1, 0, 0, 0, 1, isUtc: true); | 790 d = new Date.utc(1970, 1, 1, 0, 0, 0, 1); |
794 Expect.equals(Date.THU, d.weekday); | 791 Expect.equals(Date.THU, d.weekday); |
795 d = new Date(1969, 12, 31, 23, 59, 59, 999, isUtc: true); | 792 d = new Date.utc(1969, 12, 31, 23, 59, 59, 999); |
796 Expect.equals(Date.WED, d.weekday); | 793 Expect.equals(Date.WED, d.weekday); |
797 d = new Date(1969, 12, 31, 23, 59, 59, 999); | 794 d = new Date(1969, 12, 31, 23, 59, 59, 999); |
798 Expect.equals(Date.WED, d.weekday); | 795 Expect.equals(Date.WED, d.weekday); |
799 d = new Date(2011, 10, 4, 23, 45, 37, 0); | 796 d = new Date(2011, 10, 4, 23, 45, 37, 0); |
800 Expect.equals(Date.TUE, d.weekday); | 797 Expect.equals(Date.TUE, d.weekday); |
801 d = new Date(2011, 10, 3, 23, 45, 37, 0); | 798 d = new Date(2011, 10, 3, 23, 45, 37, 0); |
802 Expect.equals(Date.MON, d.weekday); | 799 Expect.equals(Date.MON, d.weekday); |
803 d = new Date(2011, 10, 2, 23, 45, 37, 0); | 800 d = new Date(2011, 10, 2, 23, 45, 37, 0); |
804 Expect.equals(Date.SUN, d.weekday); | 801 Expect.equals(Date.SUN, d.weekday); |
805 d = new Date(2011, 10, 1, 23, 45, 37, 0); | 802 d = new Date(2011, 10, 1, 23, 45, 37, 0); |
(...skipping 15 matching lines...) Expand all Loading... |
821 testEquivalentYears(); | 818 testEquivalentYears(); |
822 testExtremes(); | 819 testExtremes(); |
823 testFarAwayDates(); | 820 testFarAwayDates(); |
824 testWeekday(); | 821 testWeekday(); |
825 } | 822 } |
826 } | 823 } |
827 | 824 |
828 main() { | 825 main() { |
829 DateTest.testMain(); | 826 DateTest.testMain(); |
830 } | 827 } |
OLD | NEW |