mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-06-20 08:42:15 +03:00
Merge pull request #5096 from DanielGordonIT/normalize-file-extensions
Wraps file extension comparison components in strtolower()
This commit is contained in:
@ -166,7 +166,7 @@ class ImageRepo
|
|||||||
*/
|
*/
|
||||||
public function updateImageFile(Image $image, UploadedFile $file): void
|
public function updateImageFile(Image $image, UploadedFile $file): void
|
||||||
{
|
{
|
||||||
if ($file->getClientOriginalExtension() !== pathinfo($image->path, PATHINFO_EXTENSION)) {
|
if (strtolower($file->getClientOriginalExtension()) !== strtolower(pathinfo($image->path, PATHINFO_EXTENSION))) {
|
||||||
throw new ImageUploadException(trans('errors.image_upload_replace_type'));
|
throw new ImageUploadException(trans('errors.image_upload_replace_type'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,6 +119,33 @@ class ImageTest extends TestCase
|
|||||||
$this->files->deleteAtRelativePath($relPath);
|
$this->files->deleteAtRelativePath($relPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_image_file_update_allows_case_differences()
|
||||||
|
{
|
||||||
|
$page = $this->entities->page();
|
||||||
|
$this->asEditor();
|
||||||
|
|
||||||
|
$imgDetails = $this->files->uploadGalleryImageToPage($this, $page);
|
||||||
|
$relPath = $imgDetails['path'];
|
||||||
|
|
||||||
|
$newUpload = $this->files->uploadedImage('updated-image.PNG', 'compressed.png');
|
||||||
|
$this->assertFileEquals($this->files->testFilePath('test-image.png'), public_path($relPath));
|
||||||
|
|
||||||
|
$imageId = $imgDetails['response']->id;
|
||||||
|
$image = Image::findOrFail($imageId);
|
||||||
|
$image->updated_at = now()->subMonth();
|
||||||
|
$image->save();
|
||||||
|
|
||||||
|
$this->call('PUT', "/images/{$imageId}/file", [], [], ['file' => $newUpload])
|
||||||
|
->assertOk();
|
||||||
|
|
||||||
|
$this->assertFileEquals($this->files->testFilePath('compressed.png'), public_path($relPath));
|
||||||
|
|
||||||
|
$image->refresh();
|
||||||
|
$this->assertTrue($image->updated_at->gt(now()->subMinute()));
|
||||||
|
|
||||||
|
$this->files->deleteAtRelativePath($relPath);
|
||||||
|
}
|
||||||
|
|
||||||
public function test_image_file_update_does_not_allow_change_in_image_extension()
|
public function test_image_file_update_does_not_allow_change_in_image_extension()
|
||||||
{
|
{
|
||||||
$page = $this->entities->page();
|
$page = $this->entities->page();
|
||||||
|
Reference in New Issue
Block a user