@@ -306,190 +306,192 @@ describe('compression()', function () {
306
306
. expect ( 200 , done )
307
307
} )
308
308
309
- it ( 'should support removeListener("drain") after on("drain"); stream present' , function ( done ) {
310
- // compression doesn't proxy listenerCount() to the compression stream, so
311
- // instead watch for a MaxListenersExceededWarning
312
- var hasWarned = false
313
- var onWarning = function ( ) {
314
- hasWarned = true
315
- }
316
- process . on ( 'warning' , onWarning )
317
- var server = createServer ( { threshold : 0 } , function ( req , res ) {
318
- res . setHeader ( 'Content-Type' , 'text/plain' )
319
- var len = bytes ( '40kb' )
320
- var buf = Buffer . alloc ( len , '.' )
321
- res . write ( buf )
322
- for ( var times = 0 ; times < res . getMaxListeners ( ) + 1 ; times ++ ) {
323
- var listener = function ( ) { }
324
- res . on ( 'drain' , listener )
325
- res . removeListener ( 'drain' , listener )
309
+ describe ( 'listeners' , function ( ) {
310
+ it ( 'should support removeListener("drain") after on("drain"); stream present' , function ( done ) {
311
+ // compression doesn't proxy listenerCount() to the compression stream, so
312
+ // instead watch for a MaxListenersExceededWarning
313
+ var hasWarned = false
314
+ var onWarning = function ( ) {
315
+ hasWarned = true
326
316
}
327
- res . end ( )
328
- } )
329
-
330
- request ( server )
331
- . get ( '/' )
332
- . set ( 'Accept-Encoding' , 'gzip' )
333
- . expect ( function ( ) {
334
- process . removeListener ( 'warning' , onWarning )
335
- assert . ok ( ! hasWarned )
317
+ process . on ( 'warning' , onWarning )
318
+ var server = createServer ( { threshold : 0 } , function ( req , res ) {
319
+ res . setHeader ( 'Content-Type' , 'text/plain' )
320
+ var len = bytes ( '40kb' )
321
+ var buf = Buffer . alloc ( len , '.' )
322
+ res . write ( buf )
323
+ for ( var times = 0 ; times < res . getMaxListeners ( ) + 1 ; times ++ ) {
324
+ var listener = function ( ) { }
325
+ res . on ( 'drain' , listener )
326
+ res . removeListener ( 'drain' , listener )
327
+ }
328
+ res . end ( )
336
329
} )
337
- . expect ( 200 , done )
338
- } )
339
330
340
- it ( 'should support removeListener("drain") after addListener("drain")' , function ( done ) {
341
- var hasWarned = false
342
- var onWarning = function ( ) {
343
- hasWarned = true
344
- }
345
- process . on ( 'warning' , onWarning )
346
- var server = createServer ( { threshold : 0 } , function ( req , res ) {
347
- res . setHeader ( 'Content-Type' , 'text/plain' )
348
- var len = bytes ( '40kb' )
349
- var buf = Buffer . alloc ( len , '.' )
350
- res . write ( buf )
351
- for ( var times = 0 ; times < res . getMaxListeners ( ) + 1 ; times ++ ) {
352
- var listener = function ( ) { }
353
- res . addListener ( 'drain' , listener )
354
- res . removeListener ( 'drain' , listener )
355
- }
356
- res . end ( )
331
+ request ( server )
332
+ . get ( '/' )
333
+ . set ( 'Accept-Encoding' , 'gzip' )
334
+ . expect ( function ( ) {
335
+ process . removeListener ( 'warning' , onWarning )
336
+ assert . ok ( ! hasWarned )
337
+ } )
338
+ . expect ( 200 , done )
357
339
} )
358
340
359
- request ( server )
360
- . get ( '/' )
361
- . set ( 'Accept-Encoding' , 'gzip' )
362
- . expect ( function ( ) {
363
- process . removeListener ( 'warning' , onWarning )
364
- assert . ok ( ! hasWarned )
341
+ it ( 'should support removeListener("drain") after addListener("drain")' , function ( done ) {
342
+ var hasWarned = false
343
+ var onWarning = function ( ) {
344
+ hasWarned = true
345
+ }
346
+ process . on ( 'warning' , onWarning )
347
+ var server = createServer ( { threshold : 0 } , function ( req , res ) {
348
+ res . setHeader ( 'Content-Type' , 'text/plain' )
349
+ var len = bytes ( '40kb' )
350
+ var buf = Buffer . alloc ( len , '.' )
351
+ res . write ( buf )
352
+ for ( var times = 0 ; times < res . getMaxListeners ( ) + 1 ; times ++ ) {
353
+ var listener = function ( ) { }
354
+ res . addListener ( 'drain' , listener )
355
+ res . removeListener ( 'drain' , listener )
356
+ }
357
+ res . end ( )
365
358
} )
366
- . expect ( 200 , done )
367
- } )
368
359
369
- it ( 'should support off("drain") after addListener("drain")' , function ( done ) {
370
- if ( ! require ( 'events' ) . EventEmitter . prototype . off ) { // off was added in Node.js v10
371
- this . skip ( )
372
- }
373
- var hasWarned = false
374
- var onWarning = function ( ) {
375
- hasWarned = true
376
- }
377
- process . on ( 'warning' , onWarning )
378
- var server = createServer ( { threshold : 0 } , function ( req , res ) {
379
- res . setHeader ( 'Content-Type' , 'text/plain' )
380
- var len = bytes ( '40kb' )
381
- var buf = Buffer . alloc ( len , '.' )
382
- res . write ( buf )
383
- for ( var times = 0 ; times < res . getMaxListeners ( ) + 1 ; times ++ ) {
384
- var listener = function ( ) { }
385
- res . addListener ( 'drain' , listener )
386
- res . off ( 'drain' , listener )
387
- }
388
- res . end ( )
360
+ request ( server )
361
+ . get ( '/' )
362
+ . set ( 'Accept-Encoding' , 'gzip' )
363
+ . expect ( function ( ) {
364
+ process . removeListener ( 'warning' , onWarning )
365
+ assert . ok ( ! hasWarned )
366
+ } )
367
+ . expect ( 200 , done )
389
368
} )
390
369
391
- request ( server )
392
- . get ( '/' )
393
- . set ( 'Accept-Encoding' , 'gzip' )
394
- . expect ( function ( ) {
395
- process . removeListener ( 'warning' , onWarning )
396
- assert . ok ( ! hasWarned )
370
+ it ( 'should support off("drain") after addListener("drain")' , function ( done ) {
371
+ if ( ! require ( 'events' ) . EventEmitter . prototype . off ) { // off was added in Node.js v10
372
+ this . skip ( )
373
+ }
374
+ var hasWarned = false
375
+ var onWarning = function ( ) {
376
+ hasWarned = true
377
+ }
378
+ process . on ( 'warning' , onWarning )
379
+ var server = createServer ( { threshold : 0 } , function ( req , res ) {
380
+ res . setHeader ( 'Content-Type' , 'text/plain' )
381
+ var len = bytes ( '40kb' )
382
+ var buf = Buffer . alloc ( len , '.' )
383
+ res . write ( buf )
384
+ for ( var times = 0 ; times < res . getMaxListeners ( ) + 1 ; times ++ ) {
385
+ var listener = function ( ) { }
386
+ res . addListener ( 'drain' , listener )
387
+ res . off ( 'drain' , listener )
388
+ }
389
+ res . end ( )
397
390
} )
398
- . expect ( 200 , done )
399
- } )
400
391
401
- it ( 'should support removeListener("drain"); buffered' , function ( done ) {
402
- // Variant of above tests for scenario when the listener is buffered (stream
403
- // is not yet present).
404
- var hasWarned = false
405
- var onWarning = function ( ) {
406
- hasWarned = true
407
- }
408
- process . on ( 'warning' , onWarning )
409
- var server = createServer ( { threshold : 0 } , function ( req , res ) {
410
- res . setHeader ( 'Content-Type' , 'text/plain' )
411
- res . on ( 'end' , function ( ) { } )
412
- for ( var times = 0 ; times < res . getMaxListeners ( ) + 1 ; times ++ ) {
413
- var listener = function ( ) { }
414
- res . on ( 'drain' , listener )
415
- res . removeListener ( 'drain' , listener )
416
- }
417
- res . end ( )
392
+ request ( server )
393
+ . get ( '/' )
394
+ . set ( 'Accept-Encoding' , 'gzip' )
395
+ . expect ( function ( ) {
396
+ process . removeListener ( 'warning' , onWarning )
397
+ assert . ok ( ! hasWarned )
398
+ } )
399
+ . expect ( 200 , done )
418
400
} )
419
401
420
- request ( server )
421
- . get ( '/' )
422
- . set ( 'Accept-Encoding' , 'gzip' )
423
- . expect ( function ( ) {
424
- process . removeListener ( 'warning' , onWarning )
425
- assert . ok ( ! hasWarned )
402
+ it ( 'should support removeListener("drain"); buffered' , function ( done ) {
403
+ // Variant of above tests for scenario when the listener is buffered (stream
404
+ // is not yet present).
405
+ var hasWarned = false
406
+ var onWarning = function ( ) {
407
+ hasWarned = true
408
+ }
409
+ process . on ( 'warning' , onWarning )
410
+ var server = createServer ( { threshold : 0 } , function ( req , res ) {
411
+ res . setHeader ( 'Content-Type' , 'text/plain' )
412
+ res . on ( 'end' , function ( ) { } )
413
+ for ( var times = 0 ; times < res . getMaxListeners ( ) + 1 ; times ++ ) {
414
+ var listener = function ( ) { }
415
+ res . on ( 'drain' , listener )
416
+ res . removeListener ( 'drain' , listener )
417
+ }
418
+ res . end ( )
426
419
} )
427
- . expect ( 200 , done )
428
- } )
429
420
430
- it ( 'should support removeListener("drain"); multiple bindings of same listener, buffered' , function ( done ) {
431
- // Variant of above test for scenario when the listener is buffered (stream
432
- // is not yet present) and the same listener is added two or more times.
433
- var hasWarned = false
434
- var onWarning = function ( ) {
435
- hasWarned = true
436
- }
437
- process . on ( 'warning' , onWarning )
438
- var server = createServer ( { threshold : 0 } , function ( req , res ) {
439
- res . setHeader ( 'Content-Type' , 'text/plain' )
440
- for ( var times = 0 ; times < res . getMaxListeners ( ) + 1 ; times ++ ) {
441
- var listener = function ( ) { }
442
- res . on ( 'drain' , listener )
443
- res . on ( 'drain' , listener )
444
- res . removeListener ( 'drain' , listener )
445
- }
446
- res . end ( )
421
+ request ( server )
422
+ . get ( '/' )
423
+ . set ( 'Accept-Encoding' , 'gzip' )
424
+ . expect ( function ( ) {
425
+ process . removeListener ( 'warning' , onWarning )
426
+ assert . ok ( ! hasWarned )
427
+ } )
428
+ . expect ( 200 , done )
447
429
} )
448
430
449
- request ( server )
450
- . get ( '/' )
451
- . set ( 'Accept-Encoding' , 'gzip' )
452
- . expect ( function ( ) {
453
- process . removeListener ( 'warning' , onWarning )
454
- assert . ok ( ! hasWarned )
431
+ it ( 'should support removeListener("drain"); multiple bindings of same listener, buffered' , function ( done ) {
432
+ // Variant of above test for scenario when the listener is buffered (stream
433
+ // is not yet present) and the same listener is added two or more times.
434
+ var hasWarned = false
435
+ var onWarning = function ( ) {
436
+ hasWarned = true
437
+ }
438
+ process . on ( 'warning' , onWarning )
439
+ var server = createServer ( { threshold : 0 } , function ( req , res ) {
440
+ res . setHeader ( 'Content-Type' , 'text/plain' )
441
+ for ( var times = 0 ; times < res . getMaxListeners ( ) + 1 ; times ++ ) {
442
+ var listener = function ( ) { }
443
+ res . on ( 'drain' , listener )
444
+ res . on ( 'drain' , listener )
445
+ res . removeListener ( 'drain' , listener )
446
+ }
447
+ res . end ( )
455
448
} )
456
- . expect ( 200 , done )
457
- } )
458
449
459
- it ( 'should not leak event listeners when res.unpipe() is used (#135)' , function ( done ) {
460
- // unpipe and stream.Readable were added in v0.9.4
461
- var stream = require ( 'stream' )
462
- if ( ! ( stream . Readable && stream . Readable . prototype . unpipe ) ) {
463
- this . skip ( )
464
- }
465
-
466
- var hasWarned = false
467
- var onWarning = function ( ) {
468
- hasWarned = true
469
- }
470
- var server = createServer ( { threshold : 0 } , function ( req , res ) {
471
- var times = 0
472
- var int = setInterval ( function ( ) {
473
- var rs = require ( 'fs' ) . createReadStream ( 'does not exist' )
474
- rs . on ( 'error' , function ( e ) {
475
- rs . unpipe ( res )
450
+ request ( server )
451
+ . get ( '/' )
452
+ . set ( 'Accept-Encoding' , 'gzip' )
453
+ . expect ( function ( ) {
454
+ process . removeListener ( 'warning' , onWarning )
455
+ assert . ok ( ! hasWarned )
476
456
} )
477
- rs . pipe ( res )
478
- if ( times ++ > res . getMaxListeners ( ) ) {
479
- clearInterval ( int )
480
- res . end ( 'hello, world' )
481
- }
482
- } )
457
+ . expect ( 200 , done )
483
458
} )
484
459
485
- request ( server )
486
- . get ( '/' )
487
- . set ( 'Accept-Encoding' , 'gzip' )
488
- . expect ( function ( ) {
489
- process . removeListener ( 'warning' , onWarning )
490
- assert . ok ( ! hasWarned )
460
+ it ( 'should not leak event listeners when res.unpipe() is used (#135)' , function ( done ) {
461
+ // unpipe and stream.Readable were added in v0.9.4
462
+ var stream = require ( 'stream' )
463
+ if ( ! ( stream . Readable && stream . Readable . prototype . unpipe ) ) {
464
+ this . skip ( )
465
+ }
466
+
467
+ var hasWarned = false
468
+ var onWarning = function ( ) {
469
+ hasWarned = true
470
+ }
471
+ var server = createServer ( { threshold : 0 } , function ( req , res ) {
472
+ var times = 0
473
+ var int = setInterval ( function ( ) {
474
+ var rs = require ( 'fs' ) . createReadStream ( 'does not exist' )
475
+ rs . on ( 'error' , function ( e ) {
476
+ rs . unpipe ( res )
477
+ } )
478
+ rs . pipe ( res )
479
+ if ( times ++ > res . getMaxListeners ( ) ) {
480
+ clearInterval ( int )
481
+ res . end ( 'hello, world' )
482
+ }
483
+ } )
491
484
} )
492
- . expect ( 200 , done )
485
+
486
+ request ( server )
487
+ . get ( '/' )
488
+ . set ( 'Accept-Encoding' , 'gzip' )
489
+ . expect ( function ( ) {
490
+ process . removeListener ( 'warning' , onWarning )
491
+ assert . ok ( ! hasWarned )
492
+ } )
493
+ . expect ( 200 , done )
494
+ } )
493
495
} )
494
496
495
497
describe ( 'http2' , function ( ) {
0 commit comments