Updated Branches: refs/heads/master f8fa7c8f5 -> 8d25620f1
[CB-912] adding test cases + parameter checking to address source/target undefined variables being passed into FileTransfer methods Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/commit/8d25620f Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/tree/8d25620f Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/diff/8d25620f Branch: refs/heads/master Commit: 8d25620f18e47deb0da95606848fe46e7743df07 Parents: f8fa7c8 Author: Fil Maj <[email protected]> Authored: Tue Jun 19 10:29:23 2012 -0700 Committer: Fil Maj <[email protected]> Committed: Tue Jun 19 10:29:23 2012 -0700 ---------------------------------------------------------------------- lib/common/plugin/FileTransfer.js | 4 ++ test/test.filetransfer.js | 54 ++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 0 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/8d25620f/lib/common/plugin/FileTransfer.js ---------------------------------------------------------------------- diff --git a/lib/common/plugin/FileTransfer.js b/lib/common/plugin/FileTransfer.js index c92137d..3ec6721 100644 --- a/lib/common/plugin/FileTransfer.js +++ b/lib/common/plugin/FileTransfer.js @@ -18,6 +18,8 @@ var FileTransfer = function() {}; * @param trustAllHosts {Boolean} Optional trust all hosts (e.g. for self-signed certs), defaults to false */ FileTransfer.prototype.upload = function(filePath, server, successCallback, errorCallback, options, trustAllHosts) { + // sanity parameter checking + if (!filePath || !server) throw new Error("FileTransfer.upload requires filePath and server URL parameters at the minimum."); // check for options var fileKey = null; var fileName = null; @@ -55,6 +57,8 @@ FileTransfer.prototype.upload = function(filePath, server, successCallback, erro * @param errorCallback {Function} Callback to be invoked upon error */ FileTransfer.prototype.download = function(source, target, successCallback, errorCallback) { + // sanity parameter checking + if (!source || !target) throw new Error("FileTransfer.download requires source URI and target URI parameters at the minimum."); var win = function(result) { var entry = null; if (result.isDirectory) { http://git-wip-us.apache.org/repos/asf/incubator-cordova-js/blob/8d25620f/test/test.filetransfer.js ---------------------------------------------------------------------- diff --git a/test/test.filetransfer.js b/test/test.filetransfer.js new file mode 100644 index 0000000..cb3d203 --- /dev/null +++ b/test/test.filetransfer.js @@ -0,0 +1,54 @@ +describe("FileTransfer", function() { + var FileTransfer = new (require('cordova/plugin/FileTransfer'))(); + describe("download", function() { + it("should throw an exception if source or target is not defined", function() { + var win = jasmine.createSpy(), + fail = jasmine.createSpy(); + + expect(function() { + FileTransfer.download(null, null, win, fail); + }).toThrow(); + expect(function() { + FileTransfer.download(undefined, undefined, win, fail); + }).toThrow(); + expect(function() { + FileTransfer.download(null, undefined, win, fail); + }).toThrow(); + expect(function() { + FileTransfer.download(undefined, null, win, fail); + }).toThrow(); + expect(function() { + FileTransfer.download("test.txt", undefined, win, fail); + }).toThrow(); + expect(function() { + FileTransfer.download(undefined, "http://google.com/robots.txt", win, fail); + }).toThrow(); + }); + }); + + describe("upload", function() { + it("should throw an exception if filePath or server is not defined", function() { + var win = jasmine.createSpy(), + fail = jasmine.createSpy(); + + expect(function() { + FileTransfer.upload(null, null, win, fail); + }).toThrow(); + expect(function() { + FileTransfer.upload(undefined, undefined, win, fail); + }).toThrow(); + expect(function() { + FileTransfer.upload(null, undefined, win, fail); + }).toThrow(); + expect(function() { + FileTransfer.upload(undefined, null, win, fail); + }).toThrow(); + expect(function() { + FileTransfer.upload("test.txt", undefined, win, fail); + }).toThrow(); + expect(function() { + FileTransfer.upload(undefined, "http://google.com/robots.txt", win, fail); + }).toThrow(); + }); + }); +});
