diff --git a/test/app-test-definitions.js b/test/app-test-definitions.js index dd683e3..f40e3bb 100644 --- a/test/app-test-definitions.js +++ b/test/app-test-definitions.js @@ -484,6 +484,15 @@ const tests = [ result.data.status.should.be.equal(200); JSON.parse(result.data.data).gzipped.should.be.equal(true); } + },{ + description: 'should send empty string correctly', + expected: 'resolved: {"status": 200, "data": "{\\"json\\":\\"test\\": \\"testString\\"}\" ...', + before: helpers.setUtf8StringSerializer, + func: function(resolve, reject) { cordova.plugin.http.post('http://httpbin.org/anything', '', {}, resolve, reject); }, + validationFunc: function(driver, result) { + result.type.should.be.equal('resolved'); + JSON.parse(result.data.data).data.should.be.equal(''); + } } ]; diff --git a/www/helpers.js b/www/helpers.js index 87a564d..929563b 100644 --- a/www/helpers.js +++ b/www/helpers.js @@ -213,8 +213,6 @@ function getAllowedDataTypes(dataSerializer) { } function getProcessedData(data, dataSerializer) { - data = data || {}; - var currentDataType = getTypeOf(data); var allowedDataTypes = getAllowedDataTypes(dataSerializer); @@ -248,7 +246,7 @@ function handleMissingOptions(options, globals) { timeout: checkTimeoutValue(options.timeout || globals.timeout), headers: checkHeadersObject(options.headers || {}), params: checkParamsObject(options.params || {}), - data: options.data || null, + data: getTypeOf(options.data) === 'Undefined' ? null : options.data, filePath: options.filePath || '', name: options.name || '' };