Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80540 views
1
var test = require('tape'),
2
b64 = require('../lib/b64'),
3
checks = [
4
'a',
5
'aa',
6
'aaa',
7
'hi',
8
'hi!',
9
'hi!!',
10
'sup',
11
'sup?',
12
'sup?!'
13
];
14
15
test('convert to base64 and back', function (t) {
16
t.plan(checks.length);
17
18
for (var i = 0; i < checks.length; i++) {
19
var check = checks[i],
20
b64Str,
21
arr,
22
str;
23
24
b64Str = b64.fromByteArray(map(check, function (char) { return char.charCodeAt(0); }));
25
26
arr = b64.toByteArray(b64Str);
27
str = map(arr, function (byte) { return String.fromCharCode(byte); }).join('');
28
29
t.equal(check, str, 'Checked ' + check);
30
}
31
32
});
33
34
function map (arr, callback) {
35
var res = [],
36
kValue,
37
mappedValue;
38
39
for (var k = 0, len = arr.length; k < len; k++) {
40
if ((typeof arr === 'string' && !!arr.charAt(k))) {
41
kValue = arr.charAt(k);
42
mappedValue = callback(kValue, k, arr);
43
res[k] = mappedValue;
44
} else if (typeof arr !== 'string' && k in arr) {
45
kValue = arr[k];
46
mappedValue = callback(kValue, k, arr);
47
res[k] = mappedValue;
48
}
49
}
50
return res;
51
}
52
53