Blame view

node_modules/buffer/test/base64.js 1.58 KB
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
  if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false
  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()
  })