oc-resizer-plugin/tests/ResizerTest.php

228 lines
8.0 KiB
PHP
Raw Normal View History

2021-09-06 02:31:27 +02:00
<?php
namespace Aweos\Resizer\Tests\MediaTest;
use Aweos\Resizer\Models\Setting;
use Aweos\Resizer\Tests\TestCase;
use Event;
use Illuminate\Http\UploadedFile;
use Media\Classes\MediaLibrary;
use Storage;
class ResizerTest extends TestCase
{
public function setUp(): void
{
parent::setUp();
Storage::fake('local');
}
public function testDontCopyOriginalFileWhenSettingsAreNotSet(): void
{
Setting::set('folders', []);
Setting::set('sizes', []);
Setting::set('breakpoints', []);
$file = UploadedFile::fake()->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(1, 'pages');
$this->assertDoesntHaveFile('pages/test.jpg');
2021-09-06 02:31:27 +02:00
$this->assertHasFile('pages/test-500x600.jpg');
}
2021-09-13 01:18:40 +02:00
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(1, 'pages');
2021-09-13 01:18:40 +02:00
$this->assertHasFile('pages/test-500x600.jpg');
}
2021-09-06 02:31:27 +02:00
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(1, 'pages/neu');
2021-09-06 02:31:27 +02:00
}
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(2, 'pages/neu');
2021-09-06 02:31:27 +02:00
$this->assertHasFile('pages/neu/test-250x300.jpg');
$this->assertHasFile('pages/neu/test-500x600.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(1, 'pages/neu');
2021-09-06 02:31:27 +02:00
}
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(1, 'pages/neu');
2021-09-06 02:31:27 +02:00
}
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(4, 'pages/neu');
2021-09-06 02:31:27 +02:00
$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');
}
2021-09-14 02:13:29 +02:00
public function testDontGenerateSvgImageVesions(): void
2021-09-06 13:03:38 +02:00
{
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(0, 'pages');
2021-09-14 02:13:29 +02:00
}
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');
$this->assertFileCount(2, 'pages');
}
public function testDontUpsizeAJpgImage(): void
{
Setting::set('folders', [['folder' => '/pages']]);
Setting::set('sizes', []);
Setting::set('breakpoints', ['100', '600']);
$media = MediaLibrary::instance();
$media->put('/pages/test.jpg', UploadedFile::fake()->image('test.jpg', 500, 500)->get());
Event::fire('media.file.upload', [null, '/pages/test.jpg', null]);
$this->assertFileCount(2, 'pages');
2021-09-17 13:29:16 +02:00
$this->assertHasFile('pages/test-100x100.jpg');
$this->assertHasFile('pages/test-500x500.jpg');
}
public function testDontUpsizeAPngImage(): void
{
Setting::set('folders', [['folder' => '/pages']]);
Setting::set('sizes', []);
Setting::set('breakpoints', ['100', '600']);
$media = MediaLibrary::instance();
2021-09-17 13:29:16 +02:00
$media->put('/pages/test.png', UploadedFile::fake()->image('test.png', 500, 1000)->get());
Event::fire('media.file.upload', [null, '/pages/test.png', null]);
2021-09-17 13:29:16 +02:00
$this->assertHasFile('pages/test-100x200.png');
$this->assertFileCount(2, 'pages');
2021-09-06 13:03:38 +02:00
}
2021-09-06 02:31:27 +02:00
}