2014-01-11 07:57:43 +01:00
|
|
|
/* global describe, it */
|
2013-02-17 06:39:15 +01:00
|
|
|
var assert = require('assert');
|
2014-01-11 07:57:43 +01:00
|
|
|
var convert = require('../src/convert.js');
|
2013-02-17 06:39:15 +01:00
|
|
|
|
2014-01-11 07:57:43 +01:00
|
|
|
describe('convert', function() {
|
|
|
|
describe('bytesToHex', function() {
|
|
|
|
it('handles example 1', function() {
|
|
|
|
assert.equal(convert.bytesToHex([0, 1, 2, 255]), '000102ff');
|
|
|
|
})
|
|
|
|
})
|
2013-02-17 06:39:15 +01:00
|
|
|
|
2014-01-11 07:57:43 +01:00
|
|
|
describe('hexToBytes', function() {
|
|
|
|
it('handles example 1', function() {
|
|
|
|
assert.deepEqual(convert.hexToBytes('000102ff'), [0, 1, 2, 255]);
|
|
|
|
})
|
|
|
|
})
|
2013-02-17 06:39:15 +01:00
|
|
|
|
2014-01-11 07:57:43 +01:00
|
|
|
it('converts from bytes to hex and back', function() {
|
|
|
|
var bytes = [];
|
|
|
|
for (var i=0 ; i<256 ; ++i) {
|
|
|
|
bytes.push(i);
|
|
|
|
}
|
2013-02-17 06:39:15 +01:00
|
|
|
|
2014-01-11 07:57:43 +01:00
|
|
|
var hex = convert.bytesToHex(bytes);
|
|
|
|
assert.equal(hex.length, 512);
|
|
|
|
assert.deepEqual(convert.hexToBytes(hex), bytes);
|
|
|
|
})
|
2014-03-01 17:05:49 +01:00
|
|
|
|
|
|
|
describe('bytesToBase64', function() {
|
|
|
|
it('passes RFC4648 test vectors', function() {
|
|
|
|
// Test vectors from:
|
|
|
|
// http://tools.ietf.org/html/rfc4648#page-12
|
|
|
|
|
|
|
|
var b64 = function(s) {
|
|
|
|
return convert.bytesToBase64(convert.stringToBytes(s))
|
|
|
|
}
|
|
|
|
|
|
|
|
assert.equal(b64(''), '')
|
|
|
|
assert.equal(b64('f'), 'Zg==')
|
|
|
|
assert.equal(b64('fo'), 'Zm8=')
|
|
|
|
assert.equal(b64('foo'), 'Zm9v')
|
|
|
|
assert.equal(b64('foob'), 'Zm9vYg==')
|
|
|
|
assert.equal(b64('fooba'), 'Zm9vYmE=')
|
|
|
|
assert.equal(b64('foobar'), 'Zm9vYmFy')
|
|
|
|
})
|
|
|
|
})
|
2014-01-11 07:57:43 +01:00
|
|
|
})
|