1
1
'use strict' ;
2
2
3
+ var bufferShim = require ( 'buffer-shims' ) ;
3
4
require ( '../common' ) ;
4
5
var assert = require ( 'assert' ) ;
5
6
var inspect = require ( 'util' ) . inspect ;
@@ -12,18 +13,18 @@ assert.strictEqual(decoder.encoding, 'utf8');
12
13
process . stdout . write ( 'scanning ' ) ;
13
14
14
15
// UTF-8
15
- test ( 'utf-8' , Buffer . from ( '$' , 'utf-8' ) , '$' ) ;
16
- test ( 'utf-8' , Buffer . from ( '¢' , 'utf-8' ) , '¢' ) ;
17
- test ( 'utf-8' , Buffer . from ( '€' , 'utf-8' ) , '€' ) ;
18
- test ( 'utf-8' , Buffer . from ( '𤭢' , 'utf-8' ) , '𤭢' ) ;
16
+ test ( 'utf-8' , bufferShim . from ( '$' , 'utf-8' ) , '$' ) ;
17
+ test ( 'utf-8' , bufferShim . from ( '¢' , 'utf-8' ) , '¢' ) ;
18
+ test ( 'utf-8' , bufferShim . from ( '€' , 'utf-8' ) , '€' ) ;
19
+ test ( 'utf-8' , bufferShim . from ( '𤭢' , 'utf-8' ) , '𤭢' ) ;
19
20
// A mixed ascii and non-ascii string
20
21
// Test stolen from deps/v8/test/cctest/test-strings.cc
21
22
// U+02E4 -> CB A4
22
23
// U+0064 -> 64
23
24
// U+12E4 -> E1 8B A4
24
25
// U+0030 -> 30
25
26
// U+3045 -> E3 81 85
26
- test ( 'utf-8' , Buffer . from ( [ 0xCB , 0xA4 , 0x64 , 0xE1 , 0x8B , 0xA4 , 0x30 , 0xE3 , 0x81 , 0x85 ] ) , '\u02e4\u0064\u12e4\u0030\u3045' ) ;
27
+ test ( 'utf-8' , bufferShim . from ( [ 0xCB , 0xA4 , 0x64 , 0xE1 , 0x8B , 0xA4 , 0x30 , 0xE3 , 0x81 , 0x85 ] ) , '\u02e4\u0064\u12e4\u0030\u3045' ) ;
27
28
28
29
// Some invalid input, known to have caused trouble with chunking
29
30
// in https://github.com/nodejs/node/pull/7310#issuecomment-226445923
@@ -35,72 +36,70 @@ test('utf-8', Buffer.from([0xCB, 0xA4, 0x64, 0xE1, 0x8B, 0xA4, 0x30, 0xE3, 0x81,
35
36
// F0: 11110|000 four-byte head
36
37
// F1: 11110|001'another four-byte head
37
38
// FB: 111110|11 "five-byte head", not UTF-8
38
- test ( 'utf-8' , Buffer . from ( 'C9B5A941' , 'hex' ) , '\u0275\ufffdA' ) ;
39
- test ( 'utf-8' , Buffer . from ( 'E2' , 'hex' ) , '\ufffd' ) ;
40
- test ( 'utf-8' , Buffer . from ( 'E241' , 'hex' ) , '\ufffdA' ) ;
41
- test ( 'utf-8' , Buffer . from ( 'CCCCB8' , 'hex' ) , '\ufffd\u0338' ) ;
42
- test ( 'utf-8' , Buffer . from ( 'F0B841' , 'hex' ) , '\ufffd\ufffdA' ) ;
43
- test ( 'utf-8' , Buffer . from ( 'F1CCB8' , 'hex' ) , '\ufffd\u0338' ) ;
44
- test ( 'utf-8' , Buffer . from ( 'F0FB00' , 'hex' ) , '\ufffd\ufffd\0' ) ;
45
- test ( 'utf-8' , Buffer . from ( 'CCE2B8B8' , 'hex' ) , '\ufffd\u2e38' ) ;
46
- test ( 'utf-8' , Buffer . from ( 'E2B8CCB8' , 'hex' ) , '\ufffd\ufffd\u0338' ) ;
47
- test ( 'utf-8' , Buffer . from ( 'E2FBCC01' , 'hex' ) , '\ufffd\ufffd\ufffd\u0001' ) ;
48
- test ( 'utf-8' , Buffer . from ( 'EDA0B5EDB08D' , 'hex' ) , // CESU-8 of U+1D40D
49
- '\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd' ) ;
50
- test ( 'utf-8' , Buffer . from ( 'CCB8CDB9' , 'hex' ) , '\u0338\u0379' ) ;
39
+ test ( 'utf-8' , bufferShim . from ( 'C9B5A941' , 'hex' ) , '\u0275\ufffdA' ) ;
40
+ test ( 'utf-8' , bufferShim . from ( 'E2' , 'hex' ) , '\ufffd' ) ;
41
+ test ( 'utf-8' , bufferShim . from ( 'E241' , 'hex' ) , '\ufffdA' ) ;
42
+ test ( 'utf-8' , bufferShim . from ( 'CCCCB8' , 'hex' ) , '\ufffd\u0338' ) ;
43
+ test ( 'utf-8' , bufferShim . from ( 'F0B841' , 'hex' ) , '\ufffd\ufffdA' ) ;
44
+ test ( 'utf-8' , bufferShim . from ( 'F1CCB8' , 'hex' ) , '\ufffd\u0338' ) ;
45
+ test ( 'utf-8' , bufferShim . from ( 'F0FB00' , 'hex' ) , '\ufffd\ufffd\0' ) ;
46
+ test ( 'utf-8' , bufferShim . from ( 'CCE2B8B8' , 'hex' ) , '\ufffd\u2e38' ) ;
47
+ test ( 'utf-8' , bufferShim . from ( 'E2B8CCB8' , 'hex' ) , '\ufffd\ufffd\u0338' ) ;
48
+ test ( 'utf-8' , bufferShim . from (
1241
span>'E2FBCC01' , 'hex' ) , '\ufffd\ufffd\ufffd\u0001' ) ;
49
+ test ( 'utf-8' , bufferShim . from ( 'CCB8CDB9' , 'hex' ) , '\u0338\u0379' ) ;
51
50
52
51
// UCS-2
53
- test ( 'ucs2' , Buffer . from ( 'ababc' , 'ucs2' ) , 'ababc' ) ;
52
+ test ( 'ucs2' , bufferShim . from ( 'ababc' , 'ucs2' ) , 'ababc' ) ;
54
53
55
54
// UTF-16LE
56
- test ( 'utf16le' , Buffer . from ( '3DD84DDC' , 'hex' ) , '\ud83d\udc4d' ) ; // thumbs up
55
+ test ( 'utf16le' , bufferShim . from ( '3DD84DDC' , 'hex' ) , '\ud83d\udc4d' ) ; // thumbs up
57
56
58
57
console . log ( ' crayon!' ) ;
59
58
60
59
// Additional UTF-8 tests
61
60
decoder = new StringDecoder ( 'utf8' ) ;
62
- assert . strictEqual ( decoder . write ( Buffer . from ( 'E1' , 'hex' ) ) , '' ) ;
61
+ assert . strictEqual ( decoder . write ( bufferShim . from ( 'E1' , 'hex' ) ) , '' ) ;
63
62
assert . strictEqual ( decoder . end ( ) , '\ufffd' ) ;
64
63
65
64
decoder = new StringDecoder ( 'utf8' ) ;
66
- assert . strictEqual ( decoder . write ( Buffer . from ( 'E18B' , 'hex' ) ) , '' ) ;
65
+ assert . strictEqual ( decoder . write ( bufferShim . from ( 'E18B' , 'hex' ) ) , '' ) ;
67
66
assert . strictEqual ( decoder . end ( ) , '\ufffd\ufffd' ) ;
68
67
69
68
decoder = new StringDecoder ( 'utf8' ) ;
70
- assert . strictEqual ( decoder . write ( Buffer . from ( '\ufffd' ) ) , '\ufffd' ) ;
69
+ assert . strictEqual ( decoder . write ( bufferShim . from ( '\ufffd' ) ) , '\ufffd' ) ;
71
70
assert . strictEqual ( decoder . end ( ) , '' ) ;
72
71
73
72
decoder = new StringDecoder ( 'utf8' ) ;
74
- assert . strictEqual ( decoder . write ( Buffer . from ( '\ufffd\ufffd\ufffd' ) ) , '\ufffd\ufffd\ufffd' ) ;
73
+ assert . strictEqual ( decoder . write ( bufferShim . from ( '\ufffd\ufffd\ufffd' ) ) , '\ufffd\ufffd\ufffd' ) ;
75
74
assert . strictEqual ( decoder . end ( ) , '' ) ;
76
75
77
76
decoder = new StringDecoder ( 'utf8' ) ;
78
- assert . strictEqual ( decoder . write ( Buffer . from ( 'EFBFBDE2' , 'hex' ) ) , '\ufffd' ) ;
77
+ assert . strictEqual ( decoder . write ( bufferShim . from ( 'EFBFBDE2' , 'hex' ) ) , '\ufffd' ) ;
79
78
assert . strictEqual ( decoder . end ( ) , '\ufffd' ) ;
80
79
81
80
decoder = new StringDecoder ( 'utf8' ) ;
82
- assert . strictEqual ( decoder . write ( Buffer . from ( 'F1' , 'hex' ) ) , '' ) ;
83
- assert . strictEqual ( decoder . write ( Buffer . from ( '41F2' , 'hex' ) ) , '\ufffdA' ) ;
81
+ assert . strictEqual ( decoder . write ( bufferShim . from ( 'F1' , 'hex' ) ) , '' ) ;
82
+ assert . strictEqual ( decoder . write ( bufferShim . from ( '41F2' , 'hex' ) ) , '\ufffdA' ) ;
84
83
assert . strictEqual ( decoder . end ( ) , '\ufffd' ) ;
85
84
86
85
// Additional utf8Text test
87
86
decoder = new StringDecoder ( 'utf8' ) ;
88
- assert . strictEqual ( decoder . text ( Buffer . from ( [ 0x41 ] ) , 2 ) , '' ) ;
87
+ assert . strictEqual ( decoder . text ( bufferShim . from ( [ 0x41 ] ) , 2 ) , '' ) ;
89
88
90
89
// Additional UTF-16LE surrogate pair tests
91
90
decoder = new StringDecoder ( 'utf16le' ) ;
92
- assert . strictEqual ( decoder . write ( Buffer . from ( '3DD8' , 'hex' ) ) , '' ) ;
93
- assert . strictEqual ( decoder . write ( Buffer . from ( '4D' , 'hex' ) ) , '' ) ;
94
- assert . strictEqual ( decoder . write ( Buffer . from ( 'DC' , 'hex' ) ) , '\ud83d\udc4d' ) ;
91
+ assert . strictEqual ( decoder . write ( bufferShim . from ( '3DD8' , 'hex' ) ) , '' ) ;
92
+ assert . strictEqual ( decoder . write ( bufferShim . from ( '4D' , 'hex' ) ) , '' ) ;
93
+ assert . strictEqual ( decoder . write ( bufferShim . from ( 'DC' , 'hex' ) ) , '\ud83d\udc4d' ) ;
95
94
assert . strictEqual ( decoder . end ( ) , '' ) ;
96
95
97
96
decoder = new StringDecoder ( 'utf16le' ) ;
98
- assert . strictEqual ( decoder . write ( Buffer . from ( '3DD8' , 'hex' ) ) , '' ) ;
97
+ assert . strictEqual ( decoder . write ( bufferShim . from ( '3DD8' , 'hex' ) ) , '' ) ;
99
98
assert . strictEqual ( decoder . end ( ) , '\ud83d' ) ;
100
99
101
100
decoder = new StringDecoder ( 'utf16le' ) ;
102
- assert . strictEqual ( decoder . write ( Buffer . from ( '3DD8' , 'hex' ) ) , '' ) ;
103
- assert . strictEqual ( decoder . write ( Buffer . from ( '4D' , 'hex' ) ) , '' ) ;
101
+ assert . strictEqual ( decoder . write ( bufferShim . from ( '3DD8' , 'hex' ) ) , '' ) ;
102
+ assert . strictEqual ( decoder . write ( bufferShim . from ( '4D' , 'hex' ) ) , '' ) ;
104
103
assert . strictEqual ( decoder . end ( ) , '\ud83d' ) ;
105
104
106
105
assert . throws ( function ( ) {
0 commit comments