@@ -364,6 +364,49 @@ describe('net module', function () {
364364 urlRequest . end ( )
365365 } )
366366
367+ it ( 'should be able to set a non-string object as a header value' , function ( done ) {
368+ const requestUrl = '/requestUrl'
369+ const customHeaderName = 'Some-Integer-Value'
370+ const customHeaderValue = 900
371+ server . on ( 'request' , function ( request , response ) {
372+ switch ( request . url ) {
373+ case requestUrl :
374+ assert . equal ( request . headers [ customHeaderName . toLowerCase ( ) ] ,
375+ customHeaderValue . toString ( ) )
376+ response . statusCode = 200
377+ response . statusMessage = 'OK'
378+ response . end ( )
379+ break
380+ default :
381+ assert . equal ( request . url , requestUrl )
382+ }
383+ } )
384+ const urlRequest = net . request ( {
385+ method : 'GET' ,
386+ url : `${ server . url } ${ requestUrl } `
387+ } )
388+ urlRequest . on ( 'response' , function ( response ) {
389+ const statusCode = response . statusCode
390+ assert . equal ( statusCode , 200 )
391+ response . pause ( )
392+ response . on ( 'end' , function ( ) {
393+ done ( )
394+ } )
395+ response . resume ( )
396+ } )
397+ urlRequest . setHeader ( customHeaderName , customHeaderValue )
398+ assert . equal ( urlRequest . getHeader ( customHeaderName ) ,
399+ customHeaderValue )
400+ assert . equal ( urlRequest . getHeader ( customHeaderName . toLowerCase ( ) ) ,
401+ customHeaderValue )
402+ urlRequest . write ( '' )
403+ assert . equal ( urlRequest . getHeader ( customHeaderName ) ,
404+ customHeaderValue )
405+ assert . equal ( urlRequest . getHeader ( customHeaderName . toLowerCase ( ) ) ,
406+ customHeaderValue )
407+ urlRequest . end ( )
408+ } )
409+
367410 it ( 'should not be able to set a custom HTTP request header after first write' , function ( done ) {
368411 const requestUrl = '/requestUrl'
369412 const customHeaderName = 'Some-Custom-Header-Name'
0 commit comments