"use strict"; var assert = require("assert"); var base32 = require(".."); var fixtures = require("./fixtures"); describe("Decoder", function () { fixtures.forEach(function (subject) { var test = subject.buf; subject.rfc4648.forEach(function (str) { it("should decode rfc4648 " + str, function () { var decoder = new base32.Decoder({ type: "rfc4648" }); var decoded = decoder.write(str).finalize(); compare(decoded, test); var s = new base32.Decoder().write(str).finalize(); compare(s, test); }); }); subject.crock32.forEach(function (str) { it("should decode crock32 " + str, function () { var decoder = new base32.Decoder({ type: "crockford" }); var decoded = decoder.write(str).finalize(); compare(decoded, test); }); }); subject.base32hex.forEach(function (str) { it("should decode base32hex " + str, function () { var decoder = new base32.Decoder({ type: "base32hex" }); var decoded = decoder.write(str).finalize(); compare(decoded, test); }); }); }); }); describe("Encoder", function () { fixtures.forEach(function (subject) { var buf = subject.buf; it("should encode rfc4648 " + buf, function () { var test = subject.rfc4648[0]; var encoder = new base32.Encoder({ type: "rfc4648" }); var encode = encoder.write(buf).finalize(); assert.equal(encode, test); var s = new base32.Encoder().write(buf).finalize(); assert.equal(s, test); }); it("should encode crock32 " + buf, function () { var test = subject.crock32[0]; var encoder = new base32.Encoder({ type: "crockford" }); var encoded = encoder.write(buf).finalize(); assert.equal(encoded, test); }); it("should encode crock32 " + buf + " with lower case", function () { var test = subject.crock32[0]; var encoder = new base32.Encoder({ type: "crockford", lc: true }); var encoded = encoder.write(buf).finalize(); assert.equal(encoded, test.toLowerCase()); }); it("should encode base32hex " + buf + " with lower case", function () { var test = subject.base32hex[0]; var encoder = new base32.Encoder({ type: "base32hex", lc: true }); var encoded = encoder.write(buf).finalize(); assert.equal(encoded, test.toLowerCase()); }); }); }); function compare (a, b) { if (typeof Buffer != "undefined") { b = new Buffer(b); return assert.strictEqual(b.compare(a), 0); } assert.deepEqual(a, b); }