| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 199 Expect.equals(dt.value, dt2.value); | 199 Expect.equals(dt.value, dt2.value); |
| 200 dt = new Date.fromEpoch(SECONDS_YEAR_2035 * 1000 - 1); | 200 dt = new Date.fromEpoch(SECONDS_YEAR_2035 * 1000 - 1); |
| 201 Expect.equals(true, (2035 == dt.year && 1 == dt.month && 1 == dt.day) || | 201 Expect.equals(true, (2035 == dt.year && 1 == dt.month && 1 == dt.day) || |
| 202 (2034 == dt.year && 12 == dt.month && 31 == dt.day)); | 202 (2034 == dt.year && 12 == dt.month && 31 == dt.day)); |
| 203 Expect.equals(59, dt.seconds); | 203 Expect.equals(59, dt.seconds); |
| 204 Expect.equals(999, dt.milliseconds); | 204 Expect.equals(999, dt.milliseconds); |
| 205 dt2 = new Date( | 205 dt2 = new Date( |
| 206 dt.year, dt.month, dt.day, dt.hours, dt.minutes, dt.seconds, | 206 dt.year, dt.month, dt.day, dt.hours, dt.minutes, dt.seconds, |
| 207 dt.milliseconds); | 207 dt.milliseconds); |
| 208 Expect.equals(dt.value, dt2.value); | 208 Expect.equals(dt.value, dt2.value); |
| 209 dt = new Date.fromEpoch(2100000000 * 1000, isUtc: true); | |
| 210 Expect.equals(2036, dt.year); | |
| 211 Expect.equals(7, dt.month); | |
| 212 Expect.equals(18, dt.day); | |
| 213 Expect.equals(13, dt.hours); | |
| 214 Expect.equals(20, dt.minutes); | |
| 215 Expect.equals(0, dt.seconds); | |
| 216 Expect.equals(0, dt.milliseconds); | |
| 217 // Internally this will use the maximum value for the native calls. | |
| 218 dt = new Date(2036, 7, 18, 13, 20); | |
| 219 Expect.equals(2036, dt.year); | |
| 220 Expect.equals(7, dt.month); | |
| 221 Expect.equals(18, dt.day); | |
| 222 Expect.equals(13, dt.hours); | |
| 223 Expect.equals(20, dt.minutes); | |
| 224 Expect.equals(0, dt.seconds); | |
| 225 Expect.equals(0, dt.milliseconds); | |
| 226 Expect.equals("2036-07-18 13:20:00.000", dt.toString()); | |
| 227 } | |
| 228 | |
| 229 static void testExtremes() { | |
| 230 var dt = new Date.fromEpoch(8640000000000000, isUtc: true); | |
| 231 Expect.equals(275760, dt.year); | |
| 232 Expect.equals(9, dt.month); | |
| 233 Expect.equals(13, dt.day); | |
| 234 Expect.equals(0, dt.hours); | |
| 235 Expect.equals(0, dt.minutes); | |
| 236 Expect.equals(0, dt.seconds); | |
| 237 Expect.equals(0, dt.milliseconds); | |
| 238 dt = new Date.fromEpoch(-8640000000000000, isUtc: true); | |
| 239 Expect.equals(-271821, dt.year); | |
| 240 Expect.equals(4, dt.month); | |
| 241 Expect.equals(20, dt.day); | |
| 242 Expect.equals(0, dt.hours); | |
| 243 Expect.equals(0, dt.minutes); | |
| 244 Expect.equals(0, dt.seconds); | |
| 245 Expect.equals(0, dt.milliseconds); | |
| 246 // Make sure that we can build the extreme dates in local too. | |
| 247 dt = new Date.fromEpoch(8640000000000000); | |
| 248 dt = new Date(dt.year, dt.month, dt.day, dt.hours, dt.minutes); | |
| 249 Expect.equals(8640000000000000, dt.value); | |
| 250 dt = new Date.fromEpoch(-8640000000000000); | |
| 251 dt = new Date(dt.year, dt.month, dt.day, dt.hours, dt.minutes); | |
| 252 Expect.equals(-8640000000000000, dt.value); | |
| 253 Expect.throws(() => new Date.fromEpoch(8640000000000001, isUtc: true)); | |
| 254 Expect.throws(() => new Date.fromEpoch(-8640000000000001, isUtc: true)); | |
| 255 Expect.throws(() => new Date.fromEpoch(8640000000000001)); | |
| 256 Expect.throws(() => new Date.fromEpoch(-8640000000000001)); | |
| 257 dt = new Date.fromEpoch(8640000000000000); | |
| 258 Expect.throws(() => new Date(dt.year, dt.month, dt.day, | |
| 259 dt.hours, dt.minutes, 0, 1)); | |
| 260 dt = new Date.fromEpoch(-8640000000000000); | |
| 261 // TODO(floitsch): Update comment after refactoring. | |
| 262 // This test currently fails because the arguments must not be negative. | |
| 263 // However we are going to allow negative (and overflowing) arguments and | |
| 264 // this line will then throw for the correct reason. | |
| 265 Expect.throws(() => new Date(dt.year, dt.month, dt.day, | |
| 266 dt.hours, dt.minutes, 0, -1)); | |
| 267 } | 209 } |
| 268 | 210 |
| 269 static void testUTCGetters() { | 211 static void testUTCGetters() { |
| 270 var dt = new Date.fromEpoch(1305140315000, isUtc: true); | 212 var dt = new Date.fromEpoch(1305140315000, isUtc: true); |
| 271 Expect.equals(2011, dt.year); | 213 Expect.equals(2011, dt.year); |
| 272 Expect.equals(5, dt.month); | 214 Expect.equals(5, dt.month); |
| 273 Expect.equals(11, dt.day); | 215 Expect.equals(11, dt.day); |
| 274 Expect.equals(18, dt.hours); | 216 Expect.equals(18, dt.hours); |
| 275 Expect.equals(58, dt.minutes); | 217 Expect.equals(58, dt.minutes); |
| 276 Expect.equals(35, dt.seconds); | 218 Expect.equals(35, dt.seconds); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 303 // There are timezones with 0.5 or 0.25 hour offsets. | 245 // There are timezones with 0.5 or 0.25 hour offsets. |
| 304 Expect.equals(true, | 246 Expect.equals(true, |
| 305 (dt1.minutes == dt2.minutes) || | 247 (dt1.minutes == dt2.minutes) || |
| 306 ((dt1.minutes - dt2.minutes).abs() == 30) || | 248 ((dt1.minutes - dt2.minutes).abs() == 30) || |
| 307 ((dt1.minutes - dt2.minutes).abs() == 15)); | 249 ((dt1.minutes - dt2.minutes).abs() == 15)); |
| 308 Expect.equals(dt1.seconds, dt2.seconds); | 250 Expect.equals(dt1.seconds, dt2.seconds); |
| 309 Expect.equals(dt1.milliseconds, dt2.milliseconds); | 251 Expect.equals(dt1.milliseconds, dt2.milliseconds); |
| 310 } | 252 } |
| 311 | 253 |
| 312 static void testConstructors() { | 254 static void testConstructors() { |
| 313 var dt0 = new Date(2011, 5, 11, 18, 58, 35, 0, isUtc: true); | |
| 314 Expect.equals(1305140315000, dt0.value); | |
| 315 var dt1 = new Date.fromEpoch(1305140315000); | 255 var dt1 = new Date.fromEpoch(1305140315000); |
| 316 Expect.equals(dt1.value, dt0.value); | |
| 317 Expect.equals(true, dt1 == dt0); | |
| 318 var dt3 = new Date(dt1.year, dt1.month, dt1.day, dt1.hours, dt1.minutes, | 256 var dt3 = new Date(dt1.year, dt1.month, dt1.day, dt1.hours, dt1.minutes, |
| 319 dt1.seconds, dt1.milliseconds); | 257 dt1.seconds, dt1.milliseconds); |
| 320 Expect.equals(dt1.value, dt3.value); | 258 Expect.equals(dt1.value, dt3.value); |
| 321 Expect.equals(true, dt1 == dt3); | 259 Expect.equals(true, dt1 == dt3); |
| 322 dt3 = new Date( | 260 dt3 = new Date( |
| 323 dt1.year, dt1.month, dt1.day, dt1.hours, dt1.minutes, | 261 dt1.year, dt1.month, dt1.day, dt1.hours, dt1.minutes, |
| 324 dt1.seconds, dt1.milliseconds); | 262 dt1.seconds, dt1.milliseconds); |
| 325 Expect.equals(dt1.value, dt3.value); | 263 Expect.equals(dt1.value, dt3.value); |
| 326 Expect.equals(true, dt1 == dt3); | 264 Expect.equals(true, dt1 == dt3); |
| 265 dt3 = new Date(2011, 5, 11, 18, 58, 35, 0, isUtc: true); |
| 266 Expect.equals(dt1.value, dt3.value); |
| 267 Expect.equals(true, dt1 == dt3); |
| 327 var dt2 = dt1.toLocal(); | 268 var dt2 = dt1.toLocal(); |
| 328 dt3 = new Date(2011, 5, dt1.day, dt1.hours, dt1.minutes, 35, 0); | 269 dt3 = new Date(2011, 5, dt1.day, dt1.hours, dt1.minutes, 35, 0); |
| 329 Expect.equals(dt2.value, dt3.value); | 270 Expect.equals(dt2.value, dt3.value); |
| 330 Expect.equals(true, dt2 == dt3); | 271 Expect.equals(true, dt2 == dt3); |
| 331 dt1 = new Date.fromEpoch(-9999999, isUtc: true); | 272 dt1 = new Date.fromEpoch(-9999999, isUtc: true); |
| 332 dt3 = new Date( | 273 dt3 = new Date( |
| 333 dt1.year, dt1.month, dt1.day, dt1.hours, dt1.minutes, | 274 dt1.year, dt1.month, dt1.day, dt1.hours, dt1.minutes, |
| 334 dt1.seconds, dt1.milliseconds, isUtc: true); | 275 dt1.seconds, dt1.milliseconds, isUtc: true); |
| 335 Expect.equals(dt1.value, dt3.value); | 276 Expect.equals(dt1.value, dt3.value); |
| 336 dt3 = new Date(99, 1, 2, 10, 11, 12, 0, isUtc: true); | 277 dt3 = new Date(99, 1, 2, 10, 11, 12, 0, isUtc: true); |
| 337 Expect.equals(99, dt3.year); | 278 Expect.equals(99, dt3.year); |
| 338 Expect.equals(1, dt3.month); | 279 Expect.equals(1, dt3.month); |
| 339 Expect.equals(2, dt3.day); | 280 Expect.equals(2, dt3.day); |
| 340 Expect.equals(10, dt3.hours); | 281 Expect.equals(10, dt3.hours); |
| 341 Expect.equals(11, dt3.minutes); | 282 Expect.equals(11, dt3.minutes); |
| 342 Expect.equals(12, dt3.seconds); | 283 Expect.equals(12, dt3.seconds); |
| 343 Expect.equals(0, dt3.milliseconds); | 284 Expect.equals(0, dt3.milliseconds); |
| 344 Expect.equals(true, dt3.isUtc()); | 285 Expect.equals(true, dt3.isUtc()); |
| 345 var dt4 = new Date(99, 1, 2); | |
| 346 Expect.equals(99, dt4.year); | |
| 347 Expect.equals(1, dt4.month); | |
| 348 Expect.equals(2, dt4.day); | |
| 349 Expect.equals(0, dt4.hours); | |
| 350 Expect.equals(0, dt4.minutes); | |
| 351 Expect.equals(0, dt4.seconds); | |
| 352 Expect.equals(0, dt4.milliseconds); | |
| 353 Expect.isFalse(dt4.isUtc()); | |
| 354 var dt5 = new Date(99, 1, 2, isUtc: true); | |
| 355 Expect.equals(99, dt5.year); | |
| 356 Expect.equals(1, dt5.month); | |
| 357 Expect.equals(2, dt5.day); | |
| 358 Expect.equals(0, dt5.hours); | |
| 359 Expect.equals(0, dt5.minutes); | |
| 360 Expect.equals(0, dt5.seconds); | |
| 361 Expect.equals(0, dt5.milliseconds); | |
| 362 Expect.isTrue(dt5.isUtc()); | |
| 363 var dt6 = new Date(2012, 2, 27, 13, 27, 0); | |
| 364 Expect.equals(2012, dt6.year); | |
| 365 Expect.equals(2, dt6.month); | |
| 366 Expect.equals(27, dt6.day); | |
| 367 Expect.equals(13, dt6.hours); | |
| 368 Expect.equals(27, dt6.minutes); | |
| 369 Expect.equals(0, dt6.seconds); | |
| 370 Expect.equals(0, dt6.milliseconds); | |
| 371 Expect.isFalse(dt6.isUtc()); | |
| 372 var dt7 = new Date(2012, 2, 27, 13, 27, 0, isUtc: true); | |
| 373 Expect.equals(2012, dt7.year); | |
| 374 Expect.equals(2, dt7.month); | |
| 375 Expect.equals(27, dt7.day); | |
| 376 Expect.equals(13, dt7.hours); | |
| 377 Expect.equals(27, dt7.minutes); | |
| 378 Expect.equals(0, dt7.seconds); | |
| 379 Expect.equals(0, dt7.milliseconds); | |
| 380 Expect.isTrue(dt7.isUtc()); | |
| 381 } | 286 } |
| 382 | 287 |
| 383 static void testChangeTimeZone() { | 288 static void testChangeTimeZone() { |
| 384 var dt1 = new Date.fromEpoch(1305140315000); | 289 var dt1 = new Date.fromEpoch(1305140315000); |
| 385 var dt2 = dt1.toUtc(); | 290 var dt2 = dt1.toUtc(); |
| 386 Expect.equals(dt1.value, dt2.value); | 291 Expect.equals(dt1.value, dt2.value); |
| 387 var dt3 = new Date.fromEpoch(1305140315000, isUtc: true); | 292 var dt3 = new Date.fromEpoch(1305140315000, isUtc: true); |
| 388 Expect.equals(dt1.value, dt3.value); | 293 Expect.equals(dt1.value, dt3.value); |
| 389 Expect.equals(dt2.year, dt3.year); | 294 Expect.equals(dt2.year, dt3.year); |
| 390 Expect.equals(dt2.month, dt3.month); | 295 Expect.equals(dt2.month, dt3.month); |
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 617 Expect.equals(Date.SUN, d.weekday); | 522 Expect.equals(Date.SUN, d.weekday); |
| 618 d = new Date(2011, 10, 1, 23, 45, 37, 0); | 523 d = new Date(2011, 10, 1, 23, 45, 37, 0); |
| 619 Expect.equals(Date.SAT, d.weekday); | 524 Expect.equals(Date.SAT, d.weekday); |
| 620 d = new Date(2011, 9, 30, 23, 45, 37, 0); | 525 d = new Date(2011, 9, 30, 23, 45, 37, 0); |
| 621 Expect.equals(Date.FRI, d.weekday); | 526 Expect.equals(Date.FRI, d.weekday); |
| 622 } | 527 } |
| 623 | 528 |
| 624 static void testMain() { | 529 static void testMain() { |
| 625 testNow(); | 530 testNow(); |
| 626 testValue(); | 531 testValue(); |
| 627 testConstructors(); | |
| 628 testUTCGetters(); | 532 testUTCGetters(); |
| 629 testLocalGetters(); | 533 testLocalGetters(); |
| 534 testConstructors(); |
| 630 testChangeTimeZone(); | 535 testChangeTimeZone(); |
| 631 testSubAdd(); | 536 testSubAdd(); |
| 632 testDateStrings(); | 537 testDateStrings(); |
| 633 testEquivalentYears(); | 538 testEquivalentYears(); |
| 634 testExtremes(); | |
| 635 testFarAwayDates(); | 539 testFarAwayDates(); |
| 636 testWeekday(); | 540 testWeekday(); |
| 637 } | 541 } |
| 638 } | 542 } |
| 639 | 543 |
| 640 main() { | 544 main() { |
| 641 DateTest.testMain(); | 545 DateTest.testMain(); |
| 642 } | 546 } |
| OLD | NEW |