You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by st...@apache.org on 2014/02/11 00:22:20 UTC

[08/17] Delete stale test/ directory

http://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer/blob/73541fb5/test/autotest/tests/filetransfer.tests.js
----------------------------------------------------------------------
diff --git a/test/autotest/tests/filetransfer.tests.js b/test/autotest/tests/filetransfer.tests.js
deleted file mode 100644
index 4c44032..0000000
--- a/test/autotest/tests/filetransfer.tests.js
+++ /dev/null
@@ -1,780 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-// 9 14 18 19 20
-
-var _it = it;
-it = function (text, funk) {
-    if (text.indexOf("filetransfer.spec.7") == 0) {
-        return _it(text, funk);
-    }
-    else {
-        console.log("Skipping Test : " + text);
-    }
-}
-
-
-
-describe('FileTransfer', function() {
-    // https://github.com/apache/cordova-labs/tree/cordova-filetransfer
-    var server = "http://cordova-filetransfer.jitsu.com";
-    var server_with_credentials = "http://cordova_user:cordova_password@cordova-filetransfer.jitsu.com";
-
-    // deletes and re-creates the specified content
-    var writeFile = function(fileName, fileContent, success, error) {
-        deleteFile(fileName, function() {
-            root.getFile(fileName, {create: true}, function(fileEntry) {
-                fileEntry.createWriter(function (writer) {
-
-                    writer.onwrite = function(evt) {
-                        success(fileEntry);
-                    };
-
-                    writer.onabort = function(evt) {
-                        error(evt);
-                    };
-
-                    writer.error = function(evt) {
-                        error(evt);
-                    };
-
-                    writer.write(fileContent + "\n");
-                }, error);
-            }, error);
-        });
-    };
-
-    var readFileEntry = function(entry, success, error) {
-        entry.file(function(file) {
-            var reader = new FileReader();
-            reader.onerror = error;
-            reader.onload = function(e) {
-                success(reader.result);
-            };
-            reader.readAsText(file);
-        }, error);
-    };
-
-    var getMalformedUrl = function() {
-
-            // iOS doesn't care about protocol, space in hostname causes error
-            return "httpssss://exa mple.com";
-
-    };
-
-    // deletes file, if it exists, then invokes callback
-    var deleteFile = function(fileName, callback) {
-        callback = callback || function() {};
-        var spy = jasmine.createSpy().andCallFake(callback);
-        root.getFile(fileName, null,
-            // remove file system entry
-            function(entry) {
-                entry.remove(spy, spy);
-            },
-            // doesn't exist
-            spy);
-        waitsFor(function() { return spy.wasCalled; }, Tests.TEST_TIMEOUT);
-    };
-
-    it("filetransfer.spec.1 should exist and be constructable", function() {
-        var ft = new FileTransfer();
-        expect(ft).toBeDefined();
-    });
-    it("filetransfer.spec.2 should contain proper functions", function() {
-        var ft = new FileTransfer();
-        expect(typeof ft.upload).toBe('function');
-        expect(typeof ft.download).toBe('function');
-    });
-    describe('FileTransferError', function() {
-        it("filetransfer.spec.3 FileTransferError constants should be defined", function() {
-            expect(FileTransferError.FILE_NOT_FOUND_ERR).toBe(1);
-            expect(FileTransferError.INVALID_URL_ERR).toBe(2);
-            expect(FileTransferError.CONNECTION_ERR).toBe(3);
-        });
-    });
-
-    describe('download method', function() {
-
-        // NOTE: if download tests are failing, check the white list
-        //
-        //   <access origin="httpssss://example.com"/>
-        //   <access origin="apache.org" subdomains="true" />
-        //   <access origin="cordova-filetransfer.jitsu.com"/>
-
-        it("filetransfer.spec.4 should be able to download a file using http", function() {
-            var fail = createDoNotCallSpy('downloadFail');
-            var remoteFile = server + "/robots.txt"
-            var localFileName = remoteFile.substring(remoteFile.lastIndexOf('/')+1);
-            var lastProgressEvent = null;
-
-            var downloadWin = jasmine.createSpy().andCallFake(function(entry) {
-                expect(entry.name).toBe(localFileName);
-                console.log("lastProgressEvent = " + JSON.stringify(lastProgressEvent));
-                expect(lastProgressEvent.loaded).toBeGreaterThan(1);
-            });
-
-            this.after(function() {
-                deleteFile(localFileName);
-            });
-            runs(function() {
-                var ft = new FileTransfer();
-                ft.onprogress = function(e) {
-                    lastProgressEvent = e;
-                };
-                ft.download(remoteFile, root.fullPath + "/" + localFileName, downloadWin, fail);
-            });
-
-            waitsForAny(downloadWin, fail);
-        });
-
-        it("filetransfer.spec.6 should get http status on basic auth failure", function() {
-            var downloadWin = createDoNotCallSpy('downloadWin').andCallFake(function (res) {
-                alert("it happened");
-            });
-
-            var remoteFile = server + "/download_basic_auth";
-            var localFileName = remoteFile.substring(remoteFile.lastIndexOf('/')+1);
-            var downloadFail = jasmine.createSpy().andCallFake(function(error) {
-                expect(error.http_status).toBe(401);
-                expect(error.http_status).not.toBe(404, "Ensure " + remoteFile + " is in the white list");
-            });
-
-            this.after(function() {
-                deleteFile(localFileName);
-            });
-            runs(function() {
-                var ft = new FileTransfer();
-                ft.download(remoteFile, root.fullPath + "/" + localFileName, downloadWin, downloadFail);
-            });
-
-            waitsForAny(downloadWin, downloadFail);
-        });
-        it("filetransfer.spec.5 should be able to download a file using http basic auth", function () {
-            var fail = createDoNotCallSpy('downloadFail');
-            var remoteFile = server_with_credentials + "/download_basic_auth"
-            var localFileName = remoteFile.substring(remoteFile.lastIndexOf('/') + 1);
-            var lastProgressEvent = null;
-
-            var downloadWin = jasmine.createSpy().andCallFake(function (entry) {
-                expect(entry.name).toBe(localFileName);
-                expect(lastProgressEvent.loaded).toBeGreaterThan(1);
-            });
-
-            this.after(function () {
-                deleteFile(localFileName);
-            });
-            runs(function () {
-                var ft = new FileTransfer();
-                ft.onprogress = function (e) {
-                    lastProgressEvent = e;
-                };
-                ft.download(remoteFile, root.fullPath + "/" + localFileName, downloadWin, fail);
-            });
-
-            waitsForAny(downloadWin, fail);
-
-        });
-
-        it("filetransfer.spec.7 should be able to download a file using file:// (when hosted from file://)", function() {
-            var fail = createDoNotCallSpy('downloadFail').andCallFake(function(err) {
-                alert("err :: " + JSON.stringify(err));
-            });
-            var remoteFile = window.location.href.replace(/\?.*/, '').replace(/ /g, '%20').replace("x-wmapp0:","file://");
-            var localFileName = remoteFile.substring(remoteFile.lastIndexOf('/') + 1);
-            console.log("localFileName = " + localFileName);
-            console.log("remoteFile = " + remoteFile);
-            var lastProgressEvent = null;
-
-
-
-            //if (!/^file/.exec(remoteFile)) {
-            //    expect(remoteFile).toMatch(/^file:/);
-            //    return;
-            //}
-
-            var downloadWin = jasmine.createSpy().andCallFake(function(entry) {
-                expect(entry.name).toBe(localFileName);
-                expect(lastProgressEvent.loaded).toBeGreaterThan(1);
-            });
-
-            this.after(function() {
-                deleteFile(localFileName);
-            });
-
-            var ft = new FileTransfer();
-            ft.onprogress = function(e) {
-                lastProgressEvent = e;
-                console.log("onprogress :: " + JSON.stringify(e));
-            };
-
-            console.log("calling download : " + remoteFile + ", " + (root.fullPath + "/" + localFileName));
-
-            ft.download(remoteFile, root.fullPath + "/" + localFileName, downloadWin, fail);
-
-            waitsForAny(downloadWin, fail);
-        });
-        it("filetransfer.spec.8 should be able to download a file using https", function() {
-            var remoteFile = "https://www.apache.org/licenses/";
-            var localFileName = 'httpstest.html';
-            var downloadFail = createDoNotCallSpy('downloadFail', 'Ensure ' + remoteFile + ' is in the white-list');
-            var fileFail = createDoNotCallSpy('fileFail');
-            var downloadWin = function(entry) {
-                readFileEntry(entry, fileWin, fileFail);
-            };
-            var fileWin = jasmine.createSpy().andCallFake(function(content) {
-                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);
-            });
-
-            waitsForAny(fileWin, downloadFail, fileFail);
-        });
-        it("filetransfer.spec.9 should not leave partial file due to abort", function() {
-            var downloadWin = createDoNotCallSpy('downloadWin');
-            var remoteFile = 'http://cordova.apache.org/downloads/logos_2.zip';
-            var localFileName = remoteFile.substring(remoteFile.lastIndexOf('/')+1);
-            var startTime = +new Date();
-
-            var downloadFail = jasmine.createSpy().andCallFake(function (e) {
-                console.log("downloadFail called : " + JSON.stringify(e));
-                expect(e.code).toBe(FileTransferError.ABORT_ERR);
-                var didNotExistSpy = jasmine.createSpy();
-                var existedSpy = createDoNotCallSpy('file existed after abort');
-                root.getFile(localFileName, null, existedSpy, didNotExistSpy);
-                waitsForAny(didNotExistSpy, existedSpy);
-            });
-
-            runs(function() {
-                var ft = new FileTransfer();
-                ft.onprogress = function(e) {
-                    if (e.loaded > 0) {
-                        ft.abort();
-                    }
-                };
-                ft.download(remoteFile, root.fullPath + "/" + localFileName, downloadWin, downloadFail);
-            });
-
-            waitsForAny(downloadWin, downloadFail);
-        });
-        it("filetransfer.spec.10 should be stopped by abort() right away", function() {
-            var downloadWin = createDoNotCallSpy('downloadWin');
-            var remoteFile = 'http://cordova.apache.org/downloads/BlueZedEx.mp3';
-            var localFileName = remoteFile.substring(remoteFile.lastIndexOf('/')+1);
-            var startTime = +new Date();
-
-            var downloadFail = jasmine.createSpy().andCallFake(function(e) {
-                expect(e.code).toBe(FileTransferError.ABORT_ERR);
-                expect(new Date() - startTime).toBeLessThan(3000);
-            });
-
-            this.after(function() {
-                deleteFile(localFileName);
-            });
-            runs(function() {
-                var ft = new FileTransfer();
-                ft.abort(); // should be a no-op.
-                ft.download(remoteFile, root.fullPath + "/" + localFileName, downloadWin, downloadFail);
-                ft.abort();
-                ft.abort(); // should be a no-op.
-            });
-
-            waitsForAny(downloadWin, downloadFail);
-        });
-        it("filetransfer.spec.11 should call the error callback on abort()", function() {
-            var downloadWin = createDoNotCallSpy('downloadWin');
-           var downloadFail = jasmine.createSpy().andCallFake(function(e) { console.log("Abort called") });
-            var remoteFile = 'http://cordova.apache.org/downloads/BlueZedEx.mp3';
-            var localFileName = remoteFile.substring(remoteFile.lastIndexOf('/')+1);
-            var startTime = +new Date();
-
-            this.after(function() {
-                deleteFile(localFileName);
-            });
-            runs(function() {
-                var ft = new FileTransfer();
-                ft.abort(); // should be a no-op.
-                ft.download(remoteFile, root.fullPath + "/" + localFileName, downloadWin, downloadFail);
-                ft.abort();
-                ft.abort(); // should be a no-op.
-            });
-
-            waitsForAny(downloadFail);
-        });
-        it("filetransfer.spec.12 should get http status on failure", function() {
-            var downloadWin = createDoNotCallSpy('downloadWin');
-
-            var remoteFile = server + "/404";
-            var localFileName = remoteFile.substring(remoteFile.lastIndexOf('/')+1);
-            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");
-            });
-
-            this.after(function() {
-                deleteFile(localFileName);
-            });
-            runs(function() {
-                var ft = new FileTransfer();
-                ft.download(remoteFile, root.fullPath + "/" + localFileName, downloadWin, downloadFail);
-            });
-
-            waitsForAny(downloadWin, downloadFail);
-        });
-        it("filetransfer.spec.13 should get response body on failure", function() {
-            var downloadWin = createDoNotCallSpy('downloadWin');
-
-            var remoteFile = server + "/404";
-            var localFileName = remoteFile.substring(remoteFile.lastIndexOf('/')+1);
-            var downloadFail = jasmine.createSpy().andCallFake(function(error) {
-                expect(error.body).toBeDefined();
-                expect(error.body).toMatch('You requested a 404');
-            });
-
-            this.after(function() {
-                deleteFile(localFileName);
-            });
-            runs(function() {
-                var ft = new FileTransfer();
-                ft.download(remoteFile, root.fullPath + "/" + localFileName, downloadWin, downloadFail);
-            });
-
-            waitsForAny(downloadWin, downloadFail);
-        });
-        it("filetransfer.spec.14 should handle malformed urls", function() {
-            var downloadWin = createDoNotCallSpy('downloadWin');
-
-            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);
-            });
-
-            this.after(function() {
-                deleteFile(localFileName);
-            });
-            runs(function() {
-                var ft = new FileTransfer();
-                ft.download(remoteFile, root.fullPath + "/" + localFileName, downloadWin, downloadFail);
-            });
-
-            waitsForAny(downloadWin, downloadFail);
-        });
-        it("filetransfer.spec.15 should handle unknown host", function() {
-            var downloadWin = createDoNotCallSpy('downloadWin');
-
-            var remoteFile = "http://foobar.apache.org/index.html";
-            var localFileName = remoteFile.substring(remoteFile.lastIndexOf('/')+1);
-            var downloadFail = jasmine.createSpy().andCallFake(function(error) {
-                expect(error.code).toBe(FileTransferError.CONNECTION_ERR);
-            });
-
-            runs(function() {
-                var ft = new FileTransfer();
-                ft.download(remoteFile, root.fullPath + "/" + localFileName, downloadWin, downloadFail);
-            });
-
-            waitsForAny(downloadWin, downloadFail);
-        });
-        it("filetransfer.spec.16 should handle bad file path", function() {
-            var downloadWin = createDoNotCallSpy('downloadWin');
-
-            var remoteFile = server;
-            var badFilePath = "c:\\54321";
-            var downloadFail = jasmine.createSpy();
-
-            runs(function() {
-                var ft = new FileTransfer();
-                ft.download(remoteFile, badFilePath, downloadWin, downloadFail);
-            });
-
-            waitsForAny(downloadWin, downloadFail);
-        });
-        it("filetransfer.spec.17 progress should work with gzip encoding", function() {
-           var downloadFail = createDoNotCallSpy('downloadFail');
-           var remoteFile = "http://www.apache.org/";
-           var localFileName = "index.html";
-           var lastProgressEvent = null;
-
-           var downloadWin = jasmine.createSpy().andCallFake(function(entry) {
-               expect(entry.name).toBe(localFileName);
-               expect(lastProgressEvent.loaded).toBeGreaterThan(1, 'loaded');
-               expect(lastProgressEvent.total).not.toBeLessThan(lastProgressEvent.loaded);
-               expect(lastProgressEvent.lengthComputable).toBe(true, 'lengthComputable');
-           });
-
-           this.after(function() {
-                      deleteFile(localFileName);
-                      });
-           runs(function() {
-               var ft = new FileTransfer();
-               ft.onprogress = function(e) {
-                   lastProgressEvent = e;
-               };
-               ft.download(remoteFile, root.fullPath + "/" + localFileName, downloadWin, downloadFail);
-           });
-           waitsForAny(downloadWin, downloadFail);
-        });
-    });
-    describe('upload method', function() {
-        it("filetransfer.spec.18 should be able to upload a file", function() {
-            var remoteFile = server + "/upload";
-            var localFileName = "upload.txt";
-            var fileContents = 'This file should upload';
-
-            var fileFail = createDoNotCallSpy('fileFail');
-            var uploadFail = createDoNotCallSpy('uploadFail', "Ensure " + remoteFile + " is in the white list");
-            var lastProgressEvent = null;
-
-            var uploadWin = jasmine.createSpy().andCallFake(function (uploadResult) {
-                console.log("uploadResult : " + JSON.stringify(uploadResult));
-                expect(uploadResult.bytesSent).toBeGreaterThan(0);
-                expect(uploadResult.responseCode).toBe(200);
-                expect(uploadResult.response).toMatch(/fields:\s*{\s*value1.*/);
-            });
-
-            var fileWin = function(fileEntry) {
-                ft = new FileTransfer();
-
-                var options = new FileUploadOptions();
-                options.fileKey = "file";
-                options.fileName = localFileName;
-                options.mimeType = "text/plain";
-
-                var params = new Object();
-                params.value1 = "test";
-                params.value2 = "param";
-                options.params = params;
-
-                ft.onprogress = function (e) {
-
-                        expect(e.lengthComputable).toBe(true);
-                        expect(e.total).toBeGreaterThan(0);
-                        expect(e.loaded).toBeGreaterThan(0);
-                        lastProgressEvent = e;
-                };
-
-                // removing options cause Android to timeout
-                ft.upload(fileEntry.fullPath, remoteFile, uploadWin, uploadFail, options);
-            };
-
-            this.after(function() {
-                deleteFile(localFileName);
-            });
-            runs(function() {
-                writeFile(localFileName, fileContents, fileWin, fileFail);
-            });
-
-            waitsForAny(uploadWin, uploadFail, fileFail);
-            runs(function() {
-                expect(lastProgressEvent).not.toBeNull('expected progress events');
-            });
-        });
-        it("filetransfer.spec.19 should be able to upload a file with http basic auth", function() {
-            var remoteFile = server_with_credentials + "/upload_basic_auth";
-            var localFileName = "upload.txt";
-            var fileContents = 'This file should upload';
-
-            var fileFail = createDoNotCallSpy('fileFail');
-            var uploadFail = createDoNotCallSpy('uploadFail', "Ensure " + remoteFile + " is in the white list");
-            var lastProgressEvent = null;
-
-            var uploadWin = jasmine.createSpy().andCallFake(function(uploadResult) {
-                expect(uploadResult.bytesSent).toBeGreaterThan(0);
-                expect(uploadResult.responseCode).toBe(200);
-                expect(uploadResult.response).toMatch(/fields:\s*{\s*value1.*/);
-            });
-
-            var fileWin = function(fileEntry) {
-                ft = new FileTransfer();
-
-                var options = new FileUploadOptions();
-                options.fileKey = "file";
-                options.fileName = localFileName;
-                options.mimeType = "text/plain";
-
-                var params = new Object();
-                params.value1 = "test";
-                params.value2 = "param";
-                options.params = params;
-
-                ft.onprogress = function(e) {
-                    expect(e.lengthComputable).toBe(true);
-                    expect(e.total).toBeGreaterThan(0);
-                    expect(e.loaded).toBeGreaterThan(0);
-                    lastProgressEvent = e;
-                };
-
-                // removing options cause Android to timeout
-                ft.upload(fileEntry.fullPath, remoteFile, uploadWin, uploadFail, options);
-            };
-
-            this.after(function() {
-                deleteFile(localFileName);
-            });
-            runs(function() {
-                writeFile(localFileName, fileContents, fileWin, fileFail);
-            });
-
-            waitsForAny(uploadWin, uploadFail, fileFail);
-            runs(function() {
-                expect(lastProgressEvent).not.toBeNull('expected progress events');
-            });
-        });
-        it("filetransfer.spec.6 should get http status on basic auth failure", function() {
-            var fileFail = createDoNotCallSpy('fileFail');
-            var uploadWin = createDoNotCallSpy('uploadWin');
-
-            var remoteFile = server + "/upload_basic_auth";
-            var localFileName = "upload_expect_fail.txt";
-            var uploadFail = jasmine.createSpy().andCallFake(function(error) {
-                expect(error.http_status).toBe(401);
-                expect(error.http_status).not.toBe(404, "Ensure " + remoteFile + " is in the white list");
-            });
-
-            var fileWin = function(fileEntry) {
-                var ft = new FileTransfer();
-
-                var options = new FileUploadOptions();
-                options.fileKey="file";
-                options.fileName=fileEntry.name;
-                options.mimeType="text/plain";
-
-                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);
-            });
-
-            waitsForAny(uploadWin, uploadFail, fileFail);
-        });
-        it("filetransfer.spec.21 should be stopped by abort() right away.", function() {
-            var remoteFile = server + "/upload";
-            var localFileName = "upload.txt";
-
-            var fileFail = createDoNotCallSpy('fileFail');
-            var uploadWin = createDoNotCallSpy('uploadWin', 'Should have been aborted');
-            var startTime;
-
-            var uploadFail = jasmine.createSpy().andCallFake(function(e) {
-                expect(e.code).toBe(FileTransferError.ABORT_ERR);
-                expect(new Date() - startTime).toBeLessThan(300);
-            });
-
-            var fileWin = function(fileEntry) {
-                ft = new FileTransfer();
-
-                var options = new FileUploadOptions();
-                options.fileKey = "file";
-                options.fileName = localFileName;
-                options.mimeType = "text/plain";
-
-                startTime = +new Date();
-                // removing options cause Android to timeout
-                ft.abort(); // should be a no-op.
-                ft.upload(fileEntry.fullPath, remoteFile, uploadWin, uploadFail, options);
-                ft.abort();
-                ft.abort(); // should be a no-op.
-            };
-
-            this.after(function() {
-                deleteFile(localFileName);
-            });
-            runs(function() {
-                writeFile(localFileName, new Array(10000).join('aborttest!'), fileWin, fileFail);
-            });
-
-            waitsForAny(uploadWin, uploadFail, fileFail);
-        });
-        it("filetransfer.spec.12 should get http status on failure", function() {
-            var fileFail = createDoNotCallSpy('fileFail');
-            var uploadWin = createDoNotCallSpy('uploadWin');
-
-            var remoteFile = server + "/403";
-            var localFileName = "upload_expect_fail.txt";
-            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");
-            });
-
-            var fileWin = function(fileEntry) {
-                var ft = new FileTransfer();
-
-                var options = new FileUploadOptions();
-                options.fileKey="file";
-                options.fileName=fileEntry.name;
-                options.mimeType="text/plain";
-
-                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);
-            });
-
-            waitsForAny(uploadWin, uploadFail, fileFail);
-        });
-        it("filetransfer.spec.14 should handle malformed urls", function() {
-            var fileFail = createDoNotCallSpy('fileFail');
-            var uploadWin = createDoNotCallSpy('uploadWin');
-
-            var remoteFile = getMalformedUrl();
-            var localFileName = "malformed_url.txt";
-            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");
-            });
-            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);
-            });
-
-            waitsForAny(uploadWin, uploadFail, fileFail);
-        });
-        it("filetransfer.spec.15 should handle unknown host", function() {
-            var fileFail = createDoNotCallSpy('fileFail');
-            var uploadWin = createDoNotCallSpy('uploadWin');
-
-            var remoteFile = "http://foobar.apache.org/robots.txt";
-            var localFileName = remoteFile.substring(remoteFile.lastIndexOf('/')+1);
-            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");
-            });
-            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);
-            });
-
-            waitsForAny(uploadWin, uploadFail, fileFail);
-        });
-        it("filetransfer.spec.25 should handle missing file", function() {
-            var uploadWin = createDoNotCallSpy('uploadWin');
-
-            var remoteFile = server + "/upload";
-            var localFileName = "does_not_exist.txt";
-
-            var uploadFail = jasmine.createSpy().andCallFake(function(error) {
-                expect(error.code).toBe(FileTransferError.FILE_NOT_FOUND_ERR);
-                expect(error.http_status).not.toBe(401, "Ensure " + remoteFile + " is in the white list");
-            });
-
-            runs(function() {
-                var ft = new FileTransfer();
-                ft.upload(root.fullPath + "/" + localFileName, remoteFile, uploadWin, uploadFail);
-            });
-
-            waitsForAny(uploadWin, uploadFail);
-        });
-        it("filetransfer.spec.16 should handle bad file path", function() {
-            var uploadWin = createDoNotCallSpy('uploadWin');
-
-            var remoteFile = server + "/upload";
-
-            var uploadFail = jasmine.createSpy().andCallFake(function(error) {
-                expect(error.http_status).not.toBe(401, "Ensure " + remoteFile + " is in the white list");
-            });
-
-            runs(function() {
-                var ft = new FileTransfer();
-                ft.upload("/usr/local/bad/file/path.txt", remoteFile, uploadWin, uploadFail);
-            });
-
-            waitsForAny(uploadWin, uploadFail);
-        });
-        it("filetransfer.spec.27 should be able to set custom headers", function() {
-            var remoteFile = "http://whatheaders.com";
-            var localFileName = "upload.txt";
-
-            var fileFail = function() {};
-            var uploadFail = createDoNotCallSpy('uploadFail', "Ensure " + remoteFile + " is in the white list and that Content-Length header is being set.");
-
-            var uploadWin = jasmine.createSpy().andCallFake(function(uploadResult) {
-                expect(uploadResult.bytesSent).toBeGreaterThan(0);
-                expect(uploadResult.responseCode).toBe(200);
-                expect(uploadResult.response).toBeDefined();
-                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");
-            });
-
-            var fileWin = function(fileEntry) {
-                ft = new FileTransfer();
-
-                var options = new FileUploadOptions();
-                options.fileKey = "file";
-                options.fileName = localFileName;
-                options.mimeType = "text/plain";
-
-                var params = new Object();
-                params.value1 = "test";
-                params.value2 = "param";
-                options.params = params;
-                options.headers = {
-                    "CustomHeader1": "CustomValue1",
-                    "CustomHeader2": ["CustomValue2", "CustomValue3"],
-                };
-
-                // removing options cause Android to timeout
-                ft.upload(fileEntry.fullPath, remoteFile, uploadWin, uploadFail, options);
-            };
-
-            this.after(function() {
-                deleteFile(localFileName);
-            });
-            runs(function() {
-                writeFile(localFileName, "this file should upload", fileWin, fileFail);
-            });
-
-            waitsForAny(uploadWin, uploadFail);
-        });
-    });
-});

