3 namespace Tests\Uploads;
5 use BookStack\Uploads\ImageStorage;
8 class ImageStorageTest extends TestCase
10 public function test_local_image_storage_sets_755_directory_permissions()
12 if (PHP_OS_FAMILY !== 'Linux') {
13 $this->markTestSkipped('Test only works on Linux');
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);
20 $disk = $storage->getDisk('gallery');
21 $disk->put("{$dirToCheck}/image.png", 'abc', true);
23 $expectedPath = public_path("uploads/images/{$dirToCheck}");
24 $permissionsApplied = substr(sprintf('%o', fileperms($expectedPath)), -4);
25 $this->assertEquals('0755', $permissionsApplied);
27 @unlink("{$expectedPath}/image.png");
28 @rmdir($expectedPath);