summaryrefslogtreecommitdiff
path: root/test/parallel/test-https-host-headers.js
diff options
context:
space:
mode:
authorJohan Bergström <bugs@bergstroem.nu>2015-03-05 09:36:47 +1100
committerShigeki Ohtsu <ohtsu@iij.ad.jp>2015-03-05 10:31:41 +0900
commit563771d8b1c21cd6bb08630e21e94b4f86253daa (patch)
treec6f1980b45c839e53d53ffdafa379d7913d210f2 /test/parallel/test-https-host-headers.js
parent671fbd5a9de03c5ede968ef6c6b365965a546a55 (diff)
downloadnode-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.js110
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();
+ });
+}