From ba1b9df8a9c2da0f46f2b5a587eeb92c8c3d528d Mon Sep 17 00:00:00 2001
From: Vincent Petry <pvince81@owncloud.com>
Date: Thu, 30 Jan 2014 11:42:43 +0100
Subject: [PATCH] Fixed file name validation unit test + added newline

- fixed file name validation unit test
- added "\n" as forbidden character in isFileNameValid()
---
 apps/files/js/files.js           | 22 +++++++++++++++-------
 apps/files/tests/js/filesSpec.js |  1 +
 2 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/apps/files/js/files.js b/apps/files/js/files.js
index 441c80762f..d0ca43349e 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 510b4df004..018c8ef0f3 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;
-- 
GitLab