diff options
author | Nathan Rajlich <nathan@tootallnate.net> | 2014-03-25 10:48:57 -1000 |
---|---|---|
committer | Nathan Rajlich <nathan@tootallnate.net> | 2014-03-28 11:05:35 -1000 |
commit | 6d15b163b090f7dd218843fdca55f874da5daead (patch) | |
tree | 10d823d0d33e83a8b91c28c3c853376921f9f76b | |
parent | 85d595c8c252910559b82952753d831eae1798e5 (diff) | |
download | node-6d15b163b090f7dd218843fdca55f874da5daead.tar.gz |
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.
-rw-r--r-- | lib/_http_client.js | 3 | ||||
-rw-r--r-- | test/simple/test-http-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 0a3a124db..e0ce29bc0 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 c77df5e20..0f5712641 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; } }); |