DateTests.cs 2.0 KB

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