diff --git a/io/io_test.html b/io/io_test.html index a5413b8..0281f90 100644 --- a/io/io_test.html +++ b/io/io_test.html @@ -14,33 +14,33 @@ setUp: function() { buffer = new bitjs.io.ByteBuffer(10); }, - tests: [ - function testWriteNumberThenRead() { + tests: { + testWriteNumberThenRead: function() { buffer.writeNumber(1234, 4); var stream = new bitjs.io.ByteStream(buffer.data); muther.assertEquals(1234, stream.peekNumber(4)); }, - function testWriteUnsignedByteThenRead() { + testWriteUnsignedByteThenRead: function() { buffer.writeNumber(192, 1); var stream = new bitjs.io.ByteStream(buffer.data); muther.assertEquals(192, stream.readNumber(1)); }, - function testWriteSignedByteThenRead() { + testWriteSignedByteThenRead: function() { buffer.writeSignedNumber(-120, 1); var stream = new bitjs.io.ByteStream(buffer.data); muther.assertEquals(-120, stream.readSignedNumber(1)); }, - function testWriteSignedPositiveNumberThenRead() { + testWriteSignedPositiveNumberThenRead: function() { buffer.writeSignedNumber(1234, 4); var stream = new bitjs.io.ByteStream(buffer.data); muther.assertEquals(1234, stream.readSignedNumber(4)); }, - function testWriteSignedNegativeNumberThenRead() { + testWriteSignedNegativeNumberThenRead: function() { buffer.writeSignedNumber(-128, 1); var stream = new bitjs.io.ByteStream(buffer.data); muther.assertEquals(-128, stream.readSignedNumber(1)); }, - function testWriteOverflowUnsigned() { + testWriteOverflowUnsigned: function() { var passed = false; try { buffer.writeNumber(256, 1); @@ -49,7 +49,7 @@ } muther.assert(passed); }, - function testWriteOverflowSignedPositive() { + testWriteOverflowSignedPositive: function() { var passed = false; try { buffer.writeSignedNumber(128, 1); @@ -58,7 +58,7 @@ } muther.assert(passed); }, - function testWriteOverflowSignedNegative() { + testWriteOverflowSignedNegative: function() { var passed = false; try { buffer.writeSignedNumber(-129, 1); @@ -66,8 +66,8 @@ passed = true; } muther.assert(passed); - } - ] + }, + }, }); diff --git a/muther.js b/muther.js index 94684d1..83bed60 100644 --- a/muther.js +++ b/muther.js @@ -6,23 +6,35 @@ */ var muther = muther || {}; +var $ = function(s) { return document.querySelector(s) || {}; } muther.assert = function(cond, err) { if (!cond) { throw err; } }; muther.assertEquals = function(a, b, err) { muther.assert(a === b, err); }; -muther.addResult_ = function(innerHTML, pass) { - document.body.innerHTML += '
' + innerHTML + '
'; +muther.set_ = function(id, style, innerHTML) { + $('#' + id).innerHTML = ''; + document.body.innerHTML += '
' + innerHTML + '
'; }; muther.go = function(spec) { - var setup = spec['setUp'] || function(){}; - var tearDown = spec['tearDown'] || function(){}; - spec['tests'].forEach(function(test) { - try { - setup(); test(); tearDown(); - muther.addResult_('PASS: ' + test.name, true); - } catch(e) { - muther.addResult_('FAIL: ' + test.name + ': ' + e, false); + Object.keys(spec['tests']).forEach(function(testName) { + var test = spec['tests'][testName]; + if (test instanceof Promise) { + muther.set_(testName, 'color:#F90', 'RUNNING: ' + testName); + // TODO: What if we want setup() and tearDown()? + test.then(function() { + muther.set_(testName, 'color:#090', 'PASS: ' + testName); + }, function(err) { + muther.set_(testName, 'color:#900', 'FAIL: ' + testName + ': ' + err); + }); + } else if (test instanceof Function) { + var setup = spec['setUp'] || function(){}; + var tearDown = spec['tearDown'] || function(){}; + try { + setup(); test(); tearDown(); + muther.set_(testName, 'color:#090', 'PASS: ' + testName); + } catch (err) { + muther.set_(testName, 'color:#900', 'FAIL: ' + testName + ': ' + err); + } } }); };