Skip to content

Commit ad9bd8f

Browse files
committed
Throw on unknown charset option
fixes #789
1 parent 08105cf commit ad9bd8f

File tree

3 files changed

+24
-1
lines changed

3 files changed

+24
-1
lines changed

Changes.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ you spot any mistakes.
1111
* Prevent enqueuing sequences after fatal error #400
1212
* Fix geometry parser for empty fields #742
1313
* Accept lower-case charset option
14+
* Throw on unknown charset option #789
1415

1516
## v2.1.1 (2014-03-13)
1617

lib/ConnectionConfig.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,13 @@ ConnectionConfig.getDefaultFlags = function(options) {
8585
};
8686

8787
ConnectionConfig.getCharsetNumber = function getCharsetNumber(charset) {
88-
return Charsets[charset.toUpperCase()];
88+
var num = Charsets[charset.toUpperCase()];
89+
90+
if (num === undefined) {
91+
throw new TypeError('Unknown charset \'' + charset + '\'');
92+
}
93+
94+
return num;
8995
};
9096

9197
ConnectionConfig.parseUrl = function(url) {

test/unit/test-ConnectionConfig.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,20 @@ test('ConnectionConfig#Constructor', {
3434

3535
assert.equal(config.charsetNumber, Charsets.BIG5_CHINESE_CI);
3636
},
37+
38+
'throws on unknown charset': function() {
39+
var error;
40+
41+
try {
42+
var config = new ConnectionConfig({
43+
charset: 'INVALID_CHARSET',
44+
});
45+
} catch (err) {
46+
error = err;
47+
}
48+
49+
assert.ok(error);
50+
assert.equal(error.name, 'TypeError');
51+
assert.equal(error.message, 'Unknown charset \'INVALID_CHARSET\'');
52+
},
3753
});

0 commit comments

Comments
 (0)