diff options
author | Vincent Petry <pvince81@owncloud.com> | 2014-01-12 18:57:53 +0100 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2014-01-16 17:12:29 +0100 |
commit | 350214c6093bbd300102a364f20caa91d23d5fb9 (patch) | |
tree | 90ebee0447a2bd667f2afe18bc6f234e831db726 /apps/files/tests/js/filesSpec.js | |
parent | 85e00ad35a63d2d728140f3ece685d79d7a6140c (diff) | |
download | nextcloud-server-350214c6093bbd300102a364f20caa91d23d5fb9.tar.gz nextcloud-server-350214c6093bbd300102a364f20caa91d23d5fb9.zip |
Added Javascript unit tests
- added karma utility to run jasmine unit tests
- added Sinon library (for stubs/mocks/fakeserver)
- added a few unit tests for core and files
- added autotest-js.sh script
Diffstat (limited to 'apps/files/tests/js/filesSpec.js')
-rw-r--r-- | apps/files/tests/js/filesSpec.js | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/apps/files/tests/js/filesSpec.js b/apps/files/tests/js/filesSpec.js new file mode 100644 index 00000000000..9d0a2e4f9d7 --- /dev/null +++ b/apps/files/tests/js/filesSpec.js @@ -0,0 +1,81 @@ +/** +* ownCloud +* +* @author Vincent Petry +* @copyright 2014 Vincent Petry <pvince81@owncloud.com> +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE +* License as published by the Free Software Foundation; either +* version 3 of the License, or any later version. +* +* This library 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 library. If not, see <http://www.gnu.org/licenses/>. +* +*/ +describe('Files tests', function() { + describe('File name validation', function() { + it('Validates correct file names', function() { + var fileNames = [ + 'boringname', + 'something.with.extension', + 'now with spaces', + '.a', + '..a', + '.dotfile', + 'single\'quote', + ' spaces before', + 'spaces after ', + 'allowed chars including the crazy ones $%&_-^@!,()[]{}=;#', + '汉字也能用', + 'und Ümläüte sind auch willkommen' + ]; + for ( var i = 0; i < fileNames.length; i++ ) { + try { + expect(Files.isFileNameValid(fileNames[i])).toEqual(true); + } + catch (e) { + fail(); + } + } + }); + it('Detects invalid file names', function() { + var fileNames = [ + '', + ' ', + '.', + '..', + 'back\\slash', + 'sl/ash', + 'lt<lt', + 'gt>gt', + 'col:on', + 'double"quote', + 'pi|pe', + 'dont?ask?questions?', + 'super*star', + 'new\nline', + ' ..', + '.. ', + '. ', + ' .' + ]; + for ( var i = 0; i < fileNames.length; i++ ) { + var threwException = false; + try { + Files.isFileNameValid(fileNames[i]); + fail(); + } + catch (e) { + threwException = true; + } + expect(threwException).toEqual(true); + } + }); + }); +}); |