class ImageTest extends TestCase
{
-
/**
* Get the path to our basic test image.
* @return string
*/
protected function deleteImage($relPath)
{
- unlink(public_path($relPath));
+ $path = public_path($relPath);
+ if (file_exists($path)) {
+ unlink($path);
+ }
}
public function test_image_upload()
{
$page = Page::first();
- $this->asAdmin();
$admin = $this->getAdmin();
+ $this->actingAs($admin);
+
$imageName = 'first-image.png';
+ $relPath = $this->getTestImagePath('gallery', $imageName);
+ $this->deleteImage($relPath);
$upload = $this->uploadImage($imageName, $page->id);
$upload->assertStatus(200);
- $relPath = $this->getTestImagePath('gallery', $imageName);
$this->assertTrue(file_exists(public_path($relPath)), 'Uploaded image not found at path: '. public_path($relPath));
$this->assertTrue($testImageData === $uploadedImageData, "Uploaded image file data does not match our test image as expected");
}
+ public function test_user_images_deleted_on_user_deletion()
+ {
+ $editor = $this->getEditor();
+ $this->actingAs($editor);
+
+ $imageName = 'profile.png';
+ $relPath = $this->getTestImagePath('gallery', $imageName);
+ $this->deleteImage($relPath);
+
+ $file = $this->getTestImage($imageName);
+ $this->call('POST', '/images/user/upload', [], [], ['file' => $file], []);
+ $this->call('POST', '/images/user/upload', [], [], ['file' => $file], []);
+
+ $profileImages = Image::where('type', '=', 'user')->where('created_by', '=', $editor->id)->get();
+ $this->assertTrue($profileImages->count() === 2, "Found profile images does not match upload count");
+
+ $userDelete = $this->asAdmin()->delete("/settings/users/{$editor->id}");
+ $userDelete->assertStatus(302);
+ $this->assertDatabaseMissing('images', [
+ 'type' => 'user',
+ 'created_by' => $editor->id
+ ]);
+ }
+
}
\ No newline at end of file