summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2014-01-30 11:42:43 +0100
committerVincent Petry <pvince81@owncloud.com>2014-01-30 13:40:01 +0100
commitba1b9df8a9c2da0f46f2b5a587eeb92c8c3d528d (patch)
tree18cb9741cb23f8667665224b99dc56e93f3ecee4
parentd36a2ff9eeedc9ebb2ebbba5d55cc255281e9929 (diff)
downloadnextcloud-server-ba1b9df8a9c2da0f46f2b5a587eeb92c8c3d528d.tar.gz
nextcloud-server-ba1b9df8a9c2da0f46f2b5a587eeb92c8c3d528d.zip
Fixed file name validation unit test + added newline
- fixed file name validation unit test - added "\n" as forbidden character in isFileNameValid()
-rw-r--r--apps/files/js/files.js22
-rw-r--r--apps/files/tests/js/filesSpec.js1
2 files changed, 16 insertions, 7 deletions
diff --git a/apps/files/js/files.js b/apps/files/js/files.js
index 441c80762f9..d0ca43349e0 100644
--- a/apps/files/js/files.js
+++ b/apps/files/js/files.js
@@ -79,17 +79,25 @@ var Files = {
return fileName;
},
- isFileNameValid:function (name) {
- if (name === '.') {
- throw t('files', '\'.\' is an invalid file name.');
- } else if (name.length === 0) {
+ /**
+ * Checks whether the given file name is valid.
+ * @param name file name to check
+ * @return true if the file name is valid.
+ * Throws a string exception with an error message if
+ * the file name is not valid
+ */
+ isFileNameValid: function (name) {
+ var trimmedName = name.trim();
+ if (trimmedName === '.' || trimmedName === '..') {
+ throw t('files', '"{name}" is an invalid file name.', {name: name});
+ } else if (trimmedName.length === 0) {
throw t('files', 'File name cannot be empty.');
}
-
// check for invalid characters
- var invalid_characters = ['\\', '/', '<', '>', ':', '"', '|', '?', '*'];
+ var invalid_characters =
+ ['\\', '/', '<', '>', ':', '"', '|', '?', '*', '\n'];
for (var i = 0; i < invalid_characters.length; i++) {
- if (name.indexOf(invalid_characters[i]) !== -1) {
+ if (trimmedName.indexOf(invalid_characters[i]) !== -1) {
throw t('files', "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed.");
}
}
diff --git a/apps/files/tests/js/filesSpec.js b/apps/files/tests/js/filesSpec.js
index 510b4df0046..018c8ef0f3c 100644
--- a/apps/files/tests/js/filesSpec.js
+++ b/apps/files/tests/js/filesSpec.js
@@ -73,6 +73,7 @@ describe('Files tests', function() {
var threwException = false;
try {
Files.isFileNameValid(fileNames[i]);
+ console.error('Invalid file name not detected:', fileNames[i]);
}
catch (e) {
threwException = true;