From 14b4bcb96f354db884403e3806de05a08580aa5b Mon Sep 17 00:00:00 2001 From: Roman Shtylman Date: Mon, 24 Feb 2014 19:43:34 -0500 Subject: [PATCH] add tests for host header transform --- test/index.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/test/index.js b/test/index.js index 0a39a0e..9b429f7 100644 --- a/test/index.js +++ b/test/index.js @@ -8,7 +8,7 @@ var localtunnel = require('../'); test('setup local http server', function(done) { var server = http.createServer(); server.on('request', function(req, res) { - res.write('foo'); + res.write(req.headers.host); res.end(); }); server.listen(function() { @@ -51,7 +51,7 @@ test('query localtunnel server w/ ident', function(done) { }); res.on('end', function() { - assert.equal('foo', body); + assert(/.*[.]localtunnel[.]me/.test(body), body); done(); }); }); @@ -67,3 +67,47 @@ test('request specific domain', function(done) { done(); }); }); + +suite('local-host'); + +test('setup localtunnel client', function(done) { + var opt = { + local_host: '127.0.0.1' + }; + localtunnel(test._fake_port, opt, function(err, tunnel) { + assert.ifError(err); + assert.ok(new RegExp('^https:\/\/.*localtunnel.me' + '$').test(tunnel.url)); + test._fake_url = tunnel.url; + done(); + }); +}); + +test('override Host header with local-host', function(done) { + var uri = test._fake_url; + var parsed = url.parse(uri); + + var opt = { + host: parsed.host, + port: 443, + headers: { + host: parsed.hostname + }, + path: '/' + }; + + var req = https.request(opt, function(res) { + res.setEncoding('utf8'); + var body = ''; + + res.on('data', function(chunk) { + body += chunk; + }); + + res.on('end', function() { + assert.equal(body, '127.0.0.1'); + done(); + }); + }); + + req.end(); +});