@@ -269,6 +269,8 @@ writeTest.write('e', 3, 'ascii');
269269writeTest . write ( 'j' , 'ascii' , 4 ) ;
270270assert . equal ( writeTest . toString ( ) , 'nodejs' ) ;
271271
272+ // ASCII slice test
273+
272274var asciiString = 'hello world' ;
273275var 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
295314var slice = b . slice ( 100 , 150 ) ;
296315assert . equal ( 50 , slice . length ) ;
0 commit comments