@@ -90,6 +90,101 @@ test('download over https with custom ca', function (t) {
9090  } ) 
9191} ) 
9292
93+ test ( 'download over http with proxy' ,  function  ( t )  { 
94+   t . plan ( 2 ) 
95+ 
96+   var  server  =  http . createServer ( function  ( req ,  res )  { 
97+     t . strictEqual ( req . headers [ 'user-agent' ] , 
98+       'node-gyp v42 (node '  +  process . version  +  ')' ) 
99+     res . end ( 'ok' ) 
100+     pserver . close ( function  ( )  { 
101+       server . close ( ) 
102+     } ) 
103+   } ) 
104+ 
105+   var  pserver  =  http . createServer ( function  ( req ,  res )  { 
106+     t . strictEqual ( req . headers [ 'user-agent' ] , 
107+       'node-gyp v42 (node '  +  process . version  +  ')' ) 
108+     res . end ( 'proxy ok' ) 
109+     server . close ( function  ( )  { 
110+       pserver . close ( ) 
111+     } ) 
112+   } ) 
113+ 
114+   var  host  =  'localhost' 
115+   server . listen ( 0 ,  host ,  function  ( )  { 
116+     var  port  =  this . address ( ) . port 
117+     pserver . listen ( port  +  1 ,  host ,  function  ( )  { 
118+       var  gyp  =  { 
119+         opts : { 
120+           proxy : 'http://'  +  host  +  ':'  +  ( port  +  1 ) 
121+         } , 
122+         version : '42' 
123+       } 
124+       var  url  =  'http://'  +  host  +  ':'  +  port 
125+       var  req  =  install . test . download ( gyp ,  { } ,  url ) 
126+       req . on ( 'response' ,  function  ( res )  { 
127+         var  body  =  '' 
128+         res . setEncoding ( 'utf8' ) 
129+         res . on ( 'data' ,  function  ( data )  { 
130+           body  +=  data 
131+         } ) 
132+         res . on ( 'end' ,  function  ( )  { 
133+           t . strictEqual ( body ,  'proxy ok' ) 
134+         } ) 
135+       } ) 
136+     } ) 
137+   } ) 
138+ } ) 
139+ 
140+ test ( 'download over http with noproxy' ,  function  ( t )  { 
141+   t . plan ( 2 ) 
142+ 
143+   var  server  =  http . createServer ( function  ( req ,  res )  { 
144+     t . strictEqual ( req . headers [ 'user-agent' ] , 
145+       'node-gyp v42 (node '  +  process . version  +  ')' ) 
146+     res . end ( 'ok' ) 
147+     pserver . close ( function  ( )  { 
148+       server . close ( ) 
149+     } ) 
150+   } ) 
151+ 
152+   var  pserver  =  http . createServer ( function  ( req ,  res )  { 
153+     t . strictEqual ( req . headers [ 'user-agent' ] , 
154+       'node-gyp v42 (node '  +  process . version  +  ')' ) 
155+     res . end ( 'proxy ok' ) 
156+     server . close ( function  ( )  { 
157+       pserver . close ( ) 
158+     } ) 
159+   } ) 
160+ 
161+   var  host  =  'localhost' 
162+   server . listen ( 0 ,  host ,  function  ( )  { 
163+     var  port  =  this . address ( ) . port 
164+     pserver . listen ( port  +  1 ,  host ,  function  ( )  { 
165+       var  gyp  =  { 
166+         opts : { 
167+           proxy : 'http://'  +  host  +  ':'  +  ( port  +  1 ) , 
168+           noproxy : 'localhost' 
169+         } , 
170+         version : '42' 
171+       } 
172+       var  url  =  'http://'  +  host  +  ':'  +  port 
173+       var  req  =  install . test . download ( gyp ,  { } ,  url ) 
174+       req . on ( 'response' ,  function  ( res )  { 
175+         var  body  =  '' 
176+         res . setEncoding ( 'utf8' ) 
177+         res . on ( 'data' ,  function  ( data )  { 
178+           body  +=  data 
179+         } ) 
180+         res . on ( 'end' ,  function  ( )  { 
181+           t . strictEqual ( body ,  'ok' ) 
182+         } ) 
183+       } ) 
184+     } ) 
185+   } ) 
186+ } ) 
187+ 
93188test ( 'download with missing cafile' ,  function  ( t )  { 
94189  t . plan ( 1 ) 
95190  var  gyp  =  { 
0 commit comments