diff --git a/application/Espo/Core/Utils/Util.php b/application/Espo/Core/Utils/Util.php index dd39e36056..a7a4fbbf65 100644 --- a/application/Espo/Core/Utils/Util.php +++ b/application/Espo/Core/Utils/Util.php @@ -704,7 +704,7 @@ class Util public static function sanitizeFileName(string $fileName): string { /** @var string */ - return preg_replace("/([^\w\s\d\-_~,;:\[\]\(\).])/u", '_', $fileName); + return preg_replace("/([^\w\d\-_~,;:\[\]\(\).])/u", '_', $fileName); } /** diff --git a/tests/unit/Espo/Core/Utils/UtilTest.php b/tests/unit/Espo/Core/Utils/UtilTest.php index 7a649b4921..0ce66610ce 100644 --- a/tests/unit/Espo/Core/Utils/UtilTest.php +++ b/tests/unit/Espo/Core/Utils/UtilTest.php @@ -1660,4 +1660,22 @@ class UtilTest extends TestCase { $this->assertEquals($expectedResult, Util::urlRemoveParam($url, $paramName, $suffix)); } + + /** + * @return string[] + */ + static public function sanitizeFileNameList(): array + { + return [ + ['test%', 'test_'], + ["test\n", 'test_'], + ["test test", 'test_test'], + ]; + } + + #[DataProvider('sanitizeFileNameList')] + public function testSanitizeFileName(string $input, string $expected): void + { + $this->assertEquals($expected, Util::sanitizeFileName($input)); + } }