aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files/tests/js/filesSpec.js
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2014-01-12 18:57:53 +0100
committerVincent Petry <pvince81@owncloud.com>2014-01-16 17:12:29 +0100
commit350214c6093bbd300102a364f20caa91d23d5fb9 (patch)
tree90ebee0447a2bd667f2afe18bc6f234e831db726 /apps/files/tests/js/filesSpec.js
parent85e00ad35a63d2d728140f3ece685d79d7a6140c (diff)
downloadnextcloud-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.js81
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);
+ }
+ });
+ });
+});