aswi2020vldc-gitlab/templetes/node_modules/buffer/test/to-string.js @ 9b6ff40e
1 | 3a515b92 | cagy | if (process.env.OBJECT_IMPL) global.TYPED_ARRAY_SUPPORT = false |
---|---|---|---|
2 | var B = require('../').Buffer |
||
3 | var test = require('tape') |
||
4 | |||
5 | test('utf8 buffer to base64', function (t) { |
||
6 | t.equal( |
||
7 | new B('Ձאab', 'utf8').toString('base64'), |
||
8 | '1YHXkGFi' |
||
9 | )
|
||
10 | t.end() |
||
11 | })
|
||
12 | |||
13 | test('utf8 buffer to hex', function (t) { |
||
14 | t.equal( |
||
15 | new B('Ձאab', 'utf8').toString('hex'), |
||
16 | 'd581d7906162' |
||
17 | )
|
||
18 | t.end() |
||
19 | })
|
||
20 | |||
21 | test('utf8 to utf8', function (t) { |
||
22 | t.equal( |
||
23 | new B('öäüõÖÄÜÕ', 'utf8').toString('utf8'), |
||
24 | 'öäüõÖÄÜÕ' |
||
25 | )
|
||
26 | t.end() |
||
27 | })
|
||
28 | |||
29 | test('utf16le to utf16', function (t) { |
||
30 | t.equal( |
||
31 | new B(new B('abcd', 'utf8').toString('utf16le'), 'utf16le').toString('utf8'), |
||
32 | 'abcd' |
||
33 | )
|
||
34 | t.end() |
||
35 | })
|
||
36 | |||
37 | test('utf16le to hex', function (t) { |
||
38 | t.equal( |
||
39 | new B('abcd', 'utf16le').toString('hex'), |
||
40 | '6100620063006400' |
||
41 | )
|
||
42 | t.end() |
||
43 | })
|
||
44 | |||
45 | test('ascii buffer to base64', function (t) { |
||
46 | t.equal( |
||
47 | new B('123456!@#$%^', 'ascii').toString('base64'), |
||
48 | 'MTIzNDU2IUAjJCVe' |
||
49 | )
|
||
50 | t.end() |
||
51 | })
|
||
52 | |||
53 | test('ascii buffer to hex', function (t) { |
||
54 | t.equal( |
||
55 | new B('123456!@#$%^', 'ascii').toString('hex'), |
||
56 | '31323334353621402324255e' |
||
57 | )
|
||
58 | t.end() |
||
59 | })
|
||
60 | |||
61 | test('base64 buffer to utf8', function (t) { |
||
62 | t.equal( |
||
63 | new B('1YHXkGFi', 'base64').toString('utf8'), |
||
64 | 'Ձאab' |
||
65 | )
|
||
66 | t.end() |
||
67 | })
|
||
68 | |||
69 | test('hex buffer to utf8', function (t) { |
||
70 | t.equal( |
||
71 | new B('d581d7906162', 'hex').toString('utf8'), |
||
72 | 'Ձאab' |
||
73 | )
|
||
74 | t.end() |
||
75 | })
|
||
76 | |||
77 | test('base64 buffer to ascii', function (t) { |
||
78 | t.equal( |
||
79 | new B('MTIzNDU2IUAjJCVe', 'base64').toString('ascii'), |
||
80 | '123456!@#$%^' |
||
81 | )
|
||
82 | t.end() |
||
83 | })
|
||
84 | |||
85 | test('hex buffer to ascii', function (t) { |
||
86 | t.equal( |
||
87 | new B('31323334353621402324255e', 'hex').toString('ascii'), |
||
88 | '123456!@#$%^' |
||
89 | )
|
||
90 | t.end() |
||
91 | })
|
||
92 | |||
93 | test('base64 buffer to binary', function (t) { |
||
94 | t.equal( |
||
95 | new B('MTIzNDU2IUAjJCVe', 'base64').toString('binary'), |
||
96 | '123456!@#$%^' |
||
97 | )
|
||
98 | t.end() |
||
99 | })
|
||
100 | |||
101 | test('hex buffer to binary', function (t) { |
||
102 | t.equal( |
||
103 | new B('31323334353621402324255e', 'hex').toString('binary'), |
||
104 | '123456!@#$%^' |
||
105 | )
|
||
106 | t.end() |
||
107 | })
|
||
108 | |||
109 | test('utf8 to binary', function (t) { |
||
110 | /* jshint -W100 */
|
||
111 | t.equal( |
||
112 | new B('öäüõÖÄÜÕ', 'utf8').toString('binary'), |
||
113 | 'öäüõÃÃÃÃ' |
||
114 | )
|
||
115 | /* jshint +W100 */
|
||
116 | t.end() |
||
117 | })
|
||
118 | |||
119 | test('utf8 replacement chars (1 byte sequence)', function (t) { |
||
120 | t.equal( |
||
121 | new B([ 0x80 ]).toString(), |
||
122 | '\uFFFD' |
||
123 | )
|
||
124 | t.equal( |
||
125 | new B([ 0x7F ]).toString(), |
||
126 | '\u007F' |
||
127 | )
|
||
128 | t.end() |
||
129 | })
|
||
130 | |||
131 | test('utf8 replacement chars (2 byte sequences)', function (t) { |
||
132 | t.equal( |
||
133 | new B([ 0xC7 ]).toString(), |
||
134 | '\uFFFD' |
||
135 | )
|
||
136 | t.equal( |
||
137 | new B([ 0xC7, 0xB1 ]).toString(), |
||
138 | '\u01F1' |
||
139 | )
|
||
140 | t.equal( |
||
141 | new B([ 0xC0, 0xB1 ]).toString(), |
||
142 | '\uFFFD\uFFFD' |
||
143 | )
|
||
144 | t.equal( |
||
145 | new B([ 0xC1, 0xB1 ]).toString(), |
||
146 | '\uFFFD\uFFFD' |
||
147 | )
|
||
148 | t.end() |
||
149 | })
|
||
150 | |||
151 | test('utf8 replacement chars (3 byte sequences)', function (t) { |
||
152 | t.equal( |
||
153 | new B([ 0xE0 ]).toString(), |
||
154 | '\uFFFD' |
||
155 | )
|
||
156 | t.equal( |
||
157 | new B([ 0xE0, 0xAC ]).toString(), |
||
158 | '\uFFFD\uFFFD' |
||
159 | )
|
||
160 | t.equal( |
||
161 | new B([ 0xE0, 0xAC, 0xB9 ]).toString(), |
||
162 | '\u0B39' |
||
163 | )
|
||
164 | t.end() |
||
165 | })
|
||
166 | |||
167 | test('utf8 replacement chars (4 byte sequences)', function (t) { |
||
168 | t.equal( |
||
169 | new B([ 0xF4 ]).toString(), |
||
170 | '\uFFFD' |
||
171 | )
|
||
172 | t.equal( |
||
173 | new B([ 0xF4, 0x8F ]).toString(), |
||
174 | '\uFFFD\uFFFD' |
||
175 | )
|
||
176 | t.equal( |
||
177 | new B([ 0xF4, 0x8F, 0x80 ]).toString(), |
||
178 | '\uFFFD\uFFFD\uFFFD' |
||
179 | )
|
||
180 | t.equal( |
||
181 | new B([ 0xF4, 0x8F, 0x80, 0x84 ]).toString(), |
||
182 | '\uDBFC\uDC04' |
||
183 | )
|
||
184 | t.equal( |
||
185 | new B([ 0xFF ]).toString(), |
||
186 | '\uFFFD' |
||
187 | )
|
||
188 | t.equal( |
||
189 | new B([ 0xFF, 0x8F, 0x80, 0x84 ]).toString(), |
||
190 | '\uFFFD\uFFFD\uFFFD\uFFFD' |
||
191 | )
|
||
192 | t.end() |
||
193 | })
|
||
194 | |||
195 | test('utf8 replacement chars on 256 random bytes', function (t) { |
||
196 | t.equal( |
||
197 | new B([ 152, 130, 206, 23, 243, 238, 197, 44, 27, 86, 208, 36, 163, 184, 164, 21, 94, 242, 178, 46, 25, 26, 253, 178, 72, 147, 207, 112, 236, 68, 179, 190, 29, 83, 239, 147, 125, 55, 143, 19, 157, 68, 157, 58, 212, 224, 150, 39, 128, 24, 94, 225, 120, 121, 75, 192, 112, 19, 184, 142, 203, 36, 43, 85, 26, 147, 227, 139, 242, 186, 57, 78, 11, 102, 136, 117, 180, 210, 241, 92, 3, 215, 54, 167, 249, 1, 44, 225, 146, 86, 2, 42, 68, 21, 47, 238, 204, 153, 216, 252, 183, 66, 222, 255, 15, 202, 16, 51, 134, 1, 17, 19, 209, 76, 238, 38, 76, 19, 7, 103, 249, 5, 107, 137, 64, 62, 170, 57, 16, 85, 179, 193, 97, 86, 166, 196, 36, 148, 138, 193, 210, 69, 187, 38, 242, 97, 195, 219, 252, 244, 38, 1, 197, 18, 31, 246, 53, 47, 134, 52, 105, 72, 43, 239, 128, 203, 73, 93, 199, 75, 222, 220, 166, 34, 63, 236, 11, 212, 76, 243, 171, 110, 78, 39, 205, 204, 6, 177, 233, 212, 243, 0, 33, 41, 122, 118, 92, 252, 0, 157, 108, 120, 70, 137, 100, 223, 243, 171, 232, 66, 126, 111, 142, 33, 3, 39, 117, 27, 107, 54, 1, 217, 227, 132, 13, 166, 3, 73, 53, 127, 225, 236, 134, 219, 98, 214, 125, 148, 24, 64, 142, 111, 231, 194, 42, 150, 185, 10, 182, 163, 244, 19, 4, 59, 135, 16 ]).toString(), |
||
198 | '\uFFFD\uFFFD\uFFFD\u0017\uFFFD\uFFFD\uFFFD\u002C\u001B\u0056\uFFFD\u0024\uFFFD\uFFFD\uFFFD\u0015\u005E\uFFFD\uFFFD\u002E\u0019\u001A\uFFFD\uFFFD\u0048\uFFFD\uFFFD\u0070\uFFFD\u0044\uFFFD\uFFFD\u001D\u0053\uFFFD\uFFFD\u007D\u0037\uFFFD\u0013\uFFFD\u0044\uFFFD\u003A\uFFFD\uFFFD\uFFFD\u0027\uFFFD\u0018\u005E\uFFFD\u0078\u0079\u004B\uFFFD\u0070\u0013\uFFFD\uFFFD\uFFFD\u0024\u002B\u0055\u001A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0039\u004E\u000B\u0066\uFFFD\u0075\uFFFD\uFFFD\uFFFD\u005C\u0003\uFFFD\u0036\uFFFD\uFFFD\u0001\u002C\uFFFD\uFFFD\u0056\u0002\u002A\u0044\u0015\u002F\uFFFD\u0319\uFFFD\uFFFD\uFFFD\u0042\uFFFD\uFFFD\u000F\uFFFD\u0010\u0033\uFFFD\u0001\u0011\u0013\uFFFD\u004C\uFFFD\u0026\u004C\u0013\u0007\u0067\uFFFD\u0005\u006B\uFFFD\u0040\u003E\uFFFD\u0039\u0010\u0055\uFFFD\uFFFD\u0061\u0056\uFFFD\uFFFD\u0024\uFFFD\uFFFD\uFFFD\uFFFD\u0045\uFFFD\u0026\uFFFD\u0061\uFFFD\uFFFD\uFFFD\uFFFD\u0026\u0001\uFFFD\u0012\u001F\uFFFD\u0035\u002F\uFFFD\u0034\u0069\u0048\u002B\uFFFD\uFFFD\uFFFD\u0049\u005D\uFFFD\u004B\uFFFD\u0726\u0022\u003F\uFFFD\u000B\uFFFD\u004C\uFFFD\uFFFD\u006E\u004E\u0027\uFFFD\uFFFD\u0006\uFFFD\uFFFD\uFFFD\uFFFD\u0000\u0021\u0029\u007A\u0076\u005C\uFFFD\u0000\uFFFD\u006C\u0078\u0046\uFFFD\u0064\uFFFD\uFFFD\uFFFD\uFFFD\u0042\u007E\u006F\uFFFD\u0021\u0003\u0027\u0075\u001B\u006B\u0036\u0001\uFFFD\uFFFD\uFFFD\u000D\uFFFD\u0003\u0049\u0035\u007F\uFFFD\uFFFD\uFFFD\uFFFD\u0062\uFFFD\u007D\uFFFD\u0018\u0040\uFFFD\u006F\uFFFD\uFFFD\u002A\uFFFD\uFFFD\u000A\uFFFD\uFFFD\uFFFD\u0013\u0004\u003B\uFFFD\u0010' |
||
199 | )
|
||
200 | t.end() |
||
201 | })
|
||
202 | |||
203 | test('utf8 replacement chars for anything in the surrogate pair range', function (t) { |
||
204 | t.equal( |
||
205 | new B([ 0xED, 0x9F, 0xBF ]).toString(), |
||
206 | '\uD7FF' |
||
207 | )
|
||
208 | t.equal( |
||
209 | new B([ 0xED, 0xA0, 0x80 ]).toString(), |
||
210 | '\uFFFD\uFFFD\uFFFD' |
||
211 | )
|
||
212 | t.equal( |
||
213 | new B([ 0xED, 0xBE, 0x8B ]).toString(), |
||
214 | '\uFFFD\uFFFD\uFFFD' |
||
215 | )
|
||
216 | t.equal( |
||
217 | new B([ 0xED, 0xBF, 0xBF ]).toString(), |
||
218 | '\uFFFD\uFFFD\uFFFD' |
||
219 | )
|
||
220 | t.equal( |
||
221 | new B([ 0xEE, 0x80, 0x80 ]).toString(), |
||
222 | '\uE000' |
||
223 | )
|
||
224 | t.end() |
||
225 | })
|
||
226 | |||
227 | test('utf8 don\'t replace the replacement char', function (t) { |
||
228 | t.equal( |
||
229 | new B('\uFFFD').toString(), |
||
230 | '\uFFFD' |
||
231 | )
|
||
232 | t.end() |
||
233 | })
|