@@ -269,6 +269,8 @@ writeTest.write('e', 3, 'ascii');
269
269
writeTest . write ( 'j' , 'ascii' , 4 ) ;
270
270
assert . equal ( writeTest . toString ( ) , 'nodejs' ) ;
271
271
272
+ // ASCII slice test
273
+
272
274
var asciiString = 'hello world' ;
273
275
var offset = 100 ;
274
276
@@ -289,8 +291,25 @@ for (var i = 0; i < asciiString.length; i++) {
289
291
assert . equal ( sliceA [ i ] , sliceB [ i ] ) ;
290
292
}
291
293
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 ) ;
293
302
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
+ }
294
313
295
314
var slice = b . slice ( 100 , 150 ) ;
296
315
assert . equal ( 50 , slice . length ) ;
0 commit comments