image('test.jpg', 500, 600); $media = MediaLibrary::instance(); $media->put('/pages/test.jpg', $file); Event::fire('media.file.upload', [null, '/pages/test.jpg', null]); $this->assertFileCount(0, ''); } public function testCopyOriginalFileWithoutSizesWhenNoSizesAreSet(): void { Setting::set('folders', [['folder' => '/pages']]); Setting::set('sizes', []); Setting::set('breakpoints', []); $file = UploadedFile::fake()->image('test.jpg', 500, 600); $media = MediaLibrary::instance(); $media->put('/pages/test.jpg', $file->get()); Event::fire('media.file.upload', [null, '/pages/test.jpg', null]); $this->assertFileCount(2, 'pages'); $this->assertHasFile('pages/test.jpg'); $this->assertHasFile('pages/test-500x600.jpg'); } public function testCopyOriginalFileWithoutSizesWhenFilenameDoesntBeginWithASlash(): void { Setting::set('folders', [['folder' => '/pages']]); Setting::set('sizes', []); Setting::set('breakpoints', []); $file = UploadedFile::fake()->image('test.jpg', 500, 600); $media = MediaLibrary::instance(); $media->put('/pages/test.jpg', $file->get()); Event::fire('media.file.upload', [null, 'pages/test.jpg', null]); $this->assertFileCount(2, 'pages'); $this->assertHasFile('pages/test.jpg'); $this->assertHasFile('pages/test-500x600.jpg'); } public function testCopyTwoDirectoriesDeepButNotAnotherDirectory(): void { Setting::set('folders', [['folder' => '/pages']]); Setting::set('sizes', []); Setting::set('breakpoints', []); $file = UploadedFile::fake()->image('test.jpg', 500, 600); $media = MediaLibrary::instance(); $media->put('/pages-neu/test.jpg', $file->get()); Event::fire('media.file.upload', [null, '/pages-neu/test.jpg', null]); $this->assertFileCount(0, 'pages'); $this->assertFileCount(0, 'pages-neu'); } public function testCopySubdirectoriesOfSelectedPath(): void { Setting::set('folders', [['folder' => '/pages']]); Setting::set('sizes', []); Setting::set('breakpoints', []); $file = UploadedFile::fake()->image('test.jpg', 500, 600); $media = MediaLibrary::instance(); $media->put('/pages/neu/test.jpg', $file->get()); Event::fire('media.file.upload', [null, '/pages/neu/test.jpg', null]); $this->assertFileCount(2, 'pages/neu'); } public function testGenerateSizeIfSizeIsSmallerWithSameAspectRatio(): void { Setting::set('folders', [['folder' => '/pages']]); Setting::set('sizes', []); Setting::set('breakpoints', ['250']); $file = UploadedFile::fake()->image('test.jpg', 500, 600); $media = MediaLibrary::instance(); $media->put('/pages/neu/test.jpg', $file->get()); Event::fire('media.file.upload', [null, '/pages/neu/test.jpg', null]); $this->assertFileCount(3, 'pages/neu'); $this->assertHasFile('pages/neu/test-250x300.jpg'); $this->assertHasFile('pages/neu/test-500x600.jpg'); $this->assertHasFile('pages/neu/test.jpg'); } public function testGenerateSizeIfSizeIsSmallerWithDifferentAspectRatio(): void { Setting::set('folders', [['folder' => '/pages']]); Setting::set('sizes', []); Setting::set('breakpoints', ['250']); $file = UploadedFile::fake()->image('test.jpg', 500, 100); $media = MediaLibrary::instance(); $media->put('/pages/neu/test.jpg', $file->get()); Event::fire('media.file.upload', [null, '/pages/neu/test.jpg', null]); $this->assertHasFile('pages/neu/test-250x50.jpg'); } public function testDontGenerateSizeIfOriginalFileIsSmaller(): void { Setting::set('folders', [['folder' => '/pages']]); Setting::set('sizes', []); Setting::set('breakpoints', ['250']); $file = UploadedFile::fake()->image('test.jpg', 250, 1000); $media = MediaLibrary::instance(); $media->put('/pages/neu/test.jpg', $file->get()); Event::fire('media.file.upload', [null, '/pages/neu/test.jpg', null]); $this->assertFileCount(2, 'pages/neu'); } public function testDontGenerateSizeIfImageWouldBeLarger(): void { Setting::set('folders', [['folder' => '/pages']]); Setting::set('sizes', []); Setting::set('breakpoints', ['250']); $file = UploadedFile::fake()->image('test.jpg', 249, 1000); $media = MediaLibrary::instance(); $media->put('/pages/neu/test.jpg', $file->get()); Event::fire('media.file.upload', [null, '/pages/neu/test.jpg', null]); $this->assertFileCount(2, 'pages/neu'); } public function testGenerateBreakpointImage(): void { Setting::set('folders', [['folder' => '/pages']]); Setting::set('sizes', [['name' => 'testas', 'aspect_ratio' => '5x8']]); Setting::set('breakpoints', ['100']); $file = UploadedFile::fake()->image('test.jpg', 500, 400); $media = MediaLibrary::instance(); $media->put('/pages/neu/test.jpg', $file->get()); Event::fire('media.file.upload', [null, '/pages/neu/test.jpg', null]); $this->assertFileCount(5, 'pages/neu'); $this->assertHasFile('pages/neu/test.jpg'); $this->assertHasFile('pages/neu/test-500x400.jpg'); $this->assertHasFile('pages/neu/test-250x400.jpg'); $this->assertHasFile('pages/neu/test-100x160.jpg'); $this->assertHasFile('pages/neu/test-100x80.jpg'); } public function testDontGenerateSvgImageVesions(): void { Setting::set('folders', [['folder' => '/pages']]); Setting::set('sizes', []); Setting::set('breakpoints', ['100']); $media = MediaLibrary::instance(); $media->put('/pages/test.svg', file_get_contents(__DIR__.'/stub/close.svg')); Event::fire('media.file.upload', [null, '/pages/test.svg', null]); $this->assertFileCount(1, 'pages'); } public function testGeneratePngImage(): void { Setting::set('folders', [['folder' => '/pages']]); Setting::set('sizes', []); Setting::set('breakpoints', ['100']); $media = MediaLibrary::instance(); $media->put('/pages/test.png', UploadedFile::fake()->image('test.png', 500, 500)->get()); Event::fire('media.file.upload', [null, '/pages/test.png', null]); $this->assertHasFile('pages/test-100x100.png'); } }