Skip to content

Commit 0abcf44

Browse files
Trotttrevnorris
authored andcommitted
test: add Buffer slice UTF-8 test
PR-URL: #1989 Reviewed-By: Trevor Norris <[email protected]>
1 parent e56758a commit 0abcf44

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

test/parallel/test-buffer.js

+20-1
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,8 @@ writeTest.write('e', 3, 'ascii');
269269
writeTest.write('j', 'ascii', 4);
270270
assert.equal(writeTest.toString(), 'nodejs');
271271

272+
// ASCII slice test
273+
272274
var asciiString = 'hello world';
273275
var offset = 100;
274276

@@ -289,8 +291,25 @@ for (var i = 0; i < asciiString.length; i++) {
289291
assert.equal(sliceA[i], sliceB[i]);
290292
}
291293

292-
// TODO utf8 slice tests
294+
// UTF-8 slice test
295+
296+
var utf8String = '¡hέlló wôrld!';
297+
var offset = 100;
298+
299+
b.write(utf8String, 0, Buffer.byteLength(utf8String), 'utf8');
300+
var utf8Slice = b.toString('utf8', 0, Buffer.byteLength(utf8String));
301+
assert.equal(utf8String, utf8Slice);
293302

303+
var written = b.write(utf8String, offset, 'utf8');
304+
assert.equal(Buffer.byteLength(utf8String), written);
305+
utf8Slice = b.toString('utf8', offset, offset + Buffer.byteLength(utf8String));
306+
assert.equal(utf8String, utf8Slice);
307+
308+
var sliceA = b.slice(offset, offset + Buffer.byteLength(utf8String));
309+
var sliceB = b.slice(offset, offset + Buffer.byteLength(utf8String));
310+
for (var i = 0; i < Buffer.byteLength(utf8String); i++) {
311+
assert.equal(sliceA[i], sliceB[i]);
312+
}
294313

295314
var slice = b.slice(100, 150);
296315
assert.equal(50, slice.length);

0 commit comments

Comments
 (0)