DateCtr.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. var RESULTS = [
  6. "1970-01-10T00:00:01.000Z",
  7. "1974-01-01T00:00:00.000Z",
  8. "1970-01-01T00:00:01.974Z",
  9. "1974-10-01T07:00:00.000Z",
  10. "1974-10-24T07:00:00.000Z",
  11. "1974-10-24T07:00:00.000Z",
  12. "1974-10-24T07:20:00.000Z",
  13. "1974-10-24T07:20:30.000Z",
  14. "1974-10-24T07:20:30.040Z",
  15. "1974-10-24T07:20:30.040Z",
  16. "-098001-12-01T08:00:00.000Z",
  17. "1999-12-01T08:00:00.000Z",
  18. "Invalid Date",
  19. "Invalid Date",
  20. "Invalid Date" ];
  21. var index = 0;
  22. function CHECK(str)
  23. {
  24. if (str != RESULTS[index])
  25. {
  26. console.log(str + " != " + RESULTS[index]);
  27. console.log("FAIL");
  28. return false;
  29. }
  30. index++;
  31. return true;
  32. }
  33. function Test()
  34. {
  35. var d;
  36. d = new Date("Thu Jan 10 05:30:01 UTC+0530 1970"); if (!CHECK(d.toISOString())) return;
  37. d = new Date("1974"); if (!CHECK(d.toISOString())) return;
  38. d = new Date(1974); if (!CHECK(d.toISOString())) return;
  39. d = new Date(1974, 9); if (!CHECK(d.toISOString())) return;
  40. d = new Date(1974, 9, 24); if (!CHECK(d.toISOString())) return;
  41. d = new Date(1974, 9, 24, 0); if (!CHECK(d.toISOString())) return;
  42. d = new Date(1974, 9, 24, 0, 20); if (!CHECK(d.toISOString())) return;
  43. d = new Date(1974, 9, 24, 0, 20, 30); if (!CHECK(d.toISOString())) return;
  44. d = new Date(1974, 9, 24, 0, 20, 30, 40); if (!CHECK(d.toISOString())) return;
  45. d = new Date(1974, 9, 24, 0, 20, 30, 40, 50); if (!CHECK(d.toISOString())) return;
  46. if (WScript.Platform.OS == "win32") {
  47. d = new Date(2000, -1200001); if (!CHECK(d.toISOString())) return; // Make sure there is no AV for negative month (WOOB 1140748).
  48. } else {
  49. index++; // xplat DST info for BC doesn't match to Windows.
  50. }
  51. d = new Date(2000, -1); if (!CHECK(d.toISOString())) return; // Check correctness when month is negative.
  52. d = new Date("", 1e81); if (!CHECK(d + "")) return; // WOOB 1139099
  53. d = new Date(); d.setSeconds(Number.MAX_VALUE); if (!CHECK(d + "")) return; // WOOB 1142298
  54. d = new Date(); d.setSeconds(-Number.MAX_VALUE); if (!CHECK(d + "")) return; // WOOB 1142298
  55. console.log("PASS");
  56. }
  57. Test();