@@ -354,12 +354,35 @@ assert.equal(b.lastIndexOf('b', {}), 1);
354
354
assert . equal ( b . lastIndexOf ( 'b' , [ ] ) , - 1 ) ;
355
355
assert . equal ( b . lastIndexOf ( 'b' , [ 2 ] ) , 1 ) ;
356
356
357
+ // Test needles longer than the haystack.
358
+ assert . strictEqual ( b . lastIndexOf ( 'aaaaaaaaaaaaaaa' , 'ucs2' ) , - 1 ) ;
359
+ assert . strictEqual ( b . lastIndexOf ( 'aaaaaaaaaaaaaaa' , 'utf8' ) , - 1 ) ;
360
+ assert . strictEqual ( b . lastIndexOf ( 'aaaaaaaaaaaaaaa' , 'binary' ) , - 1 ) ;
361
+ assert . strictEqual ( b . lastIndexOf ( Buffer . from ( 'aaaaaaaaaaaaaaa' ) ) , - 1 ) ;
362
+ assert . strictEqual ( b . lastIndexOf ( 'aaaaaaaaaaaaaaa' , 2 , 'ucs2' ) , - 1 ) ;
363
+ assert . strictEqual ( b . lastIndexOf ( 'aaaaaaaaaaaaaaa' , 3 , 'utf8' ) , - 1 ) ;
364
+ assert . strictEqual ( b . lastIndexOf ( 'aaaaaaaaaaaaaaa' , 5 , 'binary' ) , - 1 ) ;
365
+ assert . strictEqual ( b . lastIndexOf ( Buffer . from ( 'aaaaaaaaaaaaaaa' ) , 7 ) , - 1 ) ;
366
+
367
+ // 你好 expands to a total of 6 bytes using UTF-8 and 4 bytes using UTF-16
368
+ assert . strictEqual ( buf_bc . lastIndexOf ( '你好' , 'ucs2' ) , - 1 ) ;
369
+ assert . strictEqual ( buf_bc . lastIndexOf ( '你好' , 'utf8' ) , - 1 ) ;
370
+ assert . strictEqual ( buf_bc . lastIndexOf ( '你好' , 'binary' ) , - 1 ) ;
371
+ assert . strictEqual ( buf_bc . lastIndexOf ( Buffer . from ( '你好' ) ) , - 1 ) ;
372
+ assert . strictEqual ( buf_bc . lastIndexOf ( '你好' , 2 , 'ucs2' ) , - 1 ) ;
373
+ assert . strictEqual ( buf_bc . lastIndexOf ( '你好' , 3 , 'utf8' ) , - 1 ) ;
374
+ assert . strictEqual ( buf_bc . lastIndexOf ( '你好' , 5 , 'binary' ) , - 1 ) ;
375
+ assert . strictEqual ( buf_bc . lastIndexOf ( Buffer . from ( '你好' ) , 7 ) , - 1 ) ;
376
+
357
377
// Test lastIndexOf on a longer buffer:
358
378
var bufferString = new Buffer ( 'a man a plan a canal panama' ) ;
359
379
assert . equal ( 15 , bufferString . lastIndexOf ( 'canal' ) ) ;
360
380
assert . equal ( 21 , bufferString . lastIndexOf ( 'panama' ) ) ;
361
381
assert . equal ( 0 , bufferString . lastIndexOf ( 'a man a plan a canal panama' ) ) ;
362
382
assert . equal ( - 1 , bufferString . lastIndexOf ( 'a man a plan a canal mexico' ) ) ;
383
+ assert . equal ( - 1 , bufferString . lastIndexOf ( 'a man a plan a canal mexico city' ) ) ;
384
+ assert . equal ( - 1 , bufferString . lastIndexOf ( Buffer . from ( 'a' . repeat ( 1000 ) ) ) ) ;
385
+ assert . equal ( 0 , bufferString . lastIndexOf ( 'a man a plan' , 4 ) ) ;
363
386
assert . equal ( 13 , bufferString . lastIndexOf ( 'a ' ) ) ;
364
387
assert . equal ( 13 , bufferString . lastIndexOf ( 'a ' , 13 ) ) ;
365
388
assert . equal ( 6 , bufferString . lastIndexOf ( 'a ' , 12 ) ) ;
0 commit comments