diff --git a/test/e2e-specs.js b/test/e2e-specs.js index 83f753d..937c2e3 100644 --- a/test/e2e-specs.js +++ b/test/e2e-specs.js @@ -843,7 +843,34 @@ const tests = [ const b64Logo = rawLogo.toString('base64'); JSON.parse(result.data.data).files.CordovaLogo.should.be.equal('data:image/png;base64,' + b64Logo); } - } + }, + { + description: 'should send raw byte array correctly (POST)', + expected: 'resolved: {"isArrayBuffer:true,"data":[1,2,3,4,5,6,7],"byteLength":7}', + func: function (resolve, reject) { + var url = 'http://httpbin.org/anything'; + var options = { + method: 'post', + serializer: 'raw', + data: new Uint8Array([1,2,3,4,5,6,7]), + responseType: 'arraybuffer' + }; + var success = function (response) { + resolve({ + isArrayBuffer: response.data.constructor === ArrayBuffer, + data: new Uint8Array(response.data), + byteLength: response.data.byteLength + }); + }; + cordova.plugin.http.sendRequest(url, options, success, reject); + }, + validationFunc: function (driver, result) { + result.type.should.be.equal('resolved'); + result.data.isArrayBuffer.should.be.equal(true); + result.data.should.be.eql(new Uint8Array([1,2,3,4,5,6,7])); + result.data.byteLength.should.be.equal(7); + } + }, // TODO: not ready yet // { diff --git a/test/js-specs.js b/test/js-specs.js index 8a2698c..2507dd6 100644 --- a/test/js-specs.js +++ b/test/js-specs.js @@ -589,6 +589,15 @@ describe('Common helpers', function () { cb(); }); }); + + it('processes data correctly when serializer "raw" is configured', (cb) => { + const byteArray = new Uint8Array([1,2,3]); + helpers.processData(byteArray, 'raw', (data) => { + data.should.be.a('ArrayBuffer'); + data.should.be.equal(byteArray.buffer); + cb(); + }) + }); }); });