From 6d15b163b090f7dd218843fdca55f874da5daead Mon Sep 17 00:00:00 2001 From: Nathan Rajlich Date: Tue, 25 Mar 2014 10:48:57 -1000 Subject: [PATCH] http: better client "protocol not supported" error Include the "expected protocol" in the Error message string, which evaluates to "http:" for the `http` core module, and "https:" for the `https` module. Closes #7355. --- lib/_http_client.js | 3 ++- ...ttp-url.parse-only-support-http-https-protocol.js | 12 ++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/_http_client.js b/lib/_http_client.js index 0a3a124db7..e0ce29bc01 100644 --- a/lib/_http_client.js +++ b/lib/_http_client.js @@ -72,7 +72,8 @@ function ClientRequest(options, cb) { // an invalid request. throw new TypeError('Request path contains unescaped characters.'); } else if (protocol !== expectedProtocol) { - throw new Error('Protocol:' + protocol + ' not supported.'); + throw new Error('Protocol "' + protocol + '" not supported. ' + + 'Expected "' + expectedProtocol + '".'); } var defaultPort = options.defaultPort || self.agent && self.agent.defaultPort; diff --git a/test/simple/test-http-url.parse-only-support-http-https-protocol.js b/test/simple/test-http-url.parse-only-support-http-https-protocol.js index c77df5e20b..0f57126419 100644 --- a/test/simple/test-http-url.parse-only-support-http-https-protocol.js +++ b/test/simple/test-http-url.parse-only-support-http-https-protocol.js @@ -29,7 +29,7 @@ assert.throws(function() { http.request(url.parse('file:///whatever')); }, function(err) { if (err instanceof Error) { - assert.strictEqual(err.message, 'Protocol:file: not supported.'); + assert.strictEqual(err.message, 'Protocol "file:" not supported. Expected "http:".'); return true; } }); @@ -38,7 +38,7 @@ assert.throws(function() { http.request(url.parse('mailto:asdf@asdf.com')); }, function(err) { if (err instanceof Error) { - assert.strictEqual(err.message, 'Protocol:mailto: not supported.'); + assert.strictEqual(err.message, 'Protocol "mailto:" not supported. Expected "http:".'); return true; } }); @@ -47,7 +47,7 @@ assert.throws(function() { http.request(url.parse('ftp://www.example.com')); }, function(err) { if (err instanceof Error) { - assert.strictEqual(err.message, 'Protocol:ftp: not supported.'); + assert.strictEqual(err.message, 'Protocol "ftp:" not supported. Expected "http:".'); return true; } }); @@ -56,7 +56,7 @@ assert.throws(function() { http.request(url.parse('javascript:alert(\'hello\');')); }, function(err) { if (err instanceof Error) { - assert.strictEqual(err.message, 'Protocol:javascript: not supported.'); + assert.strictEqual(err.message, 'Protocol "javascript:" not supported. Expected "http:".'); return true; } }); @@ -65,7 +65,7 @@ assert.throws(function() { http.request(url.parse('xmpp:isaacschlueter@jabber.org')); }, function(err) { if (err instanceof Error) { - assert.strictEqual(err.message, 'Protocol:xmpp: not supported.'); + assert.strictEqual(err.message, 'Protocol "xmpp:" not supported. Expected "http:".'); return true; } }); @@ -74,7 +74,7 @@ assert.throws(function() { http.request(url.parse('f://some.host/path')); }, function(err) { if (err instanceof Error) { - assert.strictEqual(err.message, 'Protocol:f: not supported.'); + assert.strictEqual(err.message, 'Protocol "f:" not supported. Expected "http:".'); return true; } });