]> BookStack Code Mirror - bookstack/blob - tests/Uploads/ImageStorageTest.php
Merge pull request #5584 from BookStackApp/content_comments
[bookstack] / tests / Uploads / ImageStorageTest.php
1 <?php
2
3 namespace Tests\Uploads;
4
5 use BookStack\Uploads\ImageStorage;
6 use Tests\TestCase;
7
8 class ImageStorageTest extends TestCase
9 {
10     public function test_local_image_storage_sets_755_directory_permissions()
11     {
12         if (PHP_OS_FAMILY !== 'Linux') {
13             $this->markTestSkipped('Test only works on Linux');
14         }
15
16         config()->set('filesystems.default', 'local');
17         $storage = $this->app->make(ImageStorage::class);
18         $dirToCheck = 'test-dir-perms-' . substr(md5(random_bytes(16)), 0, 6);
19
20         $disk = $storage->getDisk('gallery');
21         $disk->put("{$dirToCheck}/image.png", 'abc', true);
22
23         $expectedPath = public_path("uploads/images/{$dirToCheck}");
24         $permissionsApplied = substr(sprintf('%o', fileperms($expectedPath)), -4);
25         $this->assertEquals('0755', $permissionsApplied);
26
27         @unlink("{$expectedPath}/image.png");
28         @rmdir($expectedPath);
29     }
30 }