DateTests.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. namespace Jint.Tests.Runtime;
  2. public class DateTests
  3. {
  4. private readonly Engine _engine;
  5. public DateTests()
  6. {
  7. _engine = new Engine()
  8. .SetValue("log", new Action<object>(Console.WriteLine))
  9. .SetValue("assert", new Action<bool>(Assert.True))
  10. .SetValue("equal", new Action<object, object>(Assert.Equal));
  11. }
  12. [Fact]
  13. public void NaNToString()
  14. {
  15. var value = _engine.Evaluate("new Date(NaN).toString();").AsString();
  16. Assert.Equal("Invalid Date", value);
  17. }
  18. [Fact]
  19. public void NaNToDateString()
  20. {
  21. var value = _engine.Evaluate("new Date(NaN).toDateString();").AsString();
  22. Assert.Equal("Invalid Date", value);
  23. }
  24. [Fact]
  25. public void NaNToTimeString()
  26. {
  27. var value = _engine.Evaluate("new Date(NaN).toTimeString();").AsString();
  28. Assert.Equal("Invalid Date", value);
  29. }
  30. [Fact]
  31. public void NaNToLocaleString()
  32. {
  33. var value = _engine.Evaluate("new Date(NaN).toLocaleString();").AsString();
  34. Assert.Equal("Invalid Date", value);
  35. }
  36. [Fact]
  37. public void NaNToLocaleDateString()
  38. {
  39. var value = _engine.Evaluate("new Date(NaN).toLocaleDateString();").AsString();
  40. Assert.Equal("Invalid Date", value);
  41. }
  42. [Fact]
  43. public void NaNToLocaleTimeString()
  44. {
  45. var value = _engine.Evaluate("new Date(NaN).toLocaleTimeString();").AsString();
  46. Assert.Equal("Invalid Date", value);
  47. }
  48. [Fact]
  49. public void ToJsonFromNaNObject()
  50. {
  51. var result = _engine.Evaluate("JSON.stringify({ date: new Date(NaN) });");
  52. Assert.Equal("{\"date\":null}", result.ToString());
  53. }
  54. [Fact]
  55. public void ValuePrecisionIsIntegral()
  56. {
  57. var number = _engine.Evaluate("new Date() / 1").AsNumber();
  58. Assert.Equal((long) number, number);
  59. var dateInstance = _engine.Realm.Intrinsics.Date.Construct(123.456d);
  60. Assert.Equal((long) dateInstance.DateValue, dateInstance.DateValue);
  61. }
  62. }