Skip to content

Commit 213baf5

Browse files
committed
add input encoding test for exeecute
1 parent d44ccdb commit 213baf5

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

test/integration/connection/encoding/test-charset-results.js

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ var payload = 'привет, мир';
77

88
function tryEncoding (encoding, cb) {
99
connection.query('set character_set_results = ?', [encoding], function (err) {
10+
assert.ifError(err);
1011
connection.query('SELECT ?', [payload], function (err, rows, fields) {
1112
assert.ifError(err);
1213
var iconvEncoding = encoding;
@@ -21,11 +22,38 @@ function tryEncoding (encoding, cb) {
2122
});
2223
}
2324

25+
function tryEncodingExecute (encoding, cb) {
26+
connection.execute('set character_set_results = ?', [encoding], function (err) {
27+
assert.ifError(err);
28+
connection.execute('SELECT ? as n', [payload], function (err, rows, fields) {
29+
assert.ifError(err);
30+
var iconvEncoding = encoding;
31+
if (encoding == 'utf8mb4') {
32+
iconvEncoding = 'utf8';
33+
}
34+
assert.equal(mysql.CharsetToEncoding[fields[0].characterSet], iconvEncoding);
35+
// TODO: figure out correct metadata encodings setup for binary protocol
36+
// assert.equal(fields[0].name, payload);
37+
assert.equal(rows[0][fields[0].name], payload);
38+
cb();
39+
});
40+
});
41+
}
42+
43+
// christmas tree!!! :)
2444
tryEncoding('cp1251', function () {
2545
tryEncoding('koi8r', function () {
2646
tryEncoding('cp866', function () {
2747
tryEncoding('utf8mb4', function () {
28-
connection.end();
48+
tryEncodingExecute('cp1251', function () {
49+
tryEncodingExecute('koi8r', function () {
50+
tryEncodingExecute('cp866', function () {
51+
tryEncodingExecute('utf8mb4', function () {
52+
connection.end();
53+
});
54+
});
55+
});
56+
});
2957
});
3058
});
3159
});

0 commit comments

Comments
 (0)