THRIFT-3200 JS and nodejs do not encode JSON protocol binary fields as base64
Client: Javascript
Patch: Nobuaki Sukegawa
This closes #698
diff --git a/lib/js/test/test.js b/lib/js/test/test.js
index 0c7d2cb..2d8ec9b 100755
--- a/lib/js/test/test.js
+++ b/lib/js/test/test.js
@@ -58,7 +58,7 @@
if (!details.result) {
console.log('======== FAIL ========');
console.log('TestName: ' + details.name);
- details.message && console.log(details.message);
+ if (details.message) console.log(details.message);
console.log('Expected: ' + details.expected);
console.log('Actual : ' + details.actual);
console.log('======================');
@@ -86,6 +86,24 @@
test("Void", function() {
equal(client.testVoid(), undefined);
});
+ test("Binary (String)", function() {
+ var binary = '';
+ for (var v = 255; v >= 0; --v) {
+ binary += String.fromCharCode(v);
+ }
+ equal(client.testBinary(binary), binary);
+ });
+ test("Binary (Uint8Array)", function() {
+ var binary = '';
+ for (var v = 255; v >= 0; --v) {
+ binary += String.fromCharCode(v);
+ }
+ var arr = new Uint8Array(binary.length);
+ for (var i = 0; i < binary.length; ++i) {
+ arr[i] = binary[i].charCodeAt();
+ }
+ equal(client.testBinary(arr), binary);
+ });
test("String", function() {
equal(client.testString(''), '');
equal(client.testString(stringTest), stringTest);