From 78ce7a17ec3e79402d0ae163d1e56a98d44cb365 Mon Sep 17 00:00:00 2001 From: Arthur Poiret Date: Sun, 10 Jan 2021 15:37:03 +0100 Subject: [PATCH] fix(#59): allow spaces in sanitizeFleName --- .../com/owlplug/core/utils/FileUtils.java | 7 +--- .../com/owlplug/core/utils/FileUtilsTest.java | 33 +++++++++++++++++++ 2 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 owlplug-client/src/test/java/com/owlplug/core/utils/FileUtilsTest.java diff --git a/owlplug-client/src/main/java/com/owlplug/core/utils/FileUtils.java b/owlplug-client/src/main/java/com/owlplug/core/utils/FileUtils.java index 2cb3f8f4..5a99cb95 100644 --- a/owlplug-client/src/main/java/com/owlplug/core/utils/FileUtils.java +++ b/owlplug-client/src/main/java/com/owlplug/core/utils/FileUtils.java @@ -48,14 +48,9 @@ public static String convertPath(String path) { return path.replace("\\", "/"); } - public static boolean isFilenameValid(String fileName) { - - return fileName != null && !fileName.equals("") && fileName.matches("[-_.A-Za-z0-9]*"); - } - public static String sanitizeFileName(String fileName) { - return fileName.replaceAll("[^-_.A-Za-z0-9]", ""); + return fileName.replaceAll("[^-_.A-Za-z0-9 ]", "").trim().replaceAll("\\s+"," "); } diff --git a/owlplug-client/src/test/java/com/owlplug/core/utils/FileUtilsTest.java b/owlplug-client/src/test/java/com/owlplug/core/utils/FileUtilsTest.java new file mode 100644 index 00000000..e7e398b6 --- /dev/null +++ b/owlplug-client/src/test/java/com/owlplug/core/utils/FileUtilsTest.java @@ -0,0 +1,33 @@ +package com.owlplug.core.utils; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class FileUtilsTest { + + @Test + public void testSanitizeFileNameWithRegularsChars() { + String sanitizedFileName = FileUtils.sanitizeFileName("File-name0_.test"); + assertEquals("File-name0_.test", sanitizedFileName); + } + + @Test + public void testSanitizeFileNameWithExtraSpaces() { + String sanitizedFileName = FileUtils.sanitizeFileName(" file name "); + assertEquals("file name", sanitizedFileName); + } + + @Test + public void testSanitizeFileNameWithWhitespacesChars() { + String sanitizedFileName = FileUtils.sanitizeFileName("\tfile\n\nname"); + assertEquals("filename", sanitizedFileName); + } + + @Test + public void testSanitizeFileNameWithIllegalChars() { + String sanitizedFileName = FileUtils.sanitizeFileName("fi/len%am[e]"); + assertEquals("filename", sanitizedFileName); + } + +}