浏览代码

Add test for forbidden file name extension

Signed-off-by: alperozturk <alper_ozturk@proton.me>
alperozturk 11 月之前
父节点
当前提交
436f0de8d1

+ 9 - 0
app/src/androidTest/java/com/nextcloud/utils/FileNameValidatorTests.kt

@@ -44,6 +44,15 @@ class FileNameValidatorTests : AbstractIT() {
         assertEquals(targetContext.getString(R.string.file_name_validator_error_reserved_names, "CON"), result)
     }
 
+    @Test
+    fun testForbiddenFilenameExtension() {
+        val result = FileNameValidator.checkFileName("my_fav_file.filepart", capability, targetContext)
+        assertEquals(
+            targetContext.getString(R.string.file_name_validator_error_forbidden_file_extensions, "filepart"),
+            result
+        )
+    }
+
     @Test
     fun testEndsWithSpaceOrPeriod() {
         val result = FileNameValidator.checkFileName("filename ", capability, targetContext)

+ 6 - 1
app/src/main/java/com/nextcloud/utils/fileNameValidator/FileNameValidator.kt

@@ -70,7 +70,12 @@ object FileNameValidator {
             return context.getString(R.string.file_name_validator_error_reserved_names, filename.substringBefore(dot()))
         }
 
-        if (capability.forbiddenFilenameExtension.isTrue && forbiddenFileExtensions.contains(filename.uppercase())) {
+        if (capability.forbiddenFilenameExtension.isTrue && forbiddenFileExtensions.any {
+                filename.endsWith(
+                    it,
+                    ignoreCase = true
+                )
+            }) {
             return context.getString(
                 R.string.file_name_validator_error_forbidden_file_extensions,
                 filename.substringAfter(dot())

+ 1 - 1
app/src/main/res/values/strings.xml

@@ -1224,6 +1224,6 @@
     <string name="file_name_validator_error_contains_reserved_names_or_invalid_characters">Folder path contains reserved names or invalid character</string>
     <string name="file_name_validator_error_invalid_character">File name contains invalid characters: %s</string>
     <string name="file_name_validator_error_reserved_names">%s is a reserved name</string>
-    <string name="file_name_validator_error_forbidden_file_extensions">%s is a forbidden file extension</string>
+    <string name="file_name_validator_error_forbidden_file_extensions">.%s is a forbidden file extension</string>
     <string name="file_name_validator_error_ends_with_space_period">File name ends with a space or a period</string>
 </resources>