diff --git a/lib/ace/test/all_browser.js b/lib/ace/test/all_browser.js index 90eab310..1553f379 100644 --- a/lib/ace/test/all_browser.js +++ b/lib/ace/test/all_browser.js @@ -9,96 +9,114 @@ var passed = 0 var failed = 0 var log = document.getElementById("log") -var tests = [ - require("ace/anchor_test"), - require("ace/commands/command_manager_test"), - require("ace/document_test"), - require("ace/edit_session_test"), - require("ace/editor_change_document_test"), - require("ace/editor_highlight_selected_word_test"), - require("ace/editor_navigation_test"), - require("ace/editor_text_edit_test"), - require("ace/ext/static_highlight_test"), - require("ace/layer/text_test"), - require("ace/lib/event_emitter_test"), - require("ace/mode/coffee/parser_test"), - require("ace/mode/coffee_tokenizer_test"), - require("ace/mode/coldfusion_test"), - require("ace/mode/css_test"), - require("ace/mode/css_tokenizer_test"), - require("ace/mode/css_worker"), - require("ace/mode/html_test"), - require("ace/mode/html_tokenizer_test"), - require("ace/mode/javascript_test"), - require("ace/mode/javascript_tokenizer_test"), - require("ace/mode/javascript_worker_test"), - require("ace/mode/python_test"), - require("ace/mode/ruby_tokenizer_test"), - require("ace/mode/text_test"), - require("ace/mode/xml_test"), - require("ace/mode/xml_tokenizer_test"), - require("ace/mode/folding/cstyle_test"), - require("ace/mode/folding/html_test"), - require("ace/mode/folding/pythonic_test"), - require("ace/mode/folding/xml_test"), - require("ace/range_test"), - require("ace/search_test"), - require("ace/selection_test"), - require("ace/token_iterator_test"), - require("ace/virtual_renderer_test") -] +var testNames = [ + "ace/anchor_test", + "ace/commands/command_manager_test", + "ace/document_test", + "ace/edit_session_test", + "ace/editor_change_document_test", + "ace/editor_highlight_selected_word_test", + "ace/editor_navigation_test", + "ace/editor_text_edit_test", + "ace/ext/static_highlight_test", + "ace/layer/text_test", + "ace/lib/event_emitter_test", + "ace/mode/coffee/parser_test", + "ace/mode/coffee_tokenizer_test", + "ace/mode/coldfusion_test", + "ace/mode/css_test", + "ace/mode/css_tokenizer_test", + "ace/mode/css_worker", + "ace/mode/html_test", + "ace/mode/html_tokenizer_test", + "ace/mode/javascript_test", + "ace/mode/javascript_tokenizer_test", + "ace/mode/javascript_worker_test", + "ace/mode/python_test", + "ace/mode/ruby_tokenizer_test", + "ace/mode/text_test", + "ace/mode/xml_test", + "ace/mode/xml_tokenizer_test", + "ace/mode/folding/cstyle_test", + "ace/mode/folding/html_test", + "ace/mode/folding/pythonic_test", + "ace/mode/folding/xml_test", + "ace/range_test", + "ace/search_test", + "ace/selection_test", + "ace/token_iterator_test", + "ace/virtual_renderer_test" +]; -async.list(tests) - .expand(function(test) { - return AsyncTest.testcase(test) - }, AsyncTest.TestGenerator) - .run() - .each(function(test, next) { - var node = document.createElement("div"); - node.className = test.passed ? "passed" : "failed"; +var html = ["all tests
"]; +for (var i in testNames) { + var href = testNames[i]; + html.push("", href.replace(/^ace\//, "") ,"
"); +} - var name = test.name - if (test.suiteName) - name = test.suiteName + ": " + test.name +var nav = document.createElement("div"); +nav.innerHTML = html.join(""); +nav.style.cssText = "position:absolute;right:0;top:0"; +document.body.appendChild(nav); - var msg = "[" + test.count + "/" + test.index + "] " + name + " " + (test.passed ? "OK" : "FAIL") - if (!test.passed) { - if (test.err.stack) - var err = test.err.stack +if (location.search) + testNames = location.search.substr(1).split(",") + +require(testNames, function() { + var tests = testNames.map(require); + + async.list(tests) + .expand(function(test) { + return AsyncTest.testcase(test) + }, AsyncTest.TestGenerator) + .run() + .each(function(test, next) { + var node = document.createElement("div"); + node.className = test.passed ? "passed" : "failed"; + + var name = test.name + if (test.suiteName) + name = test.suiteName + ": " + test.name + + var msg = "[" + test.count + "/" + test.index + "] " + name + " " + (test.passed ? "OK" : "FAIL") + if (!test.passed) { + if (test.err.stack) + var err = test.err.stack + else + var err = test.err + + console.error(msg); + console.error(err); + msg += "
" + err + "
"; + } else { + console.log(msg); + } + + node.innerHTML = msg; + log.appendChild(node); + + next() + }) + .each(function(test) { + if (test.passed) + passed += 1 else - var err = test.err - - console.error(msg); - console.error(err); - msg += "
" + err + "
"; - } else { - console.log(msg); - } - - node.innerHTML = msg; - log.appendChild(node); - - next() - }) - .each(function(test) { - if (test.passed) - passed += 1 - else - failed += 1 - }) - .end(function() { - log.innerHTML += [ - "
", - "
", - "Summary:
", - "
", - "Total number of tests: " + (passed + failed) + "
", - (passed ? "Passed tests: " + passed + "
" : ""), - (failed ? "Failed tests: " + failed + "
" : "") - ].join("") - console.log("Total number of tests: " + (passed + failed)); - console.log("Passed tests: " + passed); - console.log("Failed tests: " + failed); - }) + failed += 1 + }) + .end(function() { + log.innerHTML += [ + "
", + "
", + "Summary:
", + "
", + "Total number of tests: " + (passed + failed) + "
", + (passed ? "Passed tests: " + passed + "
" : ""), + (failed ? "Failed tests: " + failed + "
" : "") + ].join("") + console.log("Total number of tests: " + (passed + failed)); + console.log("Passed tests: " + passed); + console.log("Failed tests: " + failed); + }) +}); });