11'use strict' ;
22
3+ var bufferShim = require ( 'buffer-shims' ) ;
34require ( '../common' ) ;
45var assert = require ( 'assert' ) ;
56var inspect = require ( 'util' ) . inspect ;
@@ -12,18 +13,18 @@ assert.strictEqual(decoder.encoding, 'utf8');
1213process . stdout . write ( 'scanning ' ) ;
1314
1415// 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' ) , '𤭢' ) ;
1920// A mixed ascii and non-ascii string
2021// Test stolen from deps/v8/test/cctest/test-strings.cc
2122// U+02E4 -> CB A4
2223// U+0064 -> 64
2324// U+12E4 -> E1 8B A4
2425// U+0030 -> 30
2526// 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' ) ;
2728
2829// Some invalid input, known to have caused trouble with chunking
2930// 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,
3536// F0: 11110|000 four-byte head
3637// F1: 11110|001'another four-byte head
3738// 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 ( 'E2FBCC01' , 'hex' ) , '\ufffd\ufffd\ufffd\u0001' ) ;
49+ test ( 'utf-8' , bufferShim . from ( 'CCB8CDB9' , 'hex' ) , '\u0338\u0379' ) ;
5150
5251// UCS-2
53- test ( 'ucs2' , Buffer . from ( 'ababc' , 'ucs2' ) , 'ababc' ) ;
52+ test ( 'ucs2' , bufferShim . from ( 'ababc' , 'ucs2' ) , 'ababc' ) ;
5453
5554// UTF-16LE
56- test ( 'utf16le' , Buffer . from ( '3DD84DDC' , 'hex' ) , '\ud83d\udc4d' ) ; // thumbs up
55+ test ( 'utf16le' , bufferShim . from ( '3DD84DDC' , 'hex' ) , '\ud83d\udc4d' ) ; // thumbs up
5756
5857console . log ( ' crayon!' ) ;
5958
6059// Additional UTF-8 tests
6160decoder = new StringDecoder ( 'utf8' ) ;
62- assert . strictEqual ( decoder . write ( Buffer . from ( 'E1' , 'hex' ) ) , '' ) ;
61+ assert . strictEqual ( decoder . write ( bufferShim . from ( 'E1' , 'hex' ) ) , '' ) ;
6362assert . strictEqual ( decoder . end ( ) , '\ufffd' ) ;
6463
6564decoder = new StringDecoder ( 'utf8' ) ;
66- assert . strictEqual ( decoder . write ( Buffer . from ( 'E18B' , 'hex' ) ) , '' ) ;
65+ assert . strictEqual ( decoder . write ( bufferShim . from ( 'E18B' , 'hex' ) ) , '' ) ;
6766assert . strictEqual ( decoder . end ( ) , '\ufffd\ufffd' ) ;
6867
6968decoder = new StringDecoder ( 'utf8' ) ;
70- assert . strictEqual ( decoder . write ( Buffer . from ( '\ufffd' ) ) , '\ufffd' ) ;
69+ assert . strictEqual ( decoder . write ( bufferShim . from ( '\ufffd' ) ) , '\ufffd' ) ;
7170assert . strictEqual ( decoder . end ( ) , '' ) ;
7271
7372decoder = 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' ) ;
7574assert . strictEqual ( decoder . end ( ) , '' ) ;
7675
7776decoder = new StringDecoder ( 'utf8' ) ;
78- assert . strictEqual ( decoder . write ( Buffer . from ( 'EFBFBDE2' , 'hex' ) ) , '\ufffd' ) ;
77+ assert . strictEqual ( decoder . write ( bufferShim . from ( 'EFBFBDE2' , 'hex' ) ) , '\ufffd' ) ;
7978assert . strictEqual ( decoder . end ( ) , '\ufffd' ) ;
8079
8180decoder = 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' ) ;
8483assert . strictEqual ( decoder . end ( ) , '\ufffd' ) ;
8584
8685// Additional utf8Text test
8786decoder = new StringDecoder ( 'utf8' ) ;
88- assert . strictEqual ( decoder . text ( Buffer . from ( [ 0x41 ] ) , 2 ) , '' ) ;
87+ assert . strictEqual ( decoder . text ( bufferShim . from ( [ 0x41 ] ) , 2 ) , '' ) ;
8988
9089// Additional UTF-16LE surrogate pair tests
9190decoder = 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' ) ;
9594assert . strictEqual ( decoder . end ( ) , '' ) ;
9695
9796decoder = new StringDecoder ( 'utf16le' ) ;
98- assert . strictEqual ( decoder . write ( Buffer . from ( '3DD8' , 'hex' ) ) , '' ) ;
97+ assert . strictEqual ( decoder . write ( bufferShim . from ( '3DD8' , 'hex' ) ) , '' ) ;
9998assert . strictEqual ( decoder . end ( ) , '\ud83d' ) ;
10099
101100decoder = 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' ) ) , '' ) ;
104103assert . strictEqual ( decoder . end ( ) , '\ud83d' ) ;
105104
106105assert . throws ( function ( ) {
0 commit comments