all_browser.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. define(function(require, exports, module) {
  2. "use strict";
  3. require("ace/lib/fixoldbrowsers");
  4. var AsyncTest = require("asyncjs").test;
  5. var async = require("asyncjs");
  6. var passed = 0
  7. var failed = 0
  8. var log = document.getElementById("log")
  9. var testNames = [
  10. "ace/anchor_test",
  11. "ace/background_tokenizer_test",
  12. "ace/commands/command_manager_test",
  13. "ace/config_test",
  14. "ace/document_test",
  15. "ace/edit_session_test",
  16. "ace/editor_change_document_test",
  17. "ace/editor_highlight_selected_word_test",
  18. "ace/editor_navigation_test",
  19. "ace/editor_text_edit_test",
  20. "ace/ext/static_highlight_test",
  21. "ace/incremental_search_test",
  22. "ace/keyboard/emacs_test",
  23. "ace/keyboard/keybinding_test",
  24. "ace/layer/text_test",
  25. "ace/lib/event_emitter_test",
  26. "ace/mode/coffee/parser_test",
  27. "ace/mode/coldfusion_test",
  28. "ace/mode/css_test",
  29. "ace/mode/css_worker",
  30. "ace/mode/html_test",
  31. "ace/mode/javascript_test",
  32. "ace/mode/javascript_worker_test",
  33. "ace/mode/logiql_test",
  34. "ace/mode/python_test",
  35. "ace/mode/text_test",
  36. "ace/mode/xml_test",
  37. "ace/mode/folding/cstyle_test",
  38. "ace/mode/folding/html_test",
  39. "ace/mode/folding/pythonic_test",
  40. "ace/mode/folding/xml_test",
  41. "ace/mode/folding/coffee_test",
  42. "ace/multi_select_test",
  43. "ace/occur_test",
  44. "ace/range_test",
  45. "ace/range_list_test",
  46. "ace/search_test",
  47. "ace/selection_test",
  48. "ace/snippets_test",
  49. "ace/token_iterator_test",
  50. "ace/tokenizer_test",
  51. "ace/virtual_renderer_test"
  52. ];
  53. var html = ["<a href='?'>all tests</a><br>"];
  54. for (var i in testNames) {
  55. var href = testNames[i];
  56. html.push("<a href='?", href, "'>", href.replace(/^ace\//, "") ,"</a><br>");
  57. }
  58. var nav = document.createElement("div");
  59. nav.innerHTML = html.join("");
  60. nav.style.cssText = "position:absolute;right:0;top:0";
  61. document.body.appendChild(nav);
  62. if (location.search)
  63. testNames = location.search.substr(1).split(",")
  64. require(testNames, function() {
  65. var tests = testNames.map(function(x) {
  66. var module = require(x);
  67. module.href = x;
  68. return module;
  69. });
  70. async.list(tests)
  71. .expand(function(test) {
  72. return AsyncTest.testcase(test)
  73. }, AsyncTest.TestGenerator)
  74. .run()
  75. .each(function(test, next) {
  76. if (test.index == 1 && test.context.href) {
  77. var href = test.context.href;
  78. var node = document.createElement("div");
  79. node.innerHTML = "<a href='?" + href + "'>" + href.replace(/^ace\//, "") + "</a>";
  80. log.appendChild(node);
  81. }
  82. var node = document.createElement("div");
  83. node.className = test.passed ? "passed" : "failed";
  84. var name = test.name
  85. if (test.suiteName)
  86. name = test.suiteName + ": " + test.name
  87. var msg = "[" + test.count + "/" + test.index + "] " + name + " " + (test.passed ? "OK" : "FAIL")
  88. if (!test.passed) {
  89. if (test.err.stack)
  90. var err = test.err.stack
  91. else
  92. var err = test.err
  93. console.error(msg);
  94. console.error(err);
  95. msg += "<pre class='error'>" + err + "</pre>";
  96. } else {
  97. console.log(msg);
  98. }
  99. node.innerHTML = msg;
  100. log.appendChild(node);
  101. next()
  102. })
  103. .each(function(test) {
  104. if (test.passed)
  105. passed += 1
  106. else
  107. failed += 1
  108. })
  109. .end(function() {
  110. log.innerHTML += [
  111. "<div class='summary'>",
  112. "<br>",
  113. "Summary: <br>",
  114. "<br>",
  115. "Total number of tests: " + (passed + failed) + "<br>",
  116. (passed ? "Passed tests: " + passed + "<br>" : ""),
  117. (failed ? "Failed tests: " + failed + "<br>" : "")
  118. ].join("")
  119. console.log("Total number of tests: " + (passed + failed));
  120. console.log("Passed tests: " + passed);
  121. console.log("Failed tests: " + failed);
  122. })
  123. });
  124. });