1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2024-11-23 11:22:33 +01:00

Images: Added test to cover thubmnail regen endpoint

This commit is contained in:
Dan Brown 2023-09-30 12:29:49 +01:00
parent 5c318a45b8
commit 97274a8140
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9
2 changed files with 33 additions and 1 deletions

View File

@ -133,12 +133,21 @@ class FileProvider
*/
public function deleteAtRelativePath(string $path): void
{
$fullPath = public_path($path);
$fullPath = $this->relativeToFullPath($path);
if (file_exists($fullPath)) {
unlink($fullPath);
}
}
/**
* Convert a relative path used by default in this provider to a full
* absolute local filesystem path.
*/
public function relativeToFullPath(string $path): string
{
return public_path($path);
}
/**
* Delete all uploaded files.
* To assist with cleanup.

View File

@ -552,6 +552,29 @@ class ImageTest extends TestCase
$this->files->deleteAtRelativePath($relPath);
}
public function test_image_manager_regen_thumbnails()
{
$this->asEditor();
$imageName = 'first-image.png';
$relPath = $this->files->expectedImagePath('gallery', $imageName);
$this->files->uploadGalleryImage($this, $imageName, $this->entities->page()->id);
$image = Image::first();
$resp = $this->get("/images/edit/{$image->id}");
$this->withHtml($resp)->assertElementExists('button#image-manager-rebuild-thumbs');
$expectedThumbPath = dirname($relPath) . '/scaled-1680-/' . basename($relPath);
$this->files->deleteAtRelativePath($expectedThumbPath);
$this->assertFileDoesNotExist($this->files->relativeToFullPath($expectedThumbPath));
$resp = $this->put("/images/{$image->id}/rebuild-thumbnails");
$resp->assertOk();
$this->assertFileExists($this->files->relativeToFullPath($expectedThumbPath));
$this->files->deleteAtRelativePath($relPath);
}
protected function getTestProfileImage()
{
$imageName = 'profile.png';