Signed-off-by: alperozturk <alper_ozturk@proton.me>
This commit is contained in:
alperozturk 2024-09-11 15:34:32 +02:00
Родитель 9f247231bb
Коммит c5fda230b4
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4E577DC593B59BDF
3 изменённых файлов: 37 добавлений и 25 удалений

Просмотреть файл

@ -55,31 +55,39 @@ class FileNameValidatorTests : AbstractOnServerIT() {
testOnlyOnServer(NextcloudVersion.nextcloud_30)
val result = FileNameValidator.checkFileName("CON", capability, targetContext)
assertEquals(targetContext.getString(R.string.file_name_validator_error_reserved_names, "CON"), result)
assertEquals(targetContext.getString(R.string.file_name_validator_error_reserved_names, "con"), result)
}
@Test
fun testForbiddenFilenameExtension() {
testOnlyOnServer(NextcloudVersion.nextcloud_30)
val result = FileNameValidator.checkFileName("my_fav_file.filepart", capability, targetContext)
val result = FileNameValidator.checkFileName("my_fav_file.part", capability, targetContext)
assertEquals(
targetContext.getString(R.string.file_name_validator_error_forbidden_file_extensions, "filepart"),
targetContext.getString(R.string.file_name_validator_error_forbidden_file_extensions, ".part"),
result
)
}
@Test
fun testEndsWithSpaceOrPeriod() {
val result = FileNameValidator.checkFileName("filename ", capability, targetContext)
val result2 = FileNameValidator.checkFileName("filename.", capability, targetContext)
val firstFilename = "test "
val secondFilename = "test."
val result = FileNameValidator.checkFileName(firstFilename, capability, targetContext)
val result2 = FileNameValidator.checkFileName(secondFilename, capability, targetContext)
if (capability.version.isOlderThan(NextcloudVersion.nextcloud_30)) {
assertEquals(null, result)
assertEquals(null, result2)
} else {
assertEquals(targetContext.getString(R.string.file_name_validator_error_ends_with_space_period), result)
assertEquals(targetContext.getString(R.string.file_name_validator_error_ends_with_space_period), result2)
assertEquals(
targetContext.getString(R.string.file_name_validator_error_forbidden_file_extensions, " "),
result
)
assertEquals(
targetContext.getString(R.string.file_name_validator_error_forbidden_file_extensions, "."),
result2
)
}
}

Просмотреть файл

@ -60,33 +60,37 @@ object FileNameValidator {
forbiddenFilenameBaseNames().let {
val forbiddenBaseNames = forbiddenFilenameBaseNames().map { it.lowercase() }
if (forbiddenBaseNames.any { it in filenameVariants }) {
return context.getString(
R.string.file_name_validator_error_reserved_names,
filename.substringBefore(StringConstants.DOT)
)
for (forbiddenBaseName in forbiddenBaseNames) {
if (forbiddenBaseName in filenameVariants) {
return context.getString(
R.string.file_name_validator_error_reserved_names,
forbiddenBaseName
)
}
}
}
forbiddenFilenamesJson?.let {
val forbiddenFilenames = forbiddenFilenames().map { it.lowercase() }
if (forbiddenFilenames.any { it in filenameVariants }) {
return context.getString(
R.string.file_name_validator_error_reserved_names,
filename.substringBefore(StringConstants.DOT)
)
for (forbiddenFilename in forbiddenFilenames) {
if (forbiddenFilename in filenameVariants) {
return context.getString(
R.string.file_name_validator_error_reserved_names,
forbiddenFilename
)
}
}
}
forbiddenFilenameExtensionJson?.let {
val forbiddenExtensions = forbiddenFilenameExtension()
if (forbiddenExtensions.any { filename.endsWith(it, ignoreCase = true) }) {
return context.getString(
R.string.file_name_validator_error_forbidden_file_extensions,
filename.substringAfter(StringConstants.DOT)
)
for (forbiddenExtension in forbiddenFilenameExtension()) {
if (filename.endsWith(forbiddenExtension, ignoreCase = true)) {
return context.getString(
R.string.file_name_validator_error_forbidden_file_extensions,
forbiddenExtension
)
}
}
}
}

Просмотреть файл

@ -1241,7 +1241,7 @@
<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">Name contains an invalid character: %s</string>
<string name="file_name_validator_error_reserved_names">%s is a forbidden 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">Name ends with a space or a period</string>
<string name="sync">Sync</string>
</resources>