diff --git a/deps/nodeunit.js b/deps/nodeunit.js index 09dc008bb..a4ae88c93 100644 --- a/deps/nodeunit.js +++ b/deps/nodeunit.js @@ -1740,6 +1740,79 @@ exports.runModules = function (modules, opt) { }; +/** + * Wraps a test function with setUp and tearDown functions. + * Used by testCase. + * + * @param {Function} setUp + * @param {Function} tearDown + * @param {Function} fn + * @api private + */ + +var wrapTest = function (setUp, tearDown, fn) { + return function (test) { + var context = {}; + if (tearDown) { + var done = test.done; + test.done = function (err) { + try { + tearDown.call(context, function (err2) { + if (err && err2) { + test._assertion_list.push( + types.assertion({error: err}) + ); + return done(err2); + } + done(err || err2); + }); + } + catch (e) { + done(e); + } + }; + } + if (setUp) { + setUp.call(context, function (err) { + if (err) { + return test.done(err); + } + fn.call(context, test); + }); + } + else { + fn.call(context, test); + } + } +}; + + +/** + * Wraps a group of tests with setUp and tearDown functions. + * Used by testCase. + * + * @param {Function} setUp + * @param {Function} tearDown + * @param {Object} group + * @api private + */ + +var wrapGroup = function (setUp, tearDown, group) { + var tests = {}; + var keys = _keys(group); + for (var i=0; i'; - html += '
    '; + var mheading = document.createElement('h2'); + mheading.innerText = name; + results.appendChild(mheading); + module = document.createElement('ol'); + results.appendChild(module); }, testDone: function (name, assertions) { + var test = document.createElement('li'); if (!assertions.failures()) { - html += '
  1. ' + name + '
  2. '; + test.className = 'pass'; + test.innerText = name; } else { - html += '
  3. ' + name; + test.className = 'fail'; + var html = name; for (var i=0; i'; + assertions.duration + 'ms)'; } else { - html += '

    OK: ' + assertions.length + - ' assertions (' + assertions.duration + 'ms)

    '; + summary.innerText = 'OK: ' + assertions.length + + ' assertions (' + assertions.duration + 'ms)'; } - document.body.innerHTML += html; + document.body.appendChild(summary); } }); };