Skip to content

Commit f26ca8a

Browse files
committed
Add tests and fix replace accents
1 parent 7bb0e98 commit f26ca8a

File tree

4 files changed

+41
-6
lines changed

4 files changed

+41
-6
lines changed

src/Helpers/media_library_helpers.php

+3-5
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,6 @@ function bytesToHuman($bytes)
6363
*/
6464
function replaceAccents($str)
6565
{
66-
if (function_exists('mb_convert_encoding')) {
67-
return mb_convert_encoding($str, 'ASCII', 'UTF-8');
68-
}
6966
return iconv('UTF-8', 'ASCII//TRANSLIT', $str);
7067
}
7168
}
@@ -79,6 +76,7 @@ function sanitizeFilename($filename)
7976
{
8077
$sanitizedFilename = replaceAccents($filename);
8178

79+
dump($sanitizedFilename);
8280
$invalid = array(
8381
' ' => '-',
8482
'%20' => '-',
@@ -87,8 +85,8 @@ function sanitizeFilename($filename)
8785

8886
$sanitizedFilename = str_replace(array_keys($invalid), array_values($invalid), $sanitizedFilename);
8987

90-
$sanitizedFilename = preg_replace('#[^A-Za-z0-9-\. ]#', '', $sanitizedFilename); // Remove all non-alphanumeric except .
91-
$sanitizedFilename = preg_replace('#\.(?=.*\.)#', '', $sanitizedFilename); // Remove all but last .
88+
$sanitizedFilename = preg_replace('#[^A-Za-z0-9-. ]#', '', $sanitizedFilename); // Remove all non-alphanumeric except .
89+
$sanitizedFilename = preg_replace('#\.(?=.*\.)#', '-', $sanitizedFilename); // Remove all but last .
9290
$sanitizedFilename = preg_replace('#-+#', '-', $sanitizedFilename); // Replace any more than one - in a row
9391
$sanitizedFilename = str_replace('-.', '.', $sanitizedFilename); // Remove last - if at the end
9492
$sanitizedFilename = strtolower($sanitizedFilename); // Lowercase

src/Models/Media.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public function altTextFrom($filename)
5252
$filename = substr($filename, 0, -3);
5353
}
5454

55-
return Str::ucfirst(preg_replace('/-_/', ' ', sanitizeFilename($filename)));
55+
return Str::ucfirst(preg_replace('/[-_]/', ' ', $filename));
5656
}
5757

5858
public function canDeleteSafely()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
namespace A17\Twill\Tests\Unit\Helpers;
4+
5+
use A17\Twill\Tests\Unit\TestCase;
6+
7+
class MediaLibraryHelpersTest extends TestCase
8+
{
9+
public function testReplaceAccents()
10+
{
11+
$this->assertEquals('aeeiou', replaceAccents('àéèïôû'));
12+
}
13+
14+
public function testSanitizeFilename()
15+
{
16+
$this->assertEquals('happy-paques-xo-png.jpg', sanitizeFilename('Happy_Pâques - XO.png.jpg'));
17+
}
18+
19+
}

tests/unit/Models/MediaTest.php

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
namespace A17\Twill\Tests\Unit\Models;
4+
5+
use A17\Twill\Models\Media;
6+
use A17\Twill\Tests\Unit\TestCase;
7+
8+
class MediaTest extends TestCase
9+
{
10+
public function testAltText()
11+
{
12+
$m = new Media();
13+
14+
$this->assertEquals("Happy Holidays", $m->altTextFrom('Happy_Holidays.jpg'));
15+
$this->assertEquals("Happy Holidays", $m->altTextFrom('Happy_Holidays@2x.jpg'));
16+
$this->assertEquals("J'aime la pièce", $m->altTextFrom('J\'aime-la-pièce.jpg'));
17+
}
18+
}

0 commit comments

Comments
 (0)