DateTests.cs 1.9 KB

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