@@ -278,6 +278,64 @@ describe('onHeaders(res, listener)', function () {
278278 . expect ( 201 , done )
279279 } )
280280 } )
281+
282+ describe ( 'writeHead(status, flat arr)' , function ( ) {
283+ it ( 'should be available in listener' , function ( done ) {
284+ var server = createServer ( listener , handler )
285+
286+ function handler ( req , res ) {
287+ res . writeHead ( 201 , [ 'X-Outgoing' , 'test' ] )
288+ }
289+
290+ function listener ( req , res ) {
291+ this . setHeader ( 'X-Status' , this . statusCode )
292+ this . setHeader ( 'X-Outgoing-Echo' , this . getHeader ( 'X-Outgoing' ) )
293+ }
294+
295+ request ( server )
296+ . get ( '/' )
297+ . expect ( 'X-Status' , '201' )
298+ . expect ( 'X-Outgoing-Echo' , 'test' )
299+ . expect ( 201 , done )
300+ } )
301+ } )
302+
303+ describe ( 'writeHead(status, invalid flat arr)' , function ( ) {
304+ it ( 'should throw on malformed array' , function ( done ) {
305+ var server = createServer ( listener , handler )
306+
307+ function handler ( req , res ) {
308+ assert . throws ( function ( ) {
309+ res . writeHead ( 201 , [ 'foo' , 'bar' , 'baz' ] )
310+ } ,
311+ TypeError )
312+ }
313+
314+ function listener ( req , res ) {
315+ }
316+
317+ // gets a 200 here because we caught the error via assert.throws
318+ request ( server )
319+ . get ( '/' )
320+ . expect ( 200 , done )
321+ } )
322+
323+ it ( 'should return 500 on malformed array' , function ( done ) {
324+ var server = createServer ( listener , handler )
325+
326+ function handler ( req , res ) {
327+ res . writeHead ( 201 , [ 'foo' , 'bar' , 'baz' ] )
328+ res . end ( 'no soup for you!' )
329+ }
330+
331+ function listener ( req , res ) {
332+ }
333+
334+ request ( server )
335+ . get ( '/' )
336+ . expect ( 500 , done )
337+ } )
338+ } )
281339} )
282340
283341function createServer ( listener , handler ) {
0 commit comments