aboutsummaryrefslogtreecommitdiff
path: root/node_modules/base64-js/test
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/base64-js/test')
-rw-r--r--node_modules/base64-js/test/big-data.js24
-rw-r--r--node_modules/base64-js/test/convert.js48
-rw-r--r--node_modules/base64-js/test/url-safe.js18
3 files changed, 90 insertions, 0 deletions
diff --git a/node_modules/base64-js/test/big-data.js b/node_modules/base64-js/test/big-data.js
new file mode 100644
index 000000000..be16ebe6b
--- /dev/null
+++ b/node_modules/base64-js/test/big-data.js
@@ -0,0 +1,24 @@
+var test = require('tape')
+var b64 = require('../')
+
+test('convert big data to base64', function (t) {
+ var b64str, arr, i, length
+ var big = new Uint8Array(64 * 1024 * 1024)
+ for (i = 0, length = big.length; i < length; ++i) {
+ big[i] = i % 256
+ }
+ b64str = b64.fromByteArray(big)
+ arr = b64.toByteArray(b64str)
+ t.ok(equal(arr, big))
+ t.end()
+})
+
+function equal (a, b) {
+ var i
+ var length = a.length
+ if (length !== b.length) return false
+ for (i = 0; i < length; ++i) {
+ if (a[i] !== b[i]) return false
+ }
+ return true
+}
diff --git a/node_modules/base64-js/test/convert.js b/node_modules/base64-js/test/convert.js
new file mode 100644
index 000000000..d68e105d7
--- /dev/null
+++ b/node_modules/base64-js/test/convert.js
@@ -0,0 +1,48 @@
+var test = require('tape')
+var b64 = require('../')
+var checks = [
+ 'a',
+ 'aa',
+ 'aaa',
+ 'hi',
+ 'hi!',
+ 'hi!!',
+ 'sup',
+ 'sup?',
+ 'sup?!'
+]
+
+test('convert to base64 and back', function (t) {
+ t.plan(checks.length * 2)
+
+ for (var i = 0; i < checks.length; i++) {
+ var check = checks[i]
+ var b64Str, arr, str
+
+ b64Str = b64.fromByteArray(map(check, function (char) { return char.charCodeAt(0) }))
+
+ arr = b64.toByteArray(b64Str)
+ str = map(arr, function (byte) { return String.fromCharCode(byte) }).join('')
+
+ t.equal(check, str, 'Checked ' + check)
+ t.equal(b64.byteLength(b64Str), arr.length, 'Checked length for ' + check)
+ }
+})
+
+function map (arr, callback) {
+ var res = []
+ var kValue, mappedValue
+
+ for (var k = 0, len = arr.length; k < len; k++) {
+ if ((typeof arr === 'string' && !!arr.charAt(k))) {
+ kValue = arr.charAt(k)
+ mappedValue = callback(kValue, k, arr)
+ res[k] = mappedValue
+ } else if (typeof arr !== 'string' && k in arr) {
+ kValue = arr[k]
+ mappedValue = callback(kValue, k, arr)
+ res[k] = mappedValue
+ }
+ }
+ return res
+}
diff --git a/node_modules/base64-js/test/url-safe.js b/node_modules/base64-js/test/url-safe.js
new file mode 100644
index 000000000..3203b33d5
--- /dev/null
+++ b/node_modules/base64-js/test/url-safe.js
@@ -0,0 +1,18 @@
+var test = require('tape')
+var b64 = require('../')
+
+test('decode url-safe style base64 strings', function (t) {
+ var expected = [0xff, 0xff, 0xbe, 0xff, 0xef, 0xbf, 0xfb, 0xef, 0xff]
+
+ var actual = b64.toByteArray('//++/++/++//')
+ for (var i = 0; i < actual.length; i++) {
+ t.equal(actual[i], expected[i])
+ }
+
+ actual = b64.toByteArray('__--_--_--__')
+ for (i = 0; i < actual.length; i++) {
+ t.equal(actual[i], expected[i])
+ }
+
+ t.end()
+})