Skip to content

Commit 9d080cc

Browse files
authored
Merge pull request #147 from su-kun1899/main
Apply PCRE_UTF8 for cleaning filename
2 parents 6f2d41c + 89dd53a commit 9d080cc

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

src/Filename.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public static function cleanFilename(string $raw): string
88
{
99
// Remove anything which isn't a word, whitespace, number
1010
// or any of the following caracters -_~,;[]().
11-
$file = preg_replace("([^\w\s\d\-_~,;\[\]\(\).])", '', $raw);
11+
$file = preg_replace("([^\w\s\d\-_~,;\[\]\(\).])u", '', $raw);
1212

1313
// Remove any runs of periods
1414
$file = preg_replace("([\.]{2,})", '', $file);

tests/Unit/FilenameTest.php

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,20 @@
77

88
class FilenameTest extends TestCase
99
{
10-
/** @test */
11-
public function it_creates_a_filename_which_is_valid_on_all_systems()
10+
/**
11+
* @test
12+
* @dataProvider fileNameProvider
13+
*/
14+
public function it_creates_a_filename_which_is_valid_on_all_systems($name, $expected)
1215
{
13-
$name = 'ClassTest__testOne with... data set "Empty".php';
16+
$this->assertEquals($expected, Filename::cleanFilename($name));
17+
}
1418

15-
$this->assertEquals('ClassTest__testOne with data set Empty.php', Filename::cleanFilename($name));
19+
public function fileNameProvider()
20+
{
21+
return [
22+
['ClassTest__testOne with... data set "Empty".php', 'ClassTest__testOne with data set Empty.php'],
23+
['ClassTest__testOne with... data set "空".php', 'ClassTest__testOne with data set 空.php'],
24+
];
1625
}
1726
}

0 commit comments

Comments
 (0)