all_browser.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  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/ext/whitespace_test",
  22. "ace/incremental_search_test",
  23. "ace/keyboard/emacs_test",
  24. "ace/keyboard/keybinding_test",
  25. "ace/keyboard/vim_test",
  26. "ace/layer/text_test",
  27. "ace/lib/event_emitter_test",
  28. "ace/mode/coffee/parser_test",
  29. "ace/mode/coldfusion_test",
  30. "ace/mode/css_test",
  31. "ace/mode/css_worker",
  32. "ace/mode/html_test",
  33. "ace/mode/javascript_test",
  34. "ace/mode/javascript_worker_test",
  35. "ace/mode/logiql_test",
  36. "ace/mode/python_test",
  37. "ace/mode/text_test",
  38. "ace/mode/xml_test",
  39. "ace/mode/folding/cstyle_test",
  40. "ace/mode/folding/html_test",
  41. "ace/mode/folding/pythonic_test",
  42. "ace/mode/folding/xml_test",
  43. "ace/mode/folding/coffee_test",
  44. "ace/mode/behaviour/behaviour_test",
  45. "ace/multi_select_test",
  46. "ace/mouse/mouse_handler_test",
  47. "ace/occur_test",
  48. "ace/placeholder_test",
  49. "ace/range_test",
  50. "ace/range_list_test",
  51. "ace/search_test",
  52. "ace/selection_test",
  53. "ace/snippets_test",
  54. "ace/token_iterator_test",
  55. "ace/tokenizer_test",
  56. "ace/virtual_renderer_test"
  57. ];
  58. var html = ["<a href='?'>all tests</a><br>"];
  59. for (var i in testNames) {
  60. var href = testNames[i];
  61. html.push("<a href='?", href, "'>", href.replace(/^ace\//, "") ,"</a><br>");
  62. }
  63. if (location.search.indexOf("show=1") != -1) {
  64. var VirtualRenderer = require("ace/virtual_renderer").VirtualRenderer;
  65. require("ace/test/mockrenderer").MockRenderer = function() {
  66. var el = document.createElement("div");
  67. el.style.position = "fixed";
  68. el.style.left = "20px";
  69. el.style.top = "30px";
  70. el.style.width = "500px";
  71. el.style.height = "300px";
  72. document.body.appendChild(el);
  73. return new VirtualRenderer(el);
  74. };
  75. }
  76. var nav = document.createElement("div");
  77. nav.innerHTML = html.join("");
  78. nav.style.cssText = "position:absolute;right:0;top:0";
  79. document.body.appendChild(nav);
  80. if (location.search)
  81. testNames = location.search.substr(1).split(",");
  82. var filter = location.hash.substr(1);
  83. require(testNames, function() {
  84. var tests = testNames.map(function(x) {
  85. var module = require(x);
  86. module.href = x;
  87. return module;
  88. });
  89. async.list(tests)
  90. .expand(function(test) {
  91. if (filter) {
  92. Object.keys(test).forEach(function(method) {
  93. if (method.match(/^>?test/) && !method.match(filter))
  94. test[method] = undefined;
  95. });
  96. }
  97. return AsyncTest.testcase(test);
  98. }, AsyncTest.TestGenerator)
  99. .run()
  100. .each(function(test, next) {
  101. if (test.index == 1 && test.context.href) {
  102. var href = test.context.href;
  103. var node = document.createElement("div");
  104. node.innerHTML = "<a href='?" + href + "'>" + href.replace(/^ace\//, "") + "</a>";
  105. log.appendChild(node);
  106. }
  107. var node = document.createElement("div");
  108. node.className = test.passed ? "passed" : "failed";
  109. var name = test.name;
  110. if (test.suiteName)
  111. name = test.suiteName + ": " + test.name;
  112. var msg = "[" + test.count + "/" + test.index + "] " + name + " " + (test.passed ? "OK" : "FAIL");
  113. if (!test.passed) {
  114. if (test.err.stack)
  115. var err = test.err.stack;
  116. else
  117. var err = test.err;
  118. console.error(msg);
  119. console.error(err);
  120. msg += "<pre class='error'>" + err + "</pre>";
  121. } else {
  122. console.log(msg);
  123. }
  124. node.innerHTML = msg;
  125. log.appendChild(node);
  126. next();
  127. })
  128. .each(function(test) {
  129. if (test.passed)
  130. passed += 1;
  131. else
  132. failed += 1;
  133. })
  134. .end(function() {
  135. log.innerHTML += [
  136. "<div class='summary'>",
  137. "<br>",
  138. "Summary: <br>",
  139. "<br>",
  140. "Total number of tests: " + (passed + failed) + "<br>",
  141. (passed ? "Passed tests: " + passed + "<br>" : ""),
  142. (failed ? "Failed tests: " + failed + "<br>" : "")
  143. ].join("");
  144. console.log("Total number of tests: " + (passed + failed));
  145. console.log("Passed tests: " + passed);
  146. console.log("Failed tests: " + failed);
  147. });
  148. });
  149. });