Skip to content

Commit 490370e

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

File tree

4 files changed

+40
-6
lines changed

4 files changed

+40
-6
lines changed

src/Helpers/media_library_helpers.php

+2-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
}
@@ -87,8 +84,8 @@ function sanitizeFilename($filename)
8784

8885
$sanitizedFilename = str_replace(array_keys($invalid), array_values($invalid), $sanitizedFilename);
8986

90-
$sanitizedFilename = preg_replace('#[^A-Za-z0-9-\. ]#', '', $sanitizedFilename); // Remove all non-alphanumeric except .
91-
$sanitizedFilename = preg_replace('#\.(?=.*\.)#', '', $sanitizedFilename); // Remove all but last .
87+
$sanitizedFilename = preg_replace('#[^A-Za-z0-9-. ]#', '', $sanitizedFilename); // Remove all non-alphanumeric except .
88+
$sanitizedFilename = preg_replace('#\.(?=.*\.)#', '-', $sanitizedFilename); // Remove all but last .
9289
$sanitizedFilename = preg_replace('#-+#', '-', $sanitizedFilename); // Replace any more than one - in a row
9390
$sanitizedFilename = str_replace('-.', '.', $sanitizedFilename); // Remove last - if at the end
9491
$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)