From 2cc4bd5fed3b7639929a1ba14bd5807ef903ca4b Mon Sep 17 00:00:00 2001 From: Arthur Britto Date: Mon, 8 Oct 2012 16:58:47 -0700 Subject: [PATCH] JS: improve hexToString and add unit tests. --- js/utils.js | 11 ++++++++--- test/standalone-test.js | 26 ++++++++++++++++++++++---- 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/js/utils.js b/js/utils.js index 511dacc436..a589ac391c 100644 --- a/js/utils.js +++ b/js/utils.js @@ -128,11 +128,16 @@ var trace = function(comment, func) { }; var hexToString = function (h) { - var c = h.length % 1 ? "0" + h : h; var a = []; + var i = 0; - for (i=0; i != c.length; i += 2) { - a.push(String.fromCharCode(parseInt(c.substring(i, i+2), 16))); + if (h.length % 2) { + a.push(String.fromCharCode(parseInt(h.substring(0, 1), 16))); + i = 1; + } + + for (; i != h.length; i += 2) { + a.push(String.fromCharCode(parseInt(h.substring(i, i+2), 16))); } return a.join(""); diff --git a/test/standalone-test.js b/test/standalone-test.js index 8dfe15e336..572b0d0b51 100644 --- a/test/standalone-test.js +++ b/test/standalone-test.js @@ -1,17 +1,35 @@ var fs = require("fs"); var buster = require("buster"); -var server = require("./server.js"); -var remote = require("../js/remote.js"); -var config = require("./config.js"); +var server = require("./server.js"); +var remote = require("../js/remote.js"); +var utils = require("../js/utils.js"); +var config = require("./config.js"); // How long to wait for server to start. var serverDelay = 1500; buster.testRunner.timeout = 5000; +buster.testCase("Utils", { + "hexToString and stringToHex" : { + "Even: 123456" : function () { + buster.assert.equals("123456", utils.stringToHex(utils.hexToString("123456"))); + }, + "Odd: 12345" : function () { + buster.assert.equals("012345", utils.stringToHex(utils.hexToString("12345"))); + }, + "Under 10: 0" : function () { + buster.assert.equals("00", utils.stringToHex(utils.hexToString("0"))); + }, + "Under 10: 1" : function () { + buster.assert.equals("01", utils.stringToHex(utils.hexToString("1"))); + } + } +}); + buster.testCase("Standalone server startup", { - "server start and stop": function (done) { + "server start and stop" : function (done) { server.start("alpha", function (e) { buster.refute(e);