mirror of
				https://github.com/actions/setup-go.git
				synced 2025-10-31 07:16:23 +00:00 
			
		
		
		
	Add setup-go
This commit is contained in:
		
							
								
								
									
										108
									
								
								node_modules/tunnel/test/http-over-http.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										108
									
								
								node_modules/tunnel/test/http-over-http.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,108 @@ | ||||
| var http = require('http'); | ||||
| var net = require('net'); | ||||
| var should = require('should'); | ||||
| var tunnel = require('../index'); | ||||
|  | ||||
| describe('HTTP over HTTP', function() { | ||||
|   it('should finish without error', function(done) { | ||||
|     var serverPort = 3000; | ||||
|     var proxyPort = 3001; | ||||
|     var poolSize = 3; | ||||
|     var N = 10; | ||||
|     var serverConnect = 0; | ||||
|     var proxyConnect = 0; | ||||
|     var clientConnect = 0; | ||||
|     var server; | ||||
|     var proxy; | ||||
|     var agent; | ||||
|      | ||||
|     server = http.createServer(function(req, res) { | ||||
|       tunnel.debug('SERVER: got request'); | ||||
|       ++serverConnect; | ||||
|       res.writeHead(200); | ||||
|       res.end('Hello' + req.url); | ||||
|       tunnel.debug('SERVER: sending response'); | ||||
|     }); | ||||
|     server.listen(serverPort, setupProxy); | ||||
|  | ||||
|     function setupProxy() { | ||||
|       proxy = http.createServer(function(req, res) { | ||||
|         should.fail(); | ||||
|       }); | ||||
|       proxy.on('upgrade', onConnect); // for v0.6 | ||||
|       proxy.on('connect', onConnect); // for v0.7 or later | ||||
|  | ||||
|       function onConnect(req, clientSocket, head) { | ||||
|         tunnel.debug('PROXY: got CONNECT request'); | ||||
|  | ||||
|         req.method.should.equal('CONNECT'); | ||||
|         req.url.should.equal('localhost:' + serverPort); | ||||
|         req.headers.should.not.have.property('transfer-encoding'); | ||||
|         req.headers.should.have.property('proxy-authorization', | ||||
|             'Basic ' + new Buffer('user:password').toString('base64')); | ||||
|         ++proxyConnect; | ||||
|      | ||||
|         tunnel.debug('PROXY: creating a tunnel'); | ||||
|         var serverSocket = net.connect(serverPort, function() { | ||||
|           tunnel.debug('PROXY: replying to client CONNECT request'); | ||||
|           clientSocket.write('HTTP/1.1 200 Connection established\r\n\r\n'); | ||||
|           clientSocket.pipe(serverSocket); | ||||
|           serverSocket.write(head); | ||||
|           serverSocket.pipe(clientSocket); | ||||
|           // workaround, see joyent/node#2524 | ||||
|           serverSocket.on('end', function() { | ||||
|             clientSocket.end(); | ||||
|           }); | ||||
|         }); | ||||
|       } | ||||
|       proxy.listen(proxyPort, setupClient); | ||||
|     } | ||||
|  | ||||
|     function setupClient() { | ||||
|       agent = tunnel.httpOverHttp({ | ||||
|         maxSockets: poolSize, | ||||
|         proxy: { | ||||
|           port: proxyPort, | ||||
|           proxyAuth: 'user:password' | ||||
|         } | ||||
|       }); | ||||
|  | ||||
|       for (var i = 0; i < N; ++i) { | ||||
|         doClientRequest(i); | ||||
|       } | ||||
|  | ||||
|       function doClientRequest(i) { | ||||
|         tunnel.debug('CLIENT: Making HTTP request (%d)', i); | ||||
|         var req = http.get({ | ||||
|           port: serverPort, | ||||
|           path: '/' + i, | ||||
|           agent: agent | ||||
|         }, function(res) { | ||||
|           tunnel.debug('CLIENT: got HTTP response (%d)', i); | ||||
|           res.setEncoding('utf8'); | ||||
|           res.on('data', function(data) { | ||||
|             data.should.equal('Hello/' + i); | ||||
|           }); | ||||
|           res.on('end', function() { | ||||
|             ++clientConnect; | ||||
|             if (clientConnect === N) { | ||||
|               proxy.close(); | ||||
|               server.close(); | ||||
|             } | ||||
|           }); | ||||
|         }); | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     server.on('close', function() { | ||||
|       serverConnect.should.equal(N); | ||||
|       proxyConnect.should.equal(poolSize); | ||||
|       clientConnect.should.equal(N); | ||||
|      | ||||
|       agent.sockets.should.be.empty; | ||||
|       agent.requests.should.be.empty; | ||||
|    | ||||
|       done(); | ||||
|     }); | ||||
|   }); | ||||
| }); | ||||
		Reference in New Issue
	
	Block a user