public function test_image_upload()
{
- $page = Page::query()->first();
+ $page = $this->entities->page();
$admin = $this->getAdmin();
$this->actingAs($admin);
public function test_image_display_thumbnail_generation_does_not_increase_image_size()
{
- $page = Page::query()->first();
+ $page = $this->entities->page();
$admin = $this->getAdmin();
$this->actingAs($admin);
public function test_image_display_thumbnail_generation_for_apng_images_uses_original_file()
{
- $page = Page::query()->first();
+ $page = $this->entities->page();
$admin = $this->getAdmin();
$this->actingAs($admin);
public function test_image_usage()
{
- $page = Page::query()->first();
+ $page = $this->entities->page();
$editor = $this->getEditor();
$this->actingAs($editor);
public function test_php_files_cannot_be_uploaded()
{
- $page = Page::query()->first();
+ $page = $this->entities->page();
$admin = $this->getAdmin();
$this->actingAs($admin);
public function test_php_like_files_cannot_be_uploaded()
{
- $page = Page::query()->first();
+ $page = $this->entities->page();
$admin = $this->getAdmin();
$this->actingAs($admin);
public function test_files_with_double_extensions_will_get_sanitized()
{
- $page = Page::query()->first();
+ $page = $this->entities->page();
$admin = $this->getAdmin();
$this->actingAs($admin);
];
foreach ($badNames as $name) {
$galleryFile = $this->getTestImage($name);
- $page = Page::query()->first();
+ $page = $this->entities->page();
$badPath = $this->getTestImagePath('gallery', $name);
$this->deleteImage($badPath);
config()->set('filesystems.images', 'local_secure');
$this->asEditor();
$galleryFile = $this->getTestImage('my-secure-test-upload.png');
- $page = Page::query()->first();
+ $page = $this->entities->page();
$expectedPath = storage_path('uploads/images/gallery/' . date('Y-m') . '/my-secure-test-upload.png');
$upload = $this->call('POST', '/images/gallery', ['uploaded_to' => $page->id], [], ['file' => $galleryFile], []);
config()->set('filesystems.images', 'local_secure');
$this->asEditor();
$galleryFile = $this->getTestImage('my-secure-test-upload.png');
- $page = Page::query()->first();
+ $page = $this->entities->page();
$expectedPath = storage_path('uploads/images/gallery/' . date('Y-m') . '/my-secure-test-upload.png');
$upload = $this->call('POST', '/images/gallery', ['uploaded_to' => $page->id], [], ['file' => $galleryFile], []);
}
}
- public function test_system_images_remain_public()
+ public function test_system_images_remain_public_with_local_secure()
{
config()->set('filesystems.images', 'local_secure');
$this->asAdmin();
}
}
+ public function test_system_images_remain_public_with_local_secure_restricted()
+ {
+ config()->set('filesystems.images', 'local_secure_restricted');
+ $this->asAdmin();
+ $galleryFile = $this->getTestImage('my-system-test-restricted-upload.png');
+ $expectedPath = public_path('uploads/images/system/' . date('Y-m') . '/my-system-test-restricted-upload.png');
+
+ $upload = $this->call('POST', '/settings/customization', [], [], ['app_logo' => $galleryFile], []);
+ $upload->assertRedirect('/settings/customization');
+
+ $this->assertTrue(file_exists($expectedPath), 'Uploaded image not found at path: ' . $expectedPath);
+
+ if (file_exists($expectedPath)) {
+ unlink($expectedPath);
+ }
+ }
+
public function test_secure_restricted_images_inaccessible_without_relation_permission()
{
config()->set('filesystems.images', 'local_secure_restricted');
$this->asEditor();
$galleryFile = $this->getTestImage('my-secure-restricted-test-upload.png');
- /** @var Page $page */
- $page = Page::query()->first();
+ $page = $this->entities->page();
$upload = $this->call('POST', '/images/gallery', ['uploaded_to' => $page->id], [], ['file' => $galleryFile], []);
$upload->assertStatus(200);
$this->get($expectedUrl)->assertOk();
- $this->setEntityRestrictions($page, [], []);
+ $this->entities->setPermissions($page, [], []);
$resp = $this->get($expectedUrl);
$resp->assertNotFound();
config()->set('filesystems.images', 'local_secure_restricted');
$this->asEditor();
$galleryFile = $this->getTestImage('my-secure-restricted-thumb-test-test.png');
- /** @var Page $page */
- $page = Page::query()->first();
+ $page = $this->entities->page();
$upload = $this->call('POST', '/images/gallery', ['uploaded_to' => $page->id], [], ['file' => $galleryFile], []);
$upload->assertStatus(200);
$this->get($expectedUrl)->assertOk();
- $this->setEntityRestrictions($page, [], []);
+ $this->entities->setPermissions($page, [], []);
$resp = $this->get($expectedUrl);
$resp->assertNotFound();
$export = $this->get($pageB->getUrl('/export/html'));
$this->assertStringContainsString($encodedImageContent, $export->getContent());
- $this->setEntityRestrictions($pageA, [], []);
+ $this->entities->setPermissions($pageA, [], []);
$export = $this->get($pageB->getUrl('/export/html'));
$this->assertStringNotContainsString($encodedImageContent, $export->getContent());
public function test_image_delete()
{
- $page = Page::query()->first();
+ $page = $this->entities->page();
$this->asAdmin();
$imageName = 'first-image.png';
$relPath = $this->getTestImagePath('gallery', $imageName);
public function test_image_delete_does_not_delete_similar_images()
{
- $page = Page::query()->first();
+ $page = $this->entities->page();
$this->asAdmin();
$imageName = 'first-image.png';
public function test_image_manager_delete_button_only_shows_with_permission()
{
- $page = Page::query()->first();
+ $page = $this->entities->page();
$this->asAdmin();
$imageName = 'first-image.png';
$relPath = $this->getTestImagePath('gallery', $imageName);
public function test_deleted_unused_images()
{
- $page = Page::query()->first();
+ $page = $this->entities->page();
$admin = $this->getAdmin();
$this->actingAs($admin);