summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorBrendan Ashworth <brendan.ashworth@me.com>2015-04-18 13:26:15 -0700
committerBrendan Ashworth <brendan.ashworth@me.com>2015-04-18 14:25:52 -0700
commit6bf85bc81e7e61b4126c50d05555d5928343423b (patch)
treeee251af56d5a0d36525d22cbc6762b9d1dcf18f1 /test
parent718059777c6eb41d930db787eec8748ab35f7deb (diff)
downloadandroid-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.js45
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);
+});