Updated Branches: refs/heads/master be20d0b2e -> 8f42017c9
Tweak clean-up logic in filetransfer tests so that it executes even when tests fail. Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-mobile-spec/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-mobile-spec/commit/8f42017c Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-mobile-spec/tree/8f42017c Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-mobile-spec/diff/8f42017c Branch: refs/heads/master Commit: 8f42017c9b81e553b73fad45e4378d8a987e6c5e Parents: 1a2ede8 Author: Andrew Grieve <agri...@chromium.org> Authored: Wed Sep 5 13:12:46 2012 -0400 Committer: Andrew Grieve <agri...@chromium.org> Committed: Tue Sep 18 09:59:44 2012 -0400 ---------------------------------------------------------------------- autotest/tests/filetransfer.tests.js | 73 +++++++++++++--------------- 1 files changed, 34 insertions(+), 39 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cordova-mobile-spec/blob/8f42017c/autotest/tests/filetransfer.tests.js ---------------------------------------------------------------------- diff --git a/autotest/tests/filetransfer.tests.js b/autotest/tests/filetransfer.tests.js index 10f2f76..6b83621 100644 --- a/autotest/tests/filetransfer.tests.js +++ b/autotest/tests/filetransfer.tests.js @@ -51,8 +51,7 @@ describe('FileTransfer', function() { } // deletes and re-creates the specified content var writeFile = function(fileName, fileContent, success, error) { - var content = fileContent; - deleteEntry(fileName, function() { + deleteFile(fileName, function() { root.getFile(fileName, {create: true}, function(fileEntry) { fileEntry.createWriter(function (writer) { @@ -68,10 +67,10 @@ describe('FileTransfer', function() { error(evt); }; - writer.write(content + "\n"); + writer.write(fileContent + "\n"); }, error); }, error); - }, error); + }); }; var readFileEntry = function(entry, success, error) { @@ -96,24 +95,6 @@ describe('FileTransfer', function() { }; // NOTE: copied from file.tests.js - // deletes specified file or directory - var deleteEntry = function(name, success, error) { - // deletes entry, if it exists - window.resolveLocalFileSystemURI(root.toURL() + '/' + name, - function(entry) { - if (entry.isDirectory === true) { - entry.removeRecursively(success, error); - } else { - entry.remove(success, error); - } - }, success); - }; - // deletes and re-creates the specified file - var createFile = function(fileName, success, error) { - deleteEntry(fileName, function() { - root.getFile(fileName, {create: true}, success, error); - }, error); - }; // deletes file, if it exists, then invokes callback var deleteFile = function(fileName, callback) { root.getFile(fileName, null, @@ -162,9 +143,11 @@ describe('FileTransfer', function() { var localFileName = remoteFile.substring(remoteFile.lastIndexOf('/')+1); var downloadWin = jasmine.createSpy().andCallFake(function(entry) { expect(entry.name).toBe(localFileName); - deleteFile(localFileName); }); + this.after(function() { + deleteFile(localFileName); + }); runs(function() { var ft = new FileTransfer(); ft.download(remoteFile, root.fullPath + "/" + localFileName, downloadWin, fail); @@ -181,10 +164,12 @@ describe('FileTransfer', function() { readFileEntry(entry, fileWin, fileFail); }; var fileWin = jasmine.createSpy().andCallFake(function(content) { - expect(content).toMatch(/The Apache Software Foundation/); - deleteFile(localFileName); + expect(content).toMatch(/The Apache Software Foundation/); }); + this.after(function() { + deleteFile(localFileName); + }); runs(function() { var ft = new FileTransfer(); ft.download(remoteFile, root.fullPath + "/" + localFileName, downloadWin, downloadFail); @@ -200,9 +185,11 @@ describe('FileTransfer', function() { var downloadFail = jasmine.createSpy().andCallFake(function(error) { expect(error.http_status).toBe(404); expect(error.http_status).not.toBe(401, "Ensure " + remoteFile + " is in the white list"); - deleteFile(localFileName); }); + this.after(function() { + deleteFile(localFileName); + }); runs(function() { var ft = new FileTransfer(); ft.download(remoteFile, root.fullPath + "/" + localFileName, downloadWin, downloadFail); @@ -216,15 +203,16 @@ describe('FileTransfer', function() { var remoteFile = getMalformedUrl(); var localFileName = "download_malformed_url.txt"; var downloadFail = jasmine.createSpy().andCallFake(function(error) { - // Note: Android needs the bad protocol to be added to the access list // <access origin=".*"/> won't match because ^https?:// is prepended to the regex // The bad protocol must begin with http to avoid automatic prefix expect(error.http_status).not.toBe(401, "Ensure " + remoteFile + " is in the white list"); expect(error.code).toBe(FileTransferError.INVALID_URL_ERR); - deleteFile(localFileName); }); + this.after(function() { + deleteFile(localFileName); + }); runs(function() { var ft = new FileTransfer(); ft.download(remoteFile, root.fullPath + "/" + localFileName, downloadWin, downloadFail); @@ -278,7 +266,6 @@ describe('FileTransfer', function() { expect(uploadResult.bytesSent).toBeGreaterThan(0); expect(uploadResult.responseCode).toBe(200); expect(uploadResult.response).toBeDefined(); - deleteEntry(localFileName); }); var fileWin = function(fileEntry) { @@ -298,6 +285,9 @@ describe('FileTransfer', function() { ft.upload(fileEntry.fullPath, remoteFile, uploadWin, uploadFail, options); }; + this.after(function() { + deleteFile(localFileName); + }); runs(function() { writeFile(localFileName, "this file should upload", fileWin, fileFail); }); @@ -313,7 +303,6 @@ describe('FileTransfer', function() { var uploadFail = jasmine.createSpy().andCallFake(function(error) { expect(error.http_status).toBe(403); expect(error.http_status).not.toBe(401, "Ensure " + remoteFile + " is in the white list"); - deleteEntry(localFileName); }); var fileWin = function(fileEntry) { @@ -327,6 +316,9 @@ describe('FileTransfer', function() { ft.upload(fileEntry.fullPath, remoteFile, uploadWin, uploadFail, options); }; + this.after(function() { + deleteFile(localFileName); + }); runs(function() { writeFile(localFileName, "this file should fail to upload", fileWin, fileFail); }); @@ -342,13 +334,15 @@ describe('FileTransfer', function() { var uploadFail = jasmine.createSpy().andCallFake(function(error) { expect(error.code).toBe(FileTransferError.INVALID_URL_ERR); expect(error.http_status).not.toBe(401, "Ensure " + remoteFile + " is in the white list"); - deleteFile(localFileName); }); var fileWin = function(fileEntry) { var ft = new FileTransfer(); ft.upload(fileEntry.fullPath, remoteFile, uploadWin, uploadFail, {}); }; + this.after(function() { + deleteFile(localFileName); + }); runs(function() { writeFile(localFileName, "Some content", fileWin, fileFail); }); @@ -364,13 +358,15 @@ describe('FileTransfer', function() { var uploadFail = jasmine.createSpy().andCallFake(function(error) { expect(error.code).toBe(FileTransferError.CONNECTION_ERR); expect(error.http_status).not.toBe(401, "Ensure " + remoteFile + " is in the white list"); - deleteFile(localFileName); }); var fileWin = function(fileEntry) { var ft = new FileTransfer(); ft.upload(fileEntry.fullPath, remoteFile, uploadWin, uploadFail, {}); }; + this.after(function() { + deleteFile(localFileName); + }); runs(function() { writeFile(localFileName, "# allow all", fileWin, fileFail); }); @@ -378,7 +374,6 @@ describe('FileTransfer', function() { waitsForAny(uploadWin, uploadFail, fileFail); }); it("should handle missing file", function() { - var fileFail = createDoNotCallSpy('fileFail'); var uploadWin = createDoNotCallSpy('uploadWin'); var remoteFile = server + "/upload"; @@ -390,13 +385,11 @@ describe('FileTransfer', function() { }); runs(function() { - deleteFile(localFileName, function() { - var ft = new FileTransfer(); - ft.upload(root.fullPath + "/" + localFileName, remoteFile, uploadWin, uploadFail); - }, fileFail); + var ft = new FileTransfer(); + ft.upload(root.fullPath + "/" + localFileName, remoteFile, uploadWin, uploadFail); }); - waitsForAny(uploadWin, uploadFail, fileFail); + waitsForAny(uploadWin, uploadFail); }); it("should handle bad file path", function() { var uploadWin = createDoNotCallSpy('uploadWin'); @@ -426,7 +419,6 @@ describe('FileTransfer', function() { expect(uploadResult.bytesSent).toBeGreaterThan(0); expect(uploadResult.responseCode).toBe(200); expect(uploadResult.response).toBeDefined(); - deleteEntry(localFileName); var responseHtml = decodeURIComponent(uploadResult.response); expect(responseHtml).toMatch(/CustomHeader1[\s\S]*CustomValue1/i); expect(responseHtml).toMatch(/CustomHeader2[\s\S]*CustomValue2[\s\S]*CustomValue3/i, "Should allow array values"); @@ -453,6 +445,9 @@ describe('FileTransfer', function() { ft.upload(fileEntry.fullPath, remoteFile, uploadWin, uploadFail, options); }; + this.after(function() { + deleteFile(localFileName); + }); runs(function() { writeFile(localFileName, "this file should upload", fileWin, fileFail); });