| var B = require('../').Buffer |
| var test = require('tape') |
| |
| test('base64: ignore whitespace', function (t) { |
| var text = '\n YW9ldQ== ' |
| var buf = new B(text, 'base64') |
| t.equal(buf.toString(), 'aoeu') |
| t.end() |
| }) |
| |
| test('base64: strings without padding', function (t) { |
| t.equal((new B('YW9ldQ', 'base64').toString()), 'aoeu') |
| t.end() |
| }) |
| |
| test('base64: newline in utf8 -- should not be an issue', function (t) { |
| t.equal( |
| new B('LS0tCnRpdGxlOiBUaHJlZSBkYXNoZXMgbWFya3MgdGhlIHNwb3QKdGFnczoK', 'base64').toString('utf8'), |
| '---\ntitle: Three dashes marks the spot\ntags:\n' |
| ) |
| t.end() |
| }) |
| |
| test('base64: newline in base64 -- should get stripped', function (t) { |
| t.equal( |
| new B('LS0tCnRpdGxlOiBUaHJlZSBkYXNoZXMgbWFya3MgdGhlIHNwb3QKdGFnczoK\nICAtIHlhbWwKICAtIGZyb250LW1hdHRlcgogIC0gZGFzaGVzCmV4cGFuZWQt', 'base64').toString('utf8'), |
| '---\ntitle: Three dashes marks the spot\ntags:\n - yaml\n - front-matter\n - dashes\nexpaned-' |
| ) |
| t.end() |
| }) |
| |
| test('base64: tab characters in base64 - should get stripped', function (t) { |
| t.equal( |
| new B('LS0tCnRpdGxlOiBUaHJlZSBkYXNoZXMgbWFya3MgdGhlIHNwb3QKdGFnczoK\t\t\t\tICAtIHlhbWwKICAtIGZyb250LW1hdHRlcgogIC0gZGFzaGVzCmV4cGFuZWQt', 'base64').toString('utf8'), |
| '---\ntitle: Three dashes marks the spot\ntags:\n - yaml\n - front-matter\n - dashes\nexpaned-' |
| ) |
| t.end() |
| }) |
| |
| test('base64: invalid non-alphanumeric characters -- should be stripped', function (t) { |
| t.equal( |
| new B('!"#$%&\'()*,.:;<=>?@[\\]^`{|}~', 'base64').toString('utf8'), |
| '' |
| ) |
| t.end() |
| }) |
| |
| test('base64: high byte', function (t) { |
| var highByte = B.from([128]) |
| t.deepEqual( |
| B.alloc(1, highByte.toString('base64'), 'base64'), |
| highByte |
| ) |
| t.end() |
| }) |