Skip to content

Commit f298411

Browse files
committed
[test] Add core test-http-host-headers test
Modifications: * make client connect to `PROXY_PORT` instead of `PORT` * remove https part * change assertion to match `PROXY_PORT` instead of `PORT`
1 parent 5ac9878 commit f298411

File tree

1 file changed

+101
-0
lines changed

1 file changed

+101
-0
lines changed
+101
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
// Copyright Joyent, Inc. and other Node contributors.
2+
//
3+
// Permission is hereby granted, free of charge, to any person obtaining a
4+
// copy of this software and associated documentation files (the
5+
// "Software"), to deal in the Software without restriction, including
6+
// without limitation the rights to use, copy, modify, merge, publish,
7+
// distribute, sublicense, and/or sell copies of the Software, and to permit
8+
// persons to whom the Software is furnished to do so, subject to the
9+
// following conditions:
10+
//
11+
// The above copyright notice and this permission notice shall be included
12+
// in all copies or substantial portions of the Software.
13+
//
14+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15+
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16+
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
17+
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18+
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
19+
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20+
// USE OR OTHER DEALINGS IN THE SOFTWARE.
21+
22+
// libuv-broken
23+
24+
25+
var http = require('http'),
26+
common = require('../common'),
27+
assert = require('assert'),
28+
httpServer = http.createServer(reqHandler);
29+
30+
function reqHandler(req, res) {
31+
console.log('Got request: ' + req.headers.host + ' ' + req.url);
32+
if (req.url === '/setHostFalse5') {
33+
assert.equal(req.headers.host, undefined);
34+
} else {
35+
assert.equal(req.headers.host, 'localhost:' + common.PROXY_PORT,
36+
'Wrong host header for req[' + req.url + ']: ' +
37+
req.headers.host);
38+
}
39+
res.writeHead(200, {});
40+
//process.nextTick(function() { res.end('ok'); });
41+
res.end('ok');
42+
}
43+
44+
function thrower(er) {
45+
throw er;
46+
}
47+
48+
testHttp();
49+
50+
function testHttp() {
51+
52+
console.log('testing http on port ' + common.PROXY_PORT + ' (proxied to ' +
53+
common.PORT + ')');
54+
55+
var counter = 0;
56+
57+
function cb() {
58+
counter--;
59+
console.log('back from http request. counter = ' + counter);
60+
if (counter === 0) {
61+
httpServer.close();
62+
}
63+
}
64+
65+
httpServer.listen(common.PORT, function(er) {
66+
console.error('listening on ' + common.PORT);
67+
68+
if (er) throw er;
69+
70+
http.get({ method: 'GET',
71+
path: '/' + (counter++),
72+
host: 'localhost',
73+
//agent: false,
74+
port: common.PROXY_PORT }, cb).on('error', thrower);
75+
76+
http.request({ method: 'GET',
77+
path: '/' + (counter++),
78+
host: 'localhost',
79+
//agent: false,
80+
port: common.PROXY_PORT }, cb).on('error', thrower).end();
81+
82+
http.request({ method: 'POST',
83+
path: '/' + (counter++),
84+
host: 'localhost',
85+
//agent: false,
86+
port: common.PROXY_PORT }, cb).on('error', thrower).end();
87+
88+
http.request({ method: 'PUT',
89+
path: '/' + (counter++),
90+
host: 'localhost',
91+
//agent: false,
92+
port: common.PROXY_PORT }, cb).on('error', thrower).end();
93+
94+
http.request({ method: 'DELETE',
95+
path: '/' + (counter++),
96+
host: 'localhost',
97+
//agent: false,
98+
port: common.PROXY_PORT }, cb).on('error', thrower).end();
99+
});
100+
}
101+

0 commit comments

Comments
 (0)