http://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer/blob/73541fb5/test/cordova-incl.js
----------------------------------------------------------------------
diff --git a/test/cordova-incl.js b/test/cordova-incl.js
deleted file mode 100644
index bd612be..0000000
--- a/test/cordova-incl.js
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-var PLAT;
-(function getPlatform() {
-    var platforms = {
-        amazon_fireos: /cordova-amazon-fireos/,
-        android: /Android/,
-        ios: /(iPad)|(iPhone)|(iPod)/,
-        blackberry10: /(BB10)/,
-        blackberry: /(PlayBook)|(BlackBerry)/,
-        windows8: /MSAppHost/,
-        windowsphone: /Windows Phone/
-    };
-    for (var key in platforms) {
-        if (platforms[key].exec(navigator.userAgent)) {
-            PLAT = key;
-            break;
-        }
-    }
-})();
-
-var scripts = document.getElementsByTagName('script');
-var currentPath = scripts[scripts.length - 1].src;
-var platformCordovaPath = currentPath.replace("cordova-incl.js", "cordova." + PLAT + ".js");
-var normalCordovaPath = currentPath.replace("cordova-incl.js", "cordova.js");
-var cordovaPath = normalCordovaPath;
-
-if (PLAT) {
-    // XHR to local file is an error on some platforms, windowsphone for one 
-    try {
-        var xhr = new XMLHttpRequest();
-        xhr.open("GET", platformCordovaPath, false);
-        xhr.onreadystatechange = function() {
-
-            if (this.readyState == this.DONE && this.responseText.length > 0) {
-                if(parseInt(this.status) >= 400){
-                    cordovaPath = normalCordovaPath;
-                }else{
-                    cordovaPath = platformCordovaPath;
-                }
-            }
-        };
-        xhr.send(null);
-    }
-    catch(e){
-        cordovaPath = normalCordovaPath;
-    } // access denied!
-}
-
-if (!window._doNotWriteCordovaScript) {
-    if (PLAT != "windows8") {
-        document.write('<script type="text/javascript" charset="utf-8" src="' + cordovaPath + '"></script>');
-    } else {
-        var s = document.createElement('script');
-        s.src = cordovaPath;
-        document.head.appendChild(s);
-    }
-}
-
-function backHome() {
-    if (window.device && device.platform && (device.platform.toLowerCase() == 'android' || device.platform.toLowerCase() == 'amazon-fireos')) {
-        navigator.app.backHistory();
-    }
-    else {
-        window.history.go(-1);
-    }
-}

