diff options
author | Artur Neumann <info@individual-it.net> | 2017-04-18 20:43:25 +0545 |
---|---|---|
committer | Artur Neumann <info@individual-it.net> | 2017-04-18 20:43:25 +0545 |
commit | 88f02f27a3596660504f8edc2d326bce587d970f (patch) | |
tree | 9b37bea57825ceae015a1c5331044d61e9c1e662 /apps/files_sharing/tests | |
parent | cdb65eff34df30a50384f574bf2abb94989f28bd (diff) | |
download | nextcloud-server-88f02f27a3596660504f8edc2d326bce587d970f.tar.gz nextcloud-server-88f02f27a3596660504f8edc2d326bce587d970f.zip |
JS tests for upload only function
Signed-off-by: Artur Neumann <info@individual-it.net>
Diffstat (limited to 'apps/files_sharing/tests')
-rw-r--r-- | apps/files_sharing/tests/js/fileDropSpec.js | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/apps/files_sharing/tests/js/fileDropSpec.js b/apps/files_sharing/tests/js/fileDropSpec.js new file mode 100644 index 00000000000..fb139788c50 --- /dev/null +++ b/apps/files_sharing/tests/js/fileDropSpec.js @@ -0,0 +1,99 @@ +/** + * + * @copyright Copyright (c) 2017, Artur Neumann (info@individual-it.net) + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +describe("files Drop tests", function() { + //some testing data + var sharingToken = "fVCiSMhScgWfiuv"; + var testFiles = [ + { name: 'test.txt', expectedValidationResult: true }, + { name: 'testनेपाल.txt', expectedValidationResult: true }, + { name: 'test.part', expectedValidationResult: false }, + { name: 'test.filepart', expectedValidationResult: false }, + { name: '.', expectedValidationResult: false }, + { name: '..', expectedValidationResult: false }, + ]; + + //this pre/post positions should not change the result of the file name validation + var prePostPositions = [""," "," "," "]; + + //use the testFiles and the pre/post positions to generate more testing data + var replicatedTestFiles = []; + prePostPositions.map(function (prePostPosition) { + testFiles.map(function (testFile) { + replicatedTestFiles.push( + { + name: testFile.name + prePostPosition, + expectedValidationResult: testFile.expectedValidationResult + } + ); + replicatedTestFiles.push( + { + name: prePostPosition + testFile.name, + expectedValidationResult: testFile.expectedValidationResult + } + ); + replicatedTestFiles.push( + { + name: prePostPosition + testFile.name + prePostPosition, + expectedValidationResult: testFile.expectedValidationResult + } + ); + }); + }); + + beforeEach (function () { + //fake input for the sharing token + $('#testArea').append( + '<input name="sharingToken" value="" id="sharingToken" type="hidden">' + ); + }); + + + replicatedTestFiles.map(function (testFile) { + fit("validates the filenames correctly", function() { + testFile = { name: 'test.txt', expectedValidationResult: true }; + data = { + 'submit': function() {}, + 'files': [testFile] + } + expect(OCA.FilesSharingDrop.addFileToUpload('',data)). + toBe( + testFile.expectedValidationResult, + 'wrongly validated file named "'+testFile.name+'"' + ); + }); + + if (testFile.expectedValidationResult === true) { + it("should set correct PUT URL, Auth header and submit", function () { + data = { + 'submit': sinon.stub(), + 'files': [testFile] + } + $('#sharingToken').val(sharingToken); + + OCA.FilesSharingDrop.addFileToUpload('',data); + expect(data.submit.calledOnce).toEqual(true); + expect(data.url).toContain("/public.php/webdav/" + encodeURI(testFile.name)); + expect(data.headers['Authorization']).toEqual('Basic ' + btoa(sharingToken+":")); + }); + } + }); +}); |