test: split parts out of host-headers test into its own test
authorJohan Bergström <bugs@bergstroem.nu>
Wed, 4 Mar 2015 22:36:47 +0000 (09:36 +1100)
committerShigeki Ohtsu <ohtsu@iij.ad.jp>
Thu, 5 Mar 2015 01:31:41 +0000 (10:31 +0900)
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>
test/parallel/test-http-host-headers.js
test/parallel/test-https-host-headers.js [new file with mode: 0644]

index 0264d5f..10e5030 100644 (file)
@@ -1,20 +1,8 @@
 var http = require('http'),
-    fs = require('fs'),
     common = require('../common'),
     assert = require('assert'),
-    options = {
-      key: fs.readFileSync(common.fixturesDir + '/keys/agent1-key.pem'),
-      cert: fs.readFileSync(common.fixturesDir + '/keys/agent1-cert.pem')
-    },
     httpServer = http.createServer(reqHandler);
 
-if(common.hasCrypto) {
-  var https = require('https'),
-      httpsServer = https.createServer(options, reqHandler);
-} else {
-  console.log('1..0 # Skipped: missing crypto');
-}
-
 function reqHandler(req, res) {
   console.log('Got request: ' + req.headers.host + ' ' + req.url);
   if (req.url === '/setHostFalse5') {
@@ -46,9 +34,6 @@ function testHttp() {
     console.log('back from http request. counter = ' + counter);
     if (counter === 0) {
       httpServer.close();
-      if(common.hasCrypto) {
-        testHttps();
-      }
     }
     res.resume();
   }
@@ -104,78 +89,3 @@ function testHttp() {
     }, cb).on('error', thrower).end();
   });
 }
-
-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();
-  });
-}
diff --git a/test/parallel/test-https-host-headers.js b/test/parallel/test-https-host-headers.js
new file mode 100644 (file)
index 0000000..b8bcb40
--- /dev/null
@@ -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();
+  });
+}