mirror of https://github.com/lukechilds/node.git
Browse Source
This commit adds a test to ensure all options are NOT modified after passing them to http.request. Specifically options.host and options.port are the most prominent that would previously error, but add the other options that have default values. options.host and options.port were overridden for the one-argument net.createConnection(options) call. PR-URL: https://github.com/iojs/io.js/pull/1467 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>v2.0.2
Brendan Ashworth
10 years ago
1 changed files with 45 additions and 0 deletions
@ -0,0 +1,45 @@ |
|||
'use strict'; |
|||
|
|||
const common = require('../common'); |
|||
const assert = require('assert'); |
|||
const http = require('http'); |
|||
|
|||
var requests = 0; |
|||
|
|||
http.createServer(function(req, res) { |
|||
res.writeHead(200); |
|||
res.end('ok'); |
|||
|
|||
requests++; |
|||
}).listen(common.PORT).unref(); |
|||
|
|||
var agent = new http.Agent(); |
|||
agent.defaultPort = common.PORT; |
|||
|
|||
// options marked as explicitly undefined for readability
|
|||
// in this test, they should STAY undefined as options should not
|
|||
// be mutable / modified
|
|||
var options = { |
|||
host: undefined, |
|||
hostname: common.localhostIPv4, |
|||
port: undefined, |
|||
defaultPort: undefined, |
|||
path: undefined, |
|||
method: undefined, |
|||
agent: agent |
|||
}; |
|||
|
|||
http.request(options, function(res) { |
|||
res.resume(); |
|||
}).end(); |
|||
|
|||
process.on('exit', function() { |
|||
assert.equal(requests, 1); |
|||
|
|||
assert.strictEqual(options.host, undefined); |
|||
assert.strictEqual(options.hostname, common.localhostIPv4); |
|||
assert.strictEqual(options.port, undefined); |
|||
assert.strictEqual(options.defaultPort, undefined); |
|||
assert.strictEqual(options.path, undefined); |
|||
assert.strictEqual(options.method, undefined); |
|||
}); |
Loading…
Reference in new issue