diff options
author | Johan Bergström <bugs@bergstroem.nu> | 2015-03-05 09:36:47 +1100 |
---|---|---|
committer | Shigeki Ohtsu <ohtsu@iij.ad.jp> | 2015-03-05 10:31:41 +0900 |
commit | 563771d8b1c21cd6bb08630e21e94b4f86253daa (patch) | |
tree | c6f1980b45c839e53d53ffdafa379d7913d210f2 /test/parallel/test-https-host-headers.js | |
parent | 671fbd5a9de03c5ede968ef6c6b365965a546a55 (diff) | |
download | node-new-563771d8b1c21cd6bb08630e21e94b4f86253daa.tar.gz |
test: split parts out of host-headers test into its own test
this makes the separation between http and https testing cleaner
PR-URL: https://github.com/iojs/io.js/pull/1049
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Diffstat (limited to 'test/parallel/test-https-host-headers.js')
-rw-r--r-- | test/parallel/test-https-host-headers.js | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/test/parallel/test-https-host-headers.js b/test/parallel/test-https-host-headers.js new file mode 100644 index 0000000000..b8bcb407f1 --- /dev/null +++ b/test/parallel/test-https-host-headers.js @@ -0,0 +1,110 @@ +var common = require('../common'); +var assert = require('assert'); + +if (!common.hasCrypto) { + console.log('1..0 # Skipped: missing crypto'); + process.exit(); +} +var https = require('https'); + +var fs = require('fs'), + options = { + key: fs.readFileSync(common.fixturesDir + '/keys/agent1-key.pem'), + cert: fs.readFileSync(common.fixturesDir + '/keys/agent1-cert.pem') + }, + httpsServer = https.createServer(options, reqHandler); + +function reqHandler(req, res) { + console.log('Got request: ' + req.headers.host + ' ' + req.url); + if (req.url === '/setHostFalse5') { + assert.equal(req.headers.host, undefined); + } else { + assert.equal(req.headers.host, 'localhost:' + common.PORT, + 'Wrong host header for req[' + req.url + ']: ' + + req.headers.host); + } + res.writeHead(200, {}); + //process.nextTick(function() { res.end('ok'); }); + res.end('ok'); +} + +function thrower(er) { + throw er; +} + +testHttps(); + +function testHttps() { + + console.log('testing https on port ' + common.PORT); + + var counter = 0; + + function cb(res) { + counter--; + console.log('back from https request. counter = ' + counter); + if (counter === 0) { + httpsServer.close(); + console.log('ok'); + } + res.resume(); + } + + httpsServer.listen(common.PORT, function(er) { + if (er) throw er; + + https.get({ + method: 'GET', + path: '/' + (counter++), + host: 'localhost', + //agent: false, + port: common.PORT, + rejectUnauthorized: false + }, cb).on('error', thrower); + + https.request({ + method: 'GET', + path: '/' + (counter++), + host: 'localhost', + //agent: false, + port: common.PORT, + rejectUnauthorized: false + }, cb).on('error', thrower).end(); + + https.request({ + method: 'POST', + path: '/' + (counter++), + host: 'localhost', + //agent: false, + port: common.PORT, + rejectUnauthorized: false + }, cb).on('error', thrower).end(); + + https.request({ + method: 'PUT', + path: '/' + (counter++), + host: 'localhost', + //agent: false, + port: common.PORT, + rejectUnauthorized: false + }, cb).on('error', thrower).end(); + + https.request({ + method: 'DELETE', + path: '/' + (counter++), + host: 'localhost', + //agent: false, + port: common.PORT, + rejectUnauthorized: false + }, cb).on('error', thrower).end(); + + https.get({ + method: 'GET', + path: '/setHostFalse' + (counter++), + host: 'localhost', + setHost: false, + port: common.PORT, + rejectUnauthorized: false + }, cb).on('error', thrower).end(); + }); +} |