http://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer/blob/73541fb5/test/index.html
----------------------------------------------------------------------
diff --git a/test/index.html b/test/index.html
deleted file mode 100644
index 727c504..0000000
--- a/test/index.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE html>
-<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
-
--->
-
-
-<html>
-  <head>
-    <meta name="viewport" content="width=device-width,height=device-height,user-scalable=no,initial-scale=1.0" />
-    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
-    <title>Cordova Mobile Spec</title>
-	  <link rel="stylesheet" href="master.css" type="text/css" media="screen" title="no title" charset="utf-8">
-	  <script type="text/javascript" charset="utf-8" src="cordova-incl.js"></script>
-	  <script type="text/javascript" charset="utf-8" src="main.js"></script>
-
-  </head>
-  <body onload="init();" id="stage" class="theme">
-    <h1>Apache Cordova Tests</h1>
-    <div id="info">
-        <h4>Platform: <span id="platform">  </span></h4>
-        <h4>Version: <span id="version"> </span></h4>
-        <h4>UUID: <span id="uuid">  </span></h4>
-        <h4>Model: <span id="model"> </span></h4>
-        <h4>Width: <span id="width">  </span>,   Height: <span id="height"> 
-                   </span>, Color Depth: <span id="colorDepth"></span></h4>
-        <h4>User-Agent: <span id="user-agent"> </span></h4>
-     </div>
-    <a href="autotest/index.html" class="btn large">Automatic Test</a>
-    <a href="accelerometer/index.html" class="btn large">Accelerometer</a>
-    <a href="audio/index.html" class="btn large">Audio Play/Record</a>
-    <a href="battery/index.html" class="btn large">Battery</a>
-    <a href="camera/index.html" class="btn large">Camera</a>
-    <a href="compass/index.html" class="btn large">Compass</a>
-    <a href="contacts/index.html" class="btn large">Contacts</a>
-    <a href="events/index.html" class="btn large">Events</a>
-    <a href="location/index.html" class="btn large">Location</a>
-    <a href="lazyloadjs/index.html" class="btn large">Lazy Loading of cordova-incl.js</a>
-    <a href="misc/index.html" class="btn large">Misc Content</a>
-    <a href="network/index.html" class="btn large">Network</a>
-    <a href="notification/index.html" class="btn large">Notification</a>
-    <a href="splashscreen/index.html" class="btn large">Splashscreen</a>
-    <a href="sql/index.html" class="btn large">Web SQL</a>
-    <a href="storage/index.html" class="btn large">Local Storage</a>
-    <a href="benchmarks/index.html" class="btn large">Benchmarks</a>
-    <a href="inappbrowser/index.html" class="btn large">In App Browser</a>
-  </body>
-</html>

