diff options
author | Brendan Ashworth <brendan.ashworth@me.com> | 2015-04-18 13:26:15 -0700 |
---|---|---|
committer | Brendan Ashworth <brendan.ashworth@me.com> | 2015-04-18 14:25:52 -0700 |
commit | 6bf85bc81e7e61b4126c50d05555d5928343423b (patch) | |
tree | ee251af56d5a0d36525d22cbc6762b9d1dcf18f1 /test | |
parent | 718059777c6eb41d930db787eec8748ab35f7deb (diff) | |
download | android-node-v8-6bf85bc81e7e61b4126c50d05555d5928343423b.tar.gz android-node-v8-6bf85bc81e7e61b4126c50d05555d5928343423b.tar.bz2 android-node-v8-6bf85bc81e7e61b4126c50d05555d5928343423b.zip |
test: add test for 06cfff9 regression
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>
Diffstat (limited to 'test')
-rw-r--r-- | test/parallel/test-http-request-dont-override-options.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/test/parallel/test-http-request-dont-override-options.js b/test/parallel/test-http-request-dont-override-options.js new file mode 100644 index 0000000000..66d82caeac --- /dev/null +++ b/test/parallel/test-http-request-dont-override-options.js @@ -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); +}); |