UNPKG

1.7 kBJavaScriptView Raw
1var Decoder = require('../lib/utils').Decoder;
2
3var path = require('path'),
4 assert = require('assert');
5
6var group = path.basename(__filename, '.js') + '/';
7
8[
9 { source: ['Hello world'],
10 expected: 'Hello world',
11 what: 'No encoded bytes'
12 },
13 { source: ['Hello%20world'],
14 expected: 'Hello world',
15 what: 'One full encoded byte'
16 },
17 { source: ['Hello%20world%21'],
18 expected: 'Hello world!',
19 what: 'Two full encoded bytes'
20 },
21 { source: ['Hello%', '20world'],
22 expected: 'Hello world',
23 what: 'One full encoded byte split #1'
24 },
25 { source: ['Hello%2', '0world'],
26 expected: 'Hello world',
27 what: 'One full encoded byte split #2'
28 },
29 { source: ['Hello%20', 'world'],
30 expected: 'Hello world',
31 what: 'One full encoded byte (concat)'
32 },
33 { source: ['Hello%2Qworld'],
34 expected: 'Hello%2Qworld',
35 what: 'Malformed encoded byte #1'
36 },
37 { source: ['Hello%world'],
38 expected: 'Hello%world',
39 what: 'Malformed encoded byte #2'
40 },
41 { source: ['Hello+world'],
42 expected: 'Hello world',
43 what: 'Plus to space'
44 },
45 { source: ['Hello+world%21'],
46 expected: 'Hello world!',
47 what: 'Plus and encoded byte'
48 },
49 { source: ['5%2B5%3D10'],
50 expected: '5+5=10',
51 what: 'Encoded plus'
52 },
53 { source: ['5+%2B+5+%3D+10'],
54 expected: '5 + 5 = 10',
55 what: 'Spaces and encoded plus'
56 },
57].forEach(function(v) {
58 var dec = new Decoder(), result = '';
59 v.source.forEach(function(s) {
60 result += dec.write(s);
61 });
62 var msg = '[' + group + v.what + ']: decoded string mismatch.\n'
63 + 'Saw: ' + result + '\n'
64 + 'Expected: ' + v.expected;
65 assert.deepEqual(result, v.expected, msg);
66});