http://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer/blob/73541fb5/test/main.js
----------------------------------------------------------------------
diff --git a/test/main.js b/test/main.js
deleted file mode 100644
index 5f071c4..0000000
--- a/test/main.js
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-var deviceInfo = function() {
-    document.getElementById("platform").innerHTML = device.platform;
-    document.getElementById("version").innerHTML = device.version;
-    document.getElementById("uuid").innerHTML = device.uuid;
-    document.getElementById("model").innerHTML = device.model;
-    document.getElementById("width").innerHTML = screen.width;
-    document.getElementById("height").innerHTML = screen.height;
-    document.getElementById("colorDepth").innerHTML = screen.colorDepth;
-};
-
-var getLocation = function() {
-    var suc = function(p) {
-        alert(p.coords.latitude + " " + p.coords.longitude);
-    };
-    var locFail = function() {
-    };
-    navigator.geolocation.getCurrentPosition(suc, locFail);
-};
-
-var beep = function() {
-    navigator.notification.beep(2);
-};
-
-var vibrate = function() {
-    navigator.notification.vibrate(0);
-};
-
-function roundNumber(num) {
-    var dec = 3;
-    var result = Math.round(num * Math.pow(10, dec)) / Math.pow(10, dec);
-    return result;
-}
-
-var accelerationWatch = null;
-
-function updateAcceleration(a) {
-    document.getElementById('x').innerHTML = roundNumber(a.x);
-    document.getElementById('y').innerHTML = roundNumber(a.y);
-    document.getElementById('z').innerHTML = roundNumber(a.z);
-}
-
-var toggleAccel = function() {
-    if (accelerationWatch !== null) {
-        navigator.accelerometer.clearWatch(accelerationWatch);
-        updateAcceleration({
-            x : "",
-            y : "",
-            z : ""
-        });
-        accelerationWatch = null;
-    } else {
-        var options = {};
-        options.frequency = 1000;
-        accelerationWatch = navigator.accelerometer.watchAcceleration(
-                updateAcceleration, function(ex) {
-                    alert("accel fail (" + ex.name + ": " + ex.message + ")");
-                }, options);
-    }
-};
-
-var preventBehavior = function(e) {
-    e.preventDefault();
-};
-
-function dump_pic(data) {
-    var viewport = document.getElementById('viewport');
-    console.log(data);
-    viewport.style.display = "";
-    viewport.style.position = "absolute";
-    viewport.style.top = "10px";
-    viewport.style.left = "10px";
-    document.getElementById("test_img").src = "data:image/jpeg;base64," + data;
-}
-
-function fail(msg) {
-    alert(msg);
-}
-
-function show_pic() {
-    navigator.camera.getPicture(dump_pic, fail, {
-        quality : 50
-    });
-}
-
-function close() {
-    var viewport = document.getElementById('viewport');
-    viewport.style.position = "relative";
-    viewport.style.display = "none";
-}
-
-// This is just to do this.
-function readFile() {
-    navigator.file.read('/sdcard/cordova.txt', fail, fail);
-}
-
-function writeFile() {
-    navigator.file.write('foo.txt', "This is a test of writing to a file",
-            fail, fail);
-}
-
-function contacts_success(contacts) {
-    alert(contacts.length
-            + ' contacts returned.'
-            + (contacts[2] && contacts[2].name ? (' Third contact is ' + contacts[2].name.formatted)
-                    : ''));
-}
-
-function get_contacts() {
-    var obj = new ContactFindOptions();
-    obj.filter = "";
-    obj.multiple = true;
-    obj.limit = 5;
-    navigator.service.contacts.find(
-            [ "displayName", "name" ], contacts_success,
-            fail, obj);
-}
-
-var networkReachableCallback = function(reachability) {
-    // There is no consistency on the format of reachability
-    var networkState = reachability.code || reachability;
-
-    var currentState = {};
-    currentState[NetworkStatus.NOT_REACHABLE] = 'No network connection';
-    currentState[NetworkStatus.REACHABLE_VIA_CARRIER_DATA_NETWORK] = 'Carrier data connection';
-    currentState[NetworkStatus.REACHABLE_VIA_WIFI_NETWORK] = 'WiFi connection';
-
-    confirm("Connection type:\n" + currentState[networkState]);
-};
-
-function check_network() {
-    navigator.network.isReachable("www.mobiledevelopersolutions.com",
-            networkReachableCallback, {});
-}
-
-function init() {
-    // the next line makes it impossible to see Contacts on the HTC Evo since it
-    // doesn't have a scroll button
-    // document.addEventListener("touchmove", preventBehavior, false);
-    document.addEventListener("deviceready", deviceInfo, true);
-    document.getElementById("user-agent").textContent = navigator.userAgent;
-}

