UTFTests.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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. // These tests are to validate the functionality of UnitTestFramework.js.
  6. // Other unit tests rely on UTF, so it's super-imporant for UTF to be bug-free.
  7. // Note: run this using jshost.exe, jc.exe wouldn't find WScript.LoadScriptFile.
  8. if (typeof(WScript) != "undefined") {
  9. WScript.LoadScriptFile("UnitTestFramework.js");
  10. }
  11. helpers.writeln("*** Validating assert.throws...");
  12. assert.throws(function() { throw "this throws."; });
  13. helpers.writeln("assert.throws(function) -- function that throws: PASS");
  14. try {
  15. assert.throws(function(){});
  16. helpers.writeln("assert.throws(function) -- function that doen't throw: FAIL");
  17. } catch (ex) {
  18. helpers.writeln("assert.throws(function) -- function that doesn't throw: PASS");
  19. }
  20. assert.throws(function() { assert.throws(function() {}) });
  21. // Simple form of assert.throws is what all further validations are based on.
  22. // Now after it's validated to be correct, use it for everything else.
  23. assert.throws(function() { eval("{"); }, SyntaxError);
  24. assert.throws(function() { assert.throws(function() {}, SyntaxError) });
  25. helpers.writeln("assert.throws(function, Exception): PASS");
  26. helpers.writeln("*** Validating assert.fail...");
  27. assert.throws(function() { assert.fail(); });
  28. helpers.writeln("assert.fail: PASS");
  29. helpers.writeln("*** Validating assert.areEqual...");
  30. assert.areEqual(0, 0);
  31. assert.areEqual(5, 5);
  32. assert.areEqual(true, true);
  33. assert.areEqual(false, false);
  34. assert.areEqual("test", "test");
  35. var obj1 = {x:0}, obj2 = {x:1};
  36. assert.areEqual(obj1, obj1);
  37. assert.throws(function() { assert.areEqual(0, 1) });
  38. assert.throws(function() { assert.areEqual(100, 200) });
  39. assert.throws(function() { assert.areEqual(0, "0") });
  40. assert.throws(function() { assert.areEqual(true, false) });
  41. assert.throws(function() { assert.areEqual("xy", "x") });
  42. assert.throws(function() { assert.areEqual(obj1, obj2) });
  43. helpers.writeln("assert.areEqual: PASS");
  44. helpers.writeln("*** Validating assert.areNotEqual...");
  45. assert.throws(function() { assert.areNotEqual(0, 0); });
  46. assert.throws(function() { assert.areNotEqual(5, 5); });
  47. assert.throws(function() { assert.areNotEqual(true, true); } );
  48. assert.throws(function() { assert.areNotEqual(false, false); } );
  49. assert.throws(function() { assert.areNotEqual("test", "test"); });
  50. var obj1 = {x:0}, obj2 = {y:0};
  51. assert.throws(function() { assert.areNotEqual(obj1, obj1); });
  52. assert.areNotEqual(0, 1);
  53. assert.areNotEqual(100, 200);
  54. assert.areNotEqual(0, "0");
  55. assert.areNotEqual(true, false);
  56. assert.areNotEqual("xy", "x");
  57. assert.areNotEqual(obj1, obj2);
  58. helpers.writeln("assert.areNotEqual: PASS");
  59. helpers.writeln("*** Validating assert.isTrue/isFalse...");
  60. assert.isTrue(true);
  61. assert.throws(function() { assert.isTrue(false); });
  62. assert.isFalse(false);
  63. assert.throws(function() { assert.isFalse(true); });
  64. helpers.writeln("assert.isTrue/isFalse: PASS");
  65. helpers.writeln("*** Validating isCompatVersion9...");
  66. assert.isTrue(helpers.isCompatVersion9 === !helpers.isVersion10OrLater);
  67. helpers.writeln("Validating isCompatVersion9: PASS");