updated to v2
This commit is contained in:
61
node_modules/request/tests/test-tunnel.js
generated
vendored
Normal file
61
node_modules/request/tests/test-tunnel.js
generated
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
// test that we can tunnel a https request over an http proxy
|
||||
// keeping all the CA and whatnot intact.
|
||||
//
|
||||
// Note: this requires that squid is installed.
|
||||
// If the proxy fails to start, we'll just log a warning and assume success.
|
||||
|
||||
var server = require('./server')
|
||||
, assert = require('assert')
|
||||
, request = require('../main.js')
|
||||
, fs = require('fs')
|
||||
, path = require('path')
|
||||
, caFile = path.resolve(__dirname, 'ssl/npm-ca.crt')
|
||||
, ca = fs.readFileSync(caFile)
|
||||
, child_process = require('child_process')
|
||||
, sqConf = path.resolve(__dirname, 'squid.conf')
|
||||
, sqArgs = ['-f', sqConf, '-N', '-d', '5']
|
||||
, proxy = 'http://localhost:3128'
|
||||
, hadError = null
|
||||
|
||||
var squid = child_process.spawn('squid', sqArgs);
|
||||
var ready = false
|
||||
|
||||
squid.stderr.on('data', function (c) {
|
||||
console.error('SQUIDERR ' + c.toString().trim().split('\n')
|
||||
.join('\nSQUIDERR '))
|
||||
ready = c.toString().match(/ready to serve requests/i)
|
||||
})
|
||||
|
||||
squid.stdout.on('data', function (c) {
|
||||
console.error('SQUIDOUT ' + c.toString().trim().split('\n')
|
||||
.join('\nSQUIDOUT '))
|
||||
})
|
||||
|
||||
squid.on('exit', function (c) {
|
||||
console.error('exit '+c)
|
||||
if (c && !ready) {
|
||||
console.error('squid must be installed to run this test.')
|
||||
c = null
|
||||
hadError = null
|
||||
process.exit(0)
|
||||
return
|
||||
}
|
||||
|
||||
if (c) {
|
||||
hadError = hadError || new Error('Squid exited with '+c)
|
||||
}
|
||||
if (hadError) throw hadError
|
||||
})
|
||||
|
||||
setTimeout(function F () {
|
||||
if (!ready) return setTimeout(F, 100)
|
||||
request({ uri: 'https://registry.npmjs.org/request/'
|
||||
, proxy: 'http://localhost:3128'
|
||||
, ca: ca
|
||||
, json: true }, function (er, body) {
|
||||
hadError = er
|
||||
console.log(er || typeof body)
|
||||
if (!er) console.log("ok")
|
||||
squid.kill('SIGKILL')
|
||||
})
|
||||
}, 100)
|
||||
Reference in New Issue
Block a user