http://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer/blob/73541fb5/test/master.css
----------------------------------------------------------------------
diff --git a/test/master.css b/test/master.css
deleted file mode 100644
index e93c937..0000000
--- a/test/master.css
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-  body {
-    background:#222 none repeat scroll 0 0;
-    color:#666;
-    font-family:Helvetica;
-    font-size:72%;
-    line-height:1.5em;
-    margin:0;
-    border-top:1px solid #393939;
-  }
-
-  #info{
-    background:#ffa;
-    border: 1px solid #ffd324;
-    -webkit-border-radius: 5px;
-    border-radius: 5px;
-    clear:both;
-    margin:15px 6px 0;
-    min-width:295px;
-    max-width:97%;
-    padding:4px 0px 2px 10px;
-    word-wrap:break-word;
-    margin-bottom:10px;
-    display:inline-block;
-    min-height: 160px;
-    max-height: 300px;
-    overflow: auto;
-    -webkit-overflow-scrolling: touch;
-  }
-  
-  #info > h4{
-    font-size:.95em;
-    margin:5px 0;
-  }
- 	
-  #stage.theme{
-    padding-top:3px;
-  }
-
-  /* Definition List */
-  #stage.theme > dl{
-  	padding-top:10px;
-  	clear:both;
-  	margin:0;
-  	list-style-type:none;
-  	padding-left:10px;
-  	overflow:auto;
-  }
-
-  #stage.theme > dl > dt{
-  	font-weight:bold;
-  	float:left;
-  	margin-left:5px;
-  }
-
-  #stage.theme > dl > dd{
-  	width:45px;
-  	float:left;
-  	color:#a87;
-  	font-weight:bold;
-  }
-
-  /* Content Styling */
-  #stage.theme > h1, #stage.theme > h2, #stage.theme > p{
-    margin:1em 0 .5em 13px;
-  }
-
-  #stage.theme > h1{
-    color:#eee;
-    font-size:1.6em;
-    text-align:center;
-    margin:0;
-    margin-top:15px;
-    padding:0;
-  }
-
-  #stage.theme > h2{
-  	clear:both;
-    margin:0;
-    padding:3px;
-    font-size:1em;
-    text-align:center;
-  }
-
-  /* Stage Buttons */
-  #stage.theme .btn{
-  	border: 1px solid #555;
-  	-webkit-border-radius: 5px;
-  	border-radius: 5px;
-  	text-align:center;
-  	display:inline-block;
-  	background:#444;
-  	width:150px;
-  	color:#9ab;
-  	font-size:1.1em;
-  	text-decoration:none;
-  	padding:1.2em 0;
-  	margin:3px 0px 3px 5px;
-  }
-  
-  #stage.theme .large{
-  	width:308px;
-  	padding:1.2em 0;
-  }
-  
-  #stage.theme .wide{
-    width:100%;
-    padding:1.2em 0;
-  }
-  
-  #stage.theme .backBtn{
-   border: 1px solid #555;
-   -webkit-border-radius: 5px;
-   border-radius: 5px;
-   text-align:center;
-   display:block;
-   float:right;
-   background:#666;
-   width:75px;
-   color:#9ab;
-   font-size:1.1em;
-   text-decoration:none;
-   padding:1.2em 0;
-   margin:3px 5px 3px 5px;
-  }
-  
-  #stage.theme .input{
-   border: 1px solid #555;
-   -webkit-border-radius: 5px;
-   border-radius: 5px;
-   text-align:center;
-   display:block;
-   float:light;
-   background:#888;
-   color:#9cd;
-   font-size:1.1em;
-   text-decoration:none;
-   padding:1.2em 0;
-   margin:3px 0px 3px 5px;    
- }
-  
-  #stage.theme .numeric{
-   width:100%;
-  }