summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Rajlich <nathan@tootallnate.net>2014-03-25 10:48:57 -1000
committerNathan Rajlich <nathan@tootallnate.net>2014-03-28 11:05:35 -1000
commit6d15b163b090f7dd218843fdca55f874da5daead (patch)
tree10d823d0d33e83a8b91c28c3c853376921f9f76b
parent85d595c8c252910559b82952753d831eae1798e5 (diff)
downloadnode-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.js3
-rw-r--r--test/simple/test-http-url.parse-only-support-http-https-protocol.js12
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;
}
});