| Index: test/browser/_bootstrap.js |
| =================================================================== |
| --- a/test/browser/_bootstrap.js |
| +++ b/test/browser/_bootstrap.js |
| @@ -12,87 +12,53 @@ |
| * GNU General Public License for more details. |
| * |
| * You should have received a copy of the GNU General Public License |
| * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
| */ |
| "use strict"; |
| -/* globals nodeunit */ |
| -require("nodeunit"); |
| - |
| -function runTests(moduleNames) |
| -{ |
| - function bold(str) |
| - { |
| - return "\u001B[1m" + str + "\u001B[22m"; |
| - } |
| - |
| - function ok(str) |
| - { |
| - return "\u001B[32m" + str + "\u001B[39m"; |
| - } |
| +require("mocha"); |
| - function error(str) |
| - { |
| - return "\u001B[31m" + str + "\u001B[39m"; |
| - } |
| - |
| - let tests = {}; |
| - for (let module of moduleNames) |
| - tests[module] = nodeunit.testCase(require("./" + module + ".js")); |
| +if (typeof window._consoleLogs == "undefined") |
| + window._consoleLogs = {passes: 0, failures: 0, log: []}; |
| - return new Promise((resolve, reject) => |
| - { |
| - nodeunit.runModules(tests, { |
| - moduleStart(name) |
| - { |
| - if (typeof window._consoleLogs == "undefined") |
| - window._consoleLogs = {failures: 0, log: []}; |
| - console.log(bold(name)); |
| - }, |
| - testDone(name, assertions) |
| - { |
| - let errors = assertions.filter(assertion => assertion.failed()) |
| - .map(assertion => assertion.error); |
| +function Reporter(runner) |
| +{ |
| + mocha.reporters.Base.call(this, runner); |
| - if (errors.length == 0) |
| - console.log("\u2714 " + name); |
| - else |
| - { |
| - console.log(error("\u2716 " + name) + "\n"); |
| - errors.forEach(e => |
| - { |
| - if (e.stack) |
| - console.log(e.stack); |
| - else |
| - console.log(String(e)); |
| - console.log(""); |
| - }); |
| - } |
| - }, |
| - done(assertions) |
| - { |
| - let failures = assertions.filter(assertion => assertion.failed()); |
| - if (failures.length) |
| - { |
| - window._consoleLogs.failures += failures.length; |
| - console.log( |
| - "\n" + |
| - bold(error("FAILURES: ")) + |
| - failures.length + "/" + assertions.length + " assertions failed" |
| - ); |
| - } |
| - else |
| - { |
| - console.log( |
| - `\n ${bold(ok("OK: "))}${assertions.length} assertions (${assertions.duration}ms)` |
| - ); |
| - } |
| + runner.on("pass", test => |
| + { |
| + window._consoleLogs.passes++; |
| + console.log("pass: %s", test.fullTitle()); |
| + }); |
| - resolve(); |
| - } |
| - }); |
| + runner.on("fail", (test, err) => |
| + { |
| + window._consoleLogs.failures++; |
| + console.log("fail: %s -- error: %s", test.fullTitle(), err.message); |
| + }); |
| + |
| + runner.on("end", () => |
| + { |
| + console.log("end: %d/%d", window._consoleLogs.passes, |
| + window._consoleLogs.passes + window._consoleLogs.failures); |
| }); |
| } |
| -module.exports = runTests; |
| +function run(moduleNames) |
| +{ |
| + mocha.setup("bdd"); |
| + mocha.reporter = Reporter; |
| + |
| + for (let module of moduleNames) |
| + { |
| + describe(module, () => |
| + { |
| + require("./" + module + ".js"); |
| + }); |
| + } |
| + |
| + mocha.run(); |
| +} |
| + |
| +module.exports = run; |