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%;
- }