/* * vim: ts=4:sw=4:expandtab */ 'use strict'; describe("Helpers", function() { describe("ArrayBuffer->String conversion", function() { it('works', function() { var b = new ArrayBuffer(3); var a = new Uint8Array(b); a[0] = 0; a[1] = 255; a[2] = 128; assert.equal(getString(b), "\x00\xff\x80"); }); }); describe("toArrayBuffer", function() { it('returns undefined when passed undefined', function() { assert.strictEqual(toArrayBuffer(undefined), undefined); }); it('returns ArrayBuffer when passed ArrayBuffer', function() { var StaticArrayBufferProto = new ArrayBuffer().__proto__; var anArrayBuffer = new ArrayBuffer(); assert.strictEqual(toArrayBuffer(anArrayBuffer), anArrayBuffer); }); it('throws an error when passed a non Stringable thing', function() { var madeUpObject = function() {}; var notStringable = new madeUpObject(); assert.throw(function() { toArrayBuffer(notStringable) }, Error, /Tried to convert a non-stringable thing/); }); }); describe("isEqual", function(){ it('returns false when a or b is undefined', function(){ assert.isFalse(isEqual("defined value", undefined, false)); assert.isFalse(isEqual(undefined, "defined value", false)); }); it('returns true when a and b are equal', function(){ var a = "same value"; var b = "same value"; assert.isTrue(isEqual(a, b, false)); }); it('returns false when a and b are not equal', function(){ var a = "same value"; var b = "diferent value"; assert.isFalse(isEqual(a, b, false)); }); it('throws an error when a/b compare is too short', function(){ var a = "1234"; var b = "1234"; assert.throw(function() { isEqual(a, b, true) }, Error, /a\/b compare too short/); }); }); });