diff --git a/CHANGELOG.md b/CHANGELOG.md index 2163829f..fbcf620d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -48,6 +48,7 @@ All SourceAdapter classes have been significantly refactored. ### Other - Improved MediableCollection annotions to support generic types - Removed the `\Plank\Mediable\Stream` class in favor of the `guzzlehttp/psr7` implementation. This removes the direct dependency on the `psr/http-message` library. +- `\Plank\Mediable\HandlesMediaUploadExceptions::transformMediaUploadException()` parameter and return type changed from `\Exception` to `\Throwable`. ## 5.5.0 - 2022-05-09 - Filename and pathname sanitization will use the app locale when transliterating UTF-8 characters to ascii. diff --git a/UPGRADING.md b/UPGRADING.md index 66461c64..7b5f9d74 100644 --- a/UPGRADING.md +++ b/UPGRADING.md @@ -27,6 +27,7 @@ * Install the necessary command line tools for the types of images that you are working with. See [spatie/image-optimizer documentation](https://github.com/spatie/image-optimizer/blob/main/README.md#optimization-tools) for installation instructions on various operating systems. * add the `image_optimization.enabled` and `image_optimization.optimizers` configs to the `config/mediable.php` file. See the [sample configuration file](https://github.com/plank/laravel-mediable/blob/master/config/mediable.php) for a recommended baseline setup. * The `ImageManipulation::usingHashForFilename()` method has been renamed to `ImageManipulation::isUsingHashForFilename()` to avoid confusion with the `useHashForFilename()` method. +* `\Plank\Mediable\HandlesMediaUploadExceptions::transformMediaUploadException()` parameter and return type changed from `\Exception` to `\Throwable`. ## 4.x to 5.x diff --git a/src/HandlesMediaUploadExceptions.php b/src/HandlesMediaUploadExceptions.php index 1c7e170c..98248a51 100644 --- a/src/HandlesMediaUploadExceptions.php +++ b/src/HandlesMediaUploadExceptions.php @@ -50,10 +50,10 @@ trait HandlesMediaUploadExceptions /** * Transform a MediaUploadException into an HttpException. * - * @param \Exception $e - * @return \Exception + * @param \Throwable $e + * @return \Throwable */ - protected function transformMediaUploadException(Exception $e): Exception + protected function transformMediaUploadException(\Throwable $e): \Throwable { if ($e instanceof MediaUploadException) { $status_code = $this->getStatusCodeForMediaUploadException($e); diff --git a/src/ImageManipulation.php b/src/ImageManipulation.php index a38707e5..b69afcec 100644 --- a/src/ImageManipulation.php +++ b/src/ImageManipulation.php @@ -71,7 +71,7 @@ public function __construct(callable $callback) $this->setOptimizers(config('mediable.image_optimization.optimizers', [])); } - public static function make(callable $callback) + public static function make(callable $callback): self { return new self($callback); } @@ -411,7 +411,7 @@ public function getOptimizerChain(): OptimizerChain return $chain; } - private function setOptimizers(array $customOptimizers) + private function setOptimizers(array $customOptimizers): void { foreach ($customOptimizers as $optimizerClass => $args) { if (!is_a($optimizerClass, Optimizer::class, true)) { diff --git a/src/ImageManipulator.php b/src/ImageManipulator.php index 72301f6b..9b9764c5 100644 --- a/src/ImageManipulator.php +++ b/src/ImageManipulator.php @@ -310,7 +310,7 @@ public function determineFilename( return sprintf('%s-%s', $originalMedia->filename, $variant->variant_name); } - public function validateMedia(Media $media) + public function validateMedia(Media $media): void { if ($media->aggregate_type != Media::TYPE_IMAGE) { throw ImageManipulationException::invalidMediaType($media->aggregate_type); diff --git a/src/Jobs/CreateImageVariants.php b/src/Jobs/CreateImageVariants.php index f5cece8f..456d217f 100644 --- a/src/Jobs/CreateImageVariants.php +++ b/src/Jobs/CreateImageVariants.php @@ -47,7 +47,7 @@ public function __construct($models, $variantNames, bool $forceRecreate = false) $this->forceRecreate = $forceRecreate; } - public function handle() + public function handle(): void { foreach ($this->getModels() as $model) { foreach ($this->getVariantNames() as $variantName) { diff --git a/src/Media.php b/src/Media.php index 1c32f8e6..dd8c24a2 100644 --- a/src/Media.php +++ b/src/Media.php @@ -301,7 +301,7 @@ public function scopeWhereIsOriginal(Builder $q): void $q->whereNull('original_media_id'); } - public function scopeWhereIsVariant(Builder $q, string $variant_name = null) + public function scopeWhereIsVariant(Builder $q, string $variant_name = null): void { $q->whereNotNull('original_media_id'); if ($variant_name) { @@ -407,7 +407,7 @@ public function contents(): string * Get a read stream to the file * @return StreamInterface */ - public function stream() + public function stream(): StreamInterface { $stream = $this->storage()->readStream($this->getDiskPath()); if (method_exists(Utils::class, 'streamFor')) { diff --git a/src/UrlGenerators/BaseUrlGenerator.php b/src/UrlGenerators/BaseUrlGenerator.php index 93e96140..34abaa6e 100644 --- a/src/UrlGenerators/BaseUrlGenerator.php +++ b/src/UrlGenerators/BaseUrlGenerator.php @@ -47,7 +47,7 @@ public function isPubliclyAccessible(): bool * @param mixed $default * @return mixed */ - protected function getDiskConfig(string $key, $default = null) + protected function getDiskConfig(string $key, $default = null): mixed { return $this->config->get("filesystems.disks.{$this->media->disk}.{$key}", $default); } diff --git a/tests/Integration/Commands/ImportMediaCommandTest.php b/tests/Integration/Commands/ImportMediaCommandTest.php index 1d331b05..55118b39 100644 --- a/tests/Integration/Commands/ImportMediaCommandTest.php +++ b/tests/Integration/Commands/ImportMediaCommandTest.php @@ -25,7 +25,7 @@ public function getEnvironmentSetUp($app) $app['config']->set('mediable.strict_type_checking', false); } - public function test_it_creates_media_for_unmatched_files() + public function test_it_creates_media_for_unmatched_files(): void { $artisan = $this->getArtisan(); $media1 = factory(Media::class)->make(['disk' => 'tmp', 'filename' => 'foo']); @@ -42,7 +42,7 @@ public function test_it_creates_media_for_unmatched_files() ); } - public function test_it_creates_media_for_unmatched_files_in_directory() + public function test_it_creates_media_for_unmatched_files_in_directory(): void { $artisan = $this->getArtisan(); $media1 = factory(Media::class)->make( @@ -60,7 +60,7 @@ public function test_it_creates_media_for_unmatched_files_in_directory() $this->assertEquals(['bar'], Media::pluck('filename')->toArray()); } - public function test_it_creates_media_for_unmatched_files_non_recursively() + public function test_it_creates_media_for_unmatched_files_non_recursively(): void { $artisan = $this->getArtisan(); $media1 = factory(Media::class)->make( @@ -81,7 +81,7 @@ public function test_it_creates_media_for_unmatched_files_non_recursively() $this->assertEquals(['foo'], Media::pluck('filename')->toArray()); } - public function test_it_skips_files_of_unmatched_aggregate_type() + public function test_it_skips_files_of_unmatched_aggregate_type(): void { $artisan = $this->getArtisan(); $filesystem = app(FilesystemManager::class); @@ -105,7 +105,7 @@ public function test_it_skips_files_of_unmatched_aggregate_type() ); } - public function test_it_updates_existing_media() + public function test_it_updates_existing_media(): void { $artisan = $this->getArtisan(); $media1 = factory(Media::class)->create( @@ -141,7 +141,7 @@ public function test_it_updates_existing_media() ); } - protected function getArtisan() + protected function getArtisan(): Artisan { return app(Artisan::class); } diff --git a/tests/Integration/Commands/PruneMediaCommandTest.php b/tests/Integration/Commands/PruneMediaCommandTest.php index 511e345f..9002078a 100644 --- a/tests/Integration/Commands/PruneMediaCommandTest.php +++ b/tests/Integration/Commands/PruneMediaCommandTest.php @@ -16,7 +16,7 @@ public function setUp(): void $this->withoutMockingConsoleOutput(); } - public function test_it_deletes_media_without_files() + public function test_it_deletes_media_without_files(): void { $artisan = $this->getArtisan(); $media1 = factory(Media::class)->create(['id' => 1, 'disk' => 'tmp']); @@ -29,7 +29,7 @@ public function test_it_deletes_media_without_files() $this->assertEquals("Pruned 1 record(s).\n", $artisan->output()); } - public function test_it_prunes_directory() + public function test_it_prunes_directory(): void { $artisan = $this->getArtisan(); $media1 = factory(Media::class)->create( @@ -45,7 +45,7 @@ public function test_it_prunes_directory() $this->assertEquals("Pruned 1 record(s).\n", $artisan->output()); } - public function test_it_prunes_non_recursively() + public function test_it_prunes_non_recursively(): void { $artisan = $this->getArtisan(); $media1 = factory(Media::class)->create( @@ -61,7 +61,7 @@ public function test_it_prunes_non_recursively() $this->assertEquals("Pruned 1 record(s).\n", $artisan->output()); } - public function getArtisan() + public function getArtisan(): Artisan { return app(Artisan::class); } diff --git a/tests/Integration/Commands/SyncMediaCommandTest.php b/tests/Integration/Commands/SyncMediaCommandTest.php index 360845d4..33d12a74 100644 --- a/tests/Integration/Commands/SyncMediaCommandTest.php +++ b/tests/Integration/Commands/SyncMediaCommandTest.php @@ -7,7 +7,7 @@ class SyncMediaCommandTest extends TestCase { - public function test_it_calls_prune_and_install() + public function test_it_calls_prune_and_install(): void { $this->withoutMockingConsoleOutput(); /** @var SyncMediaCommand $command */ diff --git a/tests/Integration/ConnectionTest.php b/tests/Integration/ConnectionTest.php index 4baf06b9..31183cff 100644 --- a/tests/Integration/ConnectionTest.php +++ b/tests/Integration/ConnectionTest.php @@ -16,7 +16,7 @@ public function setUp(): void $this->useDatabase(); } - public function test_it_can_use_different_connection() + public function test_it_can_use_different_connection(): void { $media = factory(Media::class)->create(['id' => 1]); $mediable = factory(SampleMediable::class)->create(); @@ -32,7 +32,7 @@ public function test_it_can_use_different_connection() $this->assertEquals(1, $mediable->firstMedia('foo')->id); } - protected function setupConnection() + protected function setupConnection(): void { $this->app['config']->set('database.connections.my_connection', [ 'driver' => 'sqlite', diff --git a/tests/Integration/HandlesMediaExceptionsTest.php b/tests/Integration/HandlesMediaExceptionsTest.php index 26528488..fed16c79 100644 --- a/tests/Integration/HandlesMediaExceptionsTest.php +++ b/tests/Integration/HandlesMediaExceptionsTest.php @@ -15,7 +15,7 @@ class HandlesMediaExceptionsTest extends TestCase { - public function test_it_returns_a_403_for_disallowed_disk() + public function test_it_returns_a_403_for_disallowed_disk(): void { $e = (new SampleExceptionHandler())->render( ForbiddenException::diskNotAllowed('foo') @@ -24,7 +24,7 @@ public function test_it_returns_a_403_for_disallowed_disk() $this->assertHttpException($e, 403); } - public function test_it_returns_a_404_for_missing_file() + public function test_it_returns_a_404_for_missing_file(): void { $e = (new SampleExceptionHandler())->render( FileNotFoundException::fileNotFound('non/existing.jpg') @@ -33,7 +33,7 @@ public function test_it_returns_a_404_for_missing_file() $this->assertHttpException($e, 404); } - public function test_it_returns_a_409_on_duplicate_file() + public function test_it_returns_a_409_on_duplicate_file(): void { $e = (new SampleExceptionHandler())->render( FileExistsException::fileExists('already/existing.jpg') @@ -42,7 +42,7 @@ public function test_it_returns_a_409_on_duplicate_file() $this->assertHttpException($e, 409); } - public function test_it_returns_a_413_for_too_big_file() + public function test_it_returns_a_413_for_too_big_file(): void { $e = (new SampleExceptionHandler())->render( FileSizeException::fileIsTooBig(3, 2) @@ -51,7 +51,7 @@ public function test_it_returns_a_413_for_too_big_file() $this->assertHttpException($e, 413); } - public function test_it_returns_a_415_for_type_mismatch() + public function test_it_returns_a_415_for_type_mismatch(): void { $e = (new SampleExceptionHandler())->render( FileNotSupportedException::strictTypeMismatch('text/foo', 'bar') @@ -60,7 +60,7 @@ public function test_it_returns_a_415_for_type_mismatch() $this->assertHttpException($e, 415); } - public function test_it_returns_a_415_for_unknown_type() + public function test_it_returns_a_415_for_unknown_type(): void { $e = (new SampleExceptionHandler())->render( FileNotSupportedException::unrecognizedFileType('text/foo', 'bar') @@ -69,7 +69,7 @@ public function test_it_returns_a_415_for_unknown_type() $this->assertHttpException($e, 415); } - public function test_it_returns_a_415_for_restricted_type() + public function test_it_returns_a_415_for_restricted_type(): void { $e = (new SampleExceptionHandler())->render( FileNotSupportedException::mimeRestricted('text/foo', ['text/bar']) @@ -78,7 +78,7 @@ public function test_it_returns_a_415_for_restricted_type() $this->assertHttpException($e, 415); } - public function test_it_returns_a_415_for_restricted_extension() + public function test_it_returns_a_415_for_restricted_extension(): void { $e = (new SampleExceptionHandler())->render( FileNotSupportedException::extensionRestricted('foo', ['bar']) @@ -87,7 +87,7 @@ public function test_it_returns_a_415_for_restricted_extension() $this->assertHttpException($e, 415); } - public function test_it_returns_a_415_for_restricted_aggregate_type() + public function test_it_returns_a_415_for_restricted_aggregate_type(): void { $e = (new SampleExceptionHandler())->render( FileNotSupportedException::aggregateTypeRestricted('foo', ['bar']) @@ -96,7 +96,7 @@ public function test_it_returns_a_415_for_restricted_aggregate_type() $this->assertHttpException($e, 415); } - public function test_it_returns_a_500_for_other_exception_types() + public function test_it_returns_a_500_for_other_exception_types(): void { $e = (new SampleExceptionHandler())->render( new ConfigurationException() @@ -105,7 +105,7 @@ public function test_it_returns_a_500_for_other_exception_types() $this->assertHttpException($e, 500); } - public function test_it_skips_any_other_exception() + public function test_it_skips_any_other_exception(): void { $e = (new SampleExceptionHandler())->render( new Exception() @@ -114,7 +114,7 @@ public function test_it_skips_any_other_exception() $this->assertFalse($e instanceof HttpException); } - protected function assertHttpException($e, $code) + protected function assertHttpException($e, $code): void { $this->assertInstanceOf(HttpException::class, $e); /** @var HttpException $e */ diff --git a/tests/Integration/Helpers/FileTest.php b/tests/Integration/Helpers/FileTest.php index d6e95427..917a8ca1 100644 --- a/tests/Integration/Helpers/FileTest.php +++ b/tests/Integration/Helpers/FileTest.php @@ -7,7 +7,7 @@ class FileTest extends TestCase { - public function test_it_provides_a_cleaned_dirname() + public function test_it_provides_a_cleaned_dirname(): void { $this->assertEquals('', File::cleanDirname('')); $this->assertEquals('', File::cleanDirname('/')); @@ -16,19 +16,19 @@ public function test_it_provides_a_cleaned_dirname() $this->assertEquals('foo/bar', File::cleanDirname('/foo/bar/baz.jpg')); } - public function test_it_converts_bytes_to_readable_strings() + public function test_it_converts_bytes_to_readable_strings(): void { $this->assertEquals('0 B', File::readableSize(0)); $this->assertEquals('1 KB', File::readableSize(1025, 0)); $this->assertEquals('1.1 MB', File::readableSize(1024 * 1024 + 1024 * 100, 2)); } - public function test_it_guesses_the_extension_given_a_mime_type() + public function test_it_guesses_the_extension_given_a_mime_type(): void { $this->assertEquals('png', File::guessExtension('image/png')); } - public function test_it_sanitizes_filenames() + public function test_it_sanitizes_filenames(): void { $this->assertEquals( 'hello-world-what-ss_new-with.you', @@ -36,7 +36,7 @@ public function test_it_sanitizes_filenames() ); } - public function test_it_sanitizes_filenames_with_locale() + public function test_it_sanitizes_filenames_with_locale(): void { $this->assertEquals( 'hello-world-what-sz_new-with.you', @@ -44,7 +44,7 @@ public function test_it_sanitizes_filenames_with_locale() ); } - public function test_it_sanitizes_paths() + public function test_it_sanitizes_paths(): void { $this->assertEquals( 'hello/world-what-s_new-with.you', @@ -52,7 +52,7 @@ public function test_it_sanitizes_paths() ); } - public function test_it_joins_path_components() + public function test_it_joins_path_components(): void { $this->assertEquals('', File::joinPathComponents('', '')); $this->assertEquals('foo', File::joinPathComponents('foo', '')); diff --git a/tests/Integration/ImageManipulationTest.php b/tests/Integration/ImageManipulationTest.php index 6451ee31..c175750f 100644 --- a/tests/Integration/ImageManipulationTest.php +++ b/tests/Integration/ImageManipulationTest.php @@ -9,14 +9,14 @@ class ImageManipulationTest extends TestCase { - public function test_can_get_set_manipulation_callback() + public function test_can_get_set_manipulation_callback(): void { $callback = $this->getMockCallable(); $manipulation = new ImageManipulation($callback); $this->assertSame($callback, $manipulation->getCallback()); } - public function test_can_get_set_output_quality() + public function test_can_get_set_output_quality(): void { $manipulation = new ImageManipulation($this->getMockCallable()); $this->assertEquals(90, $manipulation->getOutputQuality()); @@ -28,7 +28,7 @@ public function test_can_get_set_output_quality() $this->assertEquals(50, $manipulation->getOutputQuality()); } - public function test_can_get_set_output_format() + public function test_can_get_set_output_format(): void { $manipulation = new ImageManipulation($this->getMockCallable()); $this->assertNull($manipulation->getOutputFormat()); @@ -48,7 +48,7 @@ public function test_can_get_set_output_format() $this->assertEquals('jpg', $manipulation->getOutputFormat()); } - public function test_can_get_set_before_save_callback() + public function test_can_get_set_before_save_callback(): void { $callback = $this->getMockCallable(); $manipulation = new ImageManipulation($this->getMockCallable()); @@ -58,7 +58,7 @@ public function test_can_get_set_before_save_callback() $this->assertSame($callback, $manipulation->getBeforeSave()); } - public function test_destination_setters() + public function test_destination_setters(): void { $manipulation = new ImageManipulation($this->getMockCallable()); @@ -96,7 +96,7 @@ public function test_destination_setters() $this->assertFalse($manipulation->isUsingHashForFilename()); } - public function test_get_duplicate_behaviours() + public function test_get_duplicate_behaviours(): void { $manipulation = new ImageManipulation($this->getMockCallable()); $this->assertEquals( @@ -115,7 +115,7 @@ public function test_get_duplicate_behaviours() ); } - public function test_visibility() + public function test_visibility(): void { $manipulation = new ImageManipulation($this->getMockCallable()); $this->assertNull($manipulation->getVisibility()); diff --git a/tests/Integration/ImageManipulatorTest.php b/tests/Integration/ImageManipulatorTest.php index 3bbe47a9..9b6aa24f 100644 --- a/tests/Integration/ImageManipulatorTest.php +++ b/tests/Integration/ImageManipulatorTest.php @@ -17,7 +17,7 @@ class ImageManipulatorTest extends TestCase { - public function test_it_can_be_accessed_via_facade() + public function test_it_can_be_accessed_via_facade(): void { $this->assertInstanceOf( ImageManipulator::class, @@ -25,7 +25,7 @@ public function test_it_can_be_accessed_via_facade() ); } - public function test_it_sets_and_has_variants() + public function test_it_sets_and_has_variants(): void { $manipulator = $this->getManipulator(); $this->assertFalse($manipulator->hasVariantDefinition('foo')); @@ -36,7 +36,7 @@ public function test_it_sets_and_has_variants() $this->assertTrue($manipulator->hasVariantDefinition('foo')); } - public function test_it_retrieves_all_variants() + public function test_it_retrieves_all_variants(): void { $manipulator = $this->getManipulator(); $variant = new ImageManipulation($this->getMockCallable()); @@ -64,7 +64,7 @@ public function test_it_retrieves_all_variants() $this->assertEquals(['foo', 'bar'], $manipulator->getAllVariantNames()); } - public function test_it_can_store_and_retrieve_by_tag() + public function test_it_can_store_and_retrieve_by_tag(): void { $manipulator = $this->getManipulator(); $variant = new ImageManipulation($this->getMockCallable()); @@ -96,7 +96,7 @@ public function test_it_can_store_and_retrieve_by_tag() $this->assertEquals([], $manipulator->getVariantNamesByTag('c')); } - public function test_it_throws_for_non_image_media() + public function test_it_throws_for_non_image_media(): void { $this->expectException(ImageManipulationException::class); $this->expectExceptionMessage( @@ -108,7 +108,7 @@ public function test_it_throws_for_non_image_media() ); } - public function test_it_throws_for_unknown_variants() + public function test_it_throws_for_unknown_variants(): void { $this->expectException(ImageManipulationException::class); $this->expectExceptionMessage("Unknown variant 'invalid'."); @@ -118,7 +118,7 @@ public function test_it_throws_for_unknown_variants() ); } - public function test_it_throws_for_indeterminate_output_format() + public function test_it_throws_for_indeterminate_output_format(): void { $this->useFilesystem('tmp'); $this->expectException(ImageManipulationException::class); @@ -142,7 +142,7 @@ function (Image $image) { $manipulator->createImageVariant($media, 'foo'); } - public function test_it_can_create_a_variant() + public function test_it_can_create_a_variant(): void { $this->useFilesystem('tmp'); $this->useDatabase(); @@ -203,7 +203,7 @@ function (Image $image) { $this->assertTrue($media->fileExists()); } - public function test_it_can_create_a_variant_of_a_variant() + public function test_it_can_create_a_variant_of_a_variant(): void { $this->useFilesystem('tmp'); $this->useDatabase(); @@ -241,7 +241,7 @@ function (Image $image) { $this->assertTrue($media->fileExists()); } - public static function formatProvider() + public static function formatProvider(): array { return [ ['jpg', 'image/jpeg', 100], @@ -257,7 +257,7 @@ public function test_it_can_create_a_variant_of_a_different_format( string $format, string $mime, int $quality - ) { + ): void { $this->useFilesystem('tmp'); $this->useDatabase(); @@ -289,7 +289,7 @@ function (Image $image) { $this->assertTrue($media->fileExists()); } - public function test_it_can_output_to_custom_destination() + public function test_it_can_output_to_custom_destination(): void { $this->useFilesystem('tmp'); $this->useFilesystem('uploads'); @@ -323,7 +323,7 @@ function (Image $image) { $this->assertTrue($media->fileExists()); } - public function test_it_can_output_to_hash_filename() + public function test_it_can_output_to_hash_filename(): void { $this->useFilesystem('tmp'); $this->useFilesystem('uploads'); @@ -359,7 +359,7 @@ function (Image $image) { $this->assertTrue($media->fileExists()); } - public function test_it_errors_on_duplicate() + public function test_it_errors_on_duplicate(): void { $this->expectException(ImageManipulationException::class); $this->useFilesystem('tmp'); @@ -390,7 +390,7 @@ function (Image $image) { $imageManipulator->createImageVariant($media, 'test'); } - public function test_it_errors_on_duplicate_after_before_save() + public function test_it_errors_on_duplicate_after_before_save(): void { $this->expectException(ImageManipulationException::class); $this->useFilesystem('tmp'); @@ -424,7 +424,7 @@ function (Media $variant) { $imageManipulator->createImageVariant($media, 'test'); } - public function test_it_increments_on_duplicate() + public function test_it_increments_on_duplicate(): void { $this->useFilesystem('tmp'); $this->useDatabase(); @@ -458,7 +458,7 @@ function (Image $image) { $this->assertEquals('bar-test-2', $result->filename); } - public function test_it_increments_on_duplicate_after_before_save() + public function test_it_increments_on_duplicate_after_before_save(): void { $this->useFilesystem('tmp'); $this->useDatabase(); @@ -493,7 +493,7 @@ function (Media $variant) { $this->assertEquals('bar-1', $result->filename); } - public function test_it_skips_existing_variants() + public function test_it_skips_existing_variants(): void { $this->useFilesystem('tmp'); $this->useDatabase(); @@ -547,7 +547,7 @@ function (Image $image) { ); } - public function test_it_can_recreate_an_existing_variant() + public function test_it_can_recreate_an_existing_variant(): void { $this->useFilesystem('tmp'); $this->useDatabase(); @@ -599,7 +599,7 @@ function (Image $image) { $this->assertEquals($result->size, $result2->size); } - public function test_it_can_recreate_existing_variant_to_a_new_destination() + public function test_it_can_recreate_existing_variant_to_a_new_destination(): void { $this->useFilesystem('tmp'); $this->useFilesystem('uploads'); @@ -651,7 +651,7 @@ function (Image $image) { $this->assertFalse($previousVariant->fileExists()); } - public static function visibilityProvider() + public static function visibilityProvider(): array { return [ ['uploads', 'public', null, true], @@ -671,7 +671,7 @@ public function test_variant_created_with_visibility( string $originalVisibility, ?string $manipulationVisibility, bool $expectedVisibility - ) { + ): void { $this->useFilesystem($disk); $this->useDatabase(); diff --git a/tests/Integration/ImageOptimizerTest.php b/tests/Integration/ImageOptimizerTest.php index 24edb6c7..bdfb84ac 100644 --- a/tests/Integration/ImageOptimizerTest.php +++ b/tests/Integration/ImageOptimizerTest.php @@ -9,7 +9,7 @@ class ImageOptimizerTest extends TestCase { - public function test_it_can_optimize_an_image() + public function test_it_can_optimize_an_image(): void { $imageStream = Utils::streamFor(file_get_contents($this->sampleFilePath())); diff --git a/tests/Integration/Jobs/CreateImageVariantsTest.php b/tests/Integration/Jobs/CreateImageVariantsTest.php index db6427b7..a06f2f87 100644 --- a/tests/Integration/Jobs/CreateImageVariantsTest.php +++ b/tests/Integration/Jobs/CreateImageVariantsTest.php @@ -11,7 +11,7 @@ class CreateImageVariantsTest extends TestCase { - public function test_it_will_trigger_image_manipulation() + public function test_it_will_trigger_image_manipulation(): void { $model = $this->makeMedia(['aggregate_type' => 'image']); $variant = 'foo'; @@ -33,7 +33,7 @@ public function test_it_will_trigger_image_manipulation() $job->handle(); } - public function test_it_will_trigger_image_manipulation_multiple() + public function test_it_will_trigger_image_manipulation_multiple(): void { $model1 = $this->makeMedia(['aggregate_type' => 'image']); $model2 = $this->makeMedia(['aggregate_type' => 'image']); @@ -65,7 +65,7 @@ public function test_it_will_trigger_image_manipulation_multiple() $job->handle(); } - public function test_it_will_trigger_image_manipulation_recreate() + public function test_it_will_trigger_image_manipulation_recreate(): void { $model = $this->makeMedia(['aggregate_type' => 'image']); $variant1 = 'foo'; @@ -91,7 +91,7 @@ public function test_it_will_trigger_image_manipulation_recreate() $job->handle(); } - public function test_it_will_serialize_models() + public function test_it_will_serialize_models(): void { $this->useDatabase(); $model = $this->createMedia(['aggregate_type' => 'image']); diff --git a/tests/Integration/MediaTest.php b/tests/Integration/MediaTest.php index 264d8c9d..a98353b9 100644 --- a/tests/Integration/MediaTest.php +++ b/tests/Integration/MediaTest.php @@ -19,7 +19,7 @@ class MediaTest extends TestCase { - public function test_it_has_path_accessors() + public function test_it_has_path_accessors(): void { $media = $this->makeMedia( [ @@ -41,7 +41,7 @@ public function test_it_has_path_accessors() $this->assertEquals('jpg', $media->extension); } - public function test_it_can_be_queried_by_directory() + public function test_it_can_be_queried_by_directory(): void { $this->useDatabase(); @@ -54,7 +54,7 @@ public function test_it_can_be_queried_by_directory() $this->assertEquals(1, Media::inDirectory('tmp', 'foo/baz')->count()); } - public function test_it_can_be_queried_by_directory_recursively() + public function test_it_can_be_queried_by_directory_recursively(): void { $this->useDatabase(); @@ -68,7 +68,7 @@ public function test_it_can_be_queried_by_directory_recursively() $this->assertEquals(1, Media::inDirectory('tmp', 'foo/bar/baz', true)->count()); } - public function test_it_can_be_queried_by_basename() + public function test_it_can_be_queried_by_basename(): void { $this->useDatabase(); @@ -79,7 +79,7 @@ public function test_it_can_be_queried_by_basename() $this->assertEquals(99, Media::whereBasename('baz.bat')->first()->id); } - public function test_it_can_be_queried_by_path_on_disk() + public function test_it_can_be_queried_by_path_on_disk(): void { $this->useDatabase(); @@ -98,7 +98,7 @@ public function test_it_can_be_queried_by_path_on_disk() ); } - public function test_it_can_be_queried_by_path_on_disk_when_directory_is_empty() + public function test_it_can_be_queried_by_path_on_disk_when_directory_is_empty(): void { $this->useDatabase(); @@ -114,7 +114,7 @@ public function test_it_can_be_queried_by_path_on_disk_when_directory_is_empty() $this->assertEquals(4, Media::forPathOnDisk('tmp', 'bat.jpg')->first()->id); } - public function test_it_can_view_human_readable_file_size() + public function test_it_can_view_human_readable_file_size(): void { $media = $this->makeMedia(['size' => 0]); @@ -127,7 +127,7 @@ public function test_it_can_view_human_readable_file_size() $this->assertEquals('1.1 MB', $media->readableSize(2)); } - public function test_it_can_be_checked_for_public_visibility() + public function test_it_can_be_checked_for_public_visibility(): void { $this->useFilesystem('tmp'); $this->useFilesystem('uploads'); @@ -146,7 +146,7 @@ public function test_it_can_be_checked_for_public_visibility() $this->assertTrue($media->isPubliclyAccessible()); } - public function test_it_can_be_checked_for_public_visibility_s3() + public function test_it_can_be_checked_for_public_visibility_s3(): void { if (!$this->s3ConfigLoaded()) { $this->markTestSkipped('S3 Credentials not available.'); @@ -172,7 +172,7 @@ public function test_it_can_be_checked_for_public_visibility_s3() } } - public function test_it_can_generate_a_url_to_the_local_file() + public function test_it_can_generate_a_url_to_the_local_file(): void { $media = $this->makeMedia( [ @@ -186,7 +186,7 @@ public function test_it_can_generate_a_url_to_the_local_file() $this->assertEquals('http://localhost/uploads/foo/bar/baz.jpg', $media->getUrl()); } - public function test_it_can_generate_a_custom_url_to_the_local_file() + public function test_it_can_generate_a_custom_url_to_the_local_file(): void { $this->app['config']->set('filesystems.disks.uploads.url', 'http://example.com'); $media = $this->makeMedia( @@ -201,7 +201,7 @@ public function test_it_can_generate_a_custom_url_to_the_local_file() $this->assertEquals('http://example.com/foo/bar/baz.jpg', $media->getUrl()); } - public function test_it_can_generate_a_url_to_the_file_on_s3() + public function test_it_can_generate_a_url_to_the_file_on_s3(): void { if (!$this->s3ConfigLoaded()) { $this->markTestSkipped('S3 Credentials not available.'); @@ -230,7 +230,7 @@ public function test_it_can_generate_a_url_to_the_file_on_s3() } } - public function test_it_can_check_if_its_file_exists() + public function test_it_can_check_if_its_file_exists(): void { $this->useFilesystem('tmp'); @@ -240,7 +240,7 @@ public function test_it_can_check_if_its_file_exists() $this->assertTrue($media->fileExists()); } - public function test_it_can_be_moved_on_disk() + public function test_it_can_be_moved_on_disk(): void { $this->useFilesystem('tmp'); $this->useDatabase(); @@ -265,7 +265,7 @@ public function test_it_can_be_moved_on_disk() $this->assertTrue($media->fileExists()); } - public function test_it_can_be_copied_on_disk() + public function test_it_can_be_copied_on_disk(): void { $this->useFilesystem('tmp'); $this->useDatabase(); @@ -299,7 +299,7 @@ public function test_it_can_be_copied_on_disk() $media->copyTo('alpha', 'test'); } - public function test_it_throws_an_exception_if_moving_to_existing_file() + public function test_it_throws_an_exception_if_moving_to_existing_file(): void { $this->useFilesystem('tmp'); @@ -326,7 +326,7 @@ public function test_it_throws_an_exception_if_moving_to_existing_file() $media1->move('', 'bar.baz'); } - public function test_it_can_be_moved_to_another_disk_public() + public function test_it_can_be_moved_to_another_disk_public(): void { $this->useFilesystem('tmp'); $this->useFilesystem('uploads'); @@ -353,7 +353,7 @@ public function test_it_can_be_moved_to_another_disk_public() $this->assertTrue($media->isVisible()); } - public function test_it_can_be_moved_to_another_disk_private() + public function test_it_can_be_moved_to_another_disk_private(): void { $this->useFilesystem('tmp'); $this->useFilesystem('uploads'); @@ -380,7 +380,7 @@ public function test_it_can_be_moved_to_another_disk_private() $this->assertFalse($media->isVisible()); } - public function test_it_can_be_copied_to_another_disk_public() + public function test_it_can_be_copied_to_another_disk_public(): void { $this->useFilesystem('tmp'); $this->useFilesystem('uploads'); @@ -411,7 +411,7 @@ public function test_it_can_be_copied_to_another_disk_public() $this->assertTrue($media->isVisible()); } - public function test_it_can_be_copied_to_another_disk_private() + public function test_it_can_be_copied_to_another_disk_private(): void { $this->useFilesystem('tmp'); $this->useFilesystem('uploads'); @@ -442,7 +442,7 @@ public function test_it_can_be_copied_to_another_disk_private() $this->assertFalse($media->isVisible()); } - public function test_it_can_access_file_contents() + public function test_it_can_access_file_contents(): void { $this->useFilesystem('tmp'); @@ -456,7 +456,7 @@ public function test_it_can_access_file_contents() $this->assertEquals('

Hello World

', $media->contents()); } - public function test_it_deletes_its_file_on_deletion() + public function test_it_deletes_its_file_on_deletion(): void { $this->useDatabase(); $this->useFilesystem('tmp'); @@ -477,7 +477,7 @@ public function test_it_deletes_its_file_on_deletion() $this->assertFalse(file_exists($path)); } - public function test_it_cascades_relationship_on_delete() + public function test_it_cascades_relationship_on_delete(): void { $this->useDatabase(); @@ -489,7 +489,7 @@ public function test_it_cascades_relationship_on_delete() $this->assertEquals(0, $mediable->getMedia('foo')->count()); } - public function test_it_doesnt_cascade_relationship_on_soft_delete() + public function test_it_doesnt_cascade_relationship_on_soft_delete(): void { $this->useDatabase(); @@ -501,7 +501,7 @@ public function test_it_doesnt_cascade_relationship_on_soft_delete() $this->assertEquals(1, $mediable->getMedia('foo')->count()); } - public function test_it_cascades_relationships_on_soft_delete_with_config() + public function test_it_cascades_relationships_on_soft_delete_with_config(): void { $this->useDatabase(); @@ -515,7 +515,7 @@ public function test_it_cascades_relationships_on_soft_delete_with_config() $this->assertEquals(0, $mediable->getMedia('foo')->count()); } - public function test_it_cascades_relationship_on_force_delete() + public function test_it_cascades_relationship_on_force_delete(): void { $this->useDatabase(); @@ -527,7 +527,7 @@ public function test_it_cascades_relationship_on_force_delete() $this->assertEquals(0, $mediable->getMedia('foo')->count()); } - public function test_it_retrieves_models_via_custom_mediables_table() + public function test_it_retrieves_models_via_custom_mediables_table(): void { $this->useDatabase(); @@ -542,7 +542,7 @@ public function test_it_retrieves_models_via_custom_mediables_table() } public function test_it_cascades_relationships_on_soft_delete_with_config_via_custom_mediables_table( - ) { + ): void { $this->useDatabase(); config()->set('mediable.mediables_table', 'prefixed_mediables'); @@ -557,7 +557,7 @@ public function test_it_cascades_relationships_on_soft_delete_with_config_via_cu $this->assertEmpty(DB::table('prefixed_mediables')->get()); } - public function test_it_can_stream_contents() + public function test_it_can_stream_contents(): void { $this->useFilesystem('tmp'); @@ -576,7 +576,7 @@ public function test_it_can_stream_contents() $this->assertEquals('test', $stream->getContents()); } - public function test_it_can_detect_variant_status() + public function test_it_can_detect_variant_status(): void { $media = $this->makeMedia( [ @@ -607,7 +607,7 @@ public function test_it_can_detect_variant_status() $this->assertFalse($media->isVariant('foo')); } - public function test_it_can_be_made_a_variant_of_another() + public function test_it_can_be_made_a_variant_of_another(): void { $this->useDatabase(); @@ -639,7 +639,7 @@ public function test_it_can_be_made_a_variant_of_another() $this->assertEquals('foo', $media2->variant_name); } - public function test_it_throws_if_cant_find_new_original() + public function test_it_throws_if_cant_find_new_original(): void { $this->expectException(ModelNotFoundException::class); $this->useDatabase(); @@ -654,7 +654,7 @@ public function test_it_throws_if_cant_find_new_original() $media->makeVariantOf(9999, 'not_found'); } - public function test_it_can_be_queried_by_variant_status() + public function test_it_can_be_queried_by_variant_status(): void { $this->useDatabase(); $media1 = $this->createMedia( @@ -694,7 +694,7 @@ public function test_it_can_be_queried_by_variant_status() ); } - public function test_it_can_find_other_variants() + public function test_it_can_find_other_variants(): void { $media1 = $this->makeMedia( [ @@ -768,7 +768,7 @@ public function test_it_can_find_other_variants() $this->assertEquals($all, $media3->getAllVariantsAndSelf()); } - public function test_it_generates_temporary_urls() + public function test_it_generates_temporary_urls(): void { $media = $this->makeMedia(); $expiry = Carbon::now(); @@ -789,7 +789,7 @@ public function test_it_generates_temporary_urls() $this->assertEquals($url, $media->getTemporaryUrl($expiry)); } - public function test_it_throws_for_unsupported_temporary_urls() + public function test_it_throws_for_unsupported_temporary_urls(): void { $this->expectException(MediaUrlException::class); $media = $this->makeMedia(); diff --git a/tests/Integration/MediaUploaderTest.php b/tests/Integration/MediaUploaderTest.php index ec98b738..7b5a3989 100644 --- a/tests/Integration/MediaUploaderTest.php +++ b/tests/Integration/MediaUploaderTest.php @@ -23,17 +23,17 @@ class MediaUploaderTest extends TestCase { - public function test_it_can_be_instantiated_via_the_container() + public function test_it_can_be_instantiated_via_the_container(): void { $this->assertInstanceOf(MediaUploader::class, app('mediable.uploader')); } - public function test_it_can_be_instantiated_via_facade() + public function test_it_can_be_instantiated_via_facade(): void { $this->assertInstanceOf(MediaUploader::class, Facade::getFacadeRoot()); } - public function test_facade_instantiates_unique_instances() + public function test_facade_instantiates_unique_instances(): void { /** @var MediaUploader $uploader1 */ $uploader1 = Facade::getFacadeRoot(); @@ -51,13 +51,13 @@ public function test_facade_instantiates_unique_instances() ); } - public function test_facade_is_mockable() + public function test_facade_is_mockable(): void { Facade::shouldReceive('upload')->once(); Facade::upload(); } - public function test_it_can_set_on_duplicate_behavior_via_facade() + public function test_it_can_set_on_duplicate_behavior_via_facade(): void { $uploader = Facade::onDuplicateError(); $this->assertEquals( @@ -90,7 +90,7 @@ public function test_it_can_set_on_duplicate_behavior_via_facade() ); } - public function test_it_sets_options() + public function test_it_sets_options(): void { $uploader = $this->getUploader(); $this->assertEquals( @@ -111,7 +111,7 @@ public function test_it_sets_options() ); } - public function test_it_can_determine_media_type_by_extension_and_mime() + public function test_it_can_determine_media_type_by_extension_and_mime(): void { $uploader = $this->getUploader(); $uploader->setTypeDefinition('foo', ['text/foo'], ['foo']); @@ -137,7 +137,7 @@ public function test_it_can_determine_media_type_by_extension_and_mime() ); } - public function test_it_throws_exception_for_type_mismatch() + public function test_it_throws_exception_for_type_mismatch(): void { $uploader = $this->getUploader(); $uploader->setTypeDefinition('foo', ['text/foo'], ['foo']); @@ -147,7 +147,7 @@ public function test_it_throws_exception_for_type_mismatch() $uploader->inferAggregateType('text/foo', 'bar'); } - public function test_it_validates_allowed_types() + public function test_it_validates_allowed_types(): void { $uploader = $this->getUploader(); $uploader->setTypeDefinition('foo', ['text/foo'], ['foo']); @@ -170,7 +170,7 @@ public function test_it_validates_allowed_types() $uploader->inferAggregateType('text/foo', 'bar'); } - public function test_it_infers_type_case_insensitive() + public function test_it_infers_type_case_insensitive(): void { $uploader = $this->getUploader(); $uploader->setTypeDefinition('foo', ['TeXT/foo'], ['FOo']); @@ -181,7 +181,7 @@ public function test_it_infers_type_case_insensitive() ); } - public function test_it_can_restrict_to_known_types() + public function test_it_can_restrict_to_known_types(): void { $uploader = $this->getUploader(); @@ -195,14 +195,14 @@ public function test_it_can_restrict_to_known_types() $uploader->inferAggregateType('text/foo', 'bar'); } - public function test_it_throws_exception_for_non_existent_disk() + public function test_it_throws_exception_for_non_existent_disk(): void { $uploader = $this->getUploader(); $this->expectException(ConfigurationException::class); $uploader->toDisk('abc'); } - public function test_it_throws_exception_for_disallowed_disk() + public function test_it_throws_exception_for_disallowed_disk(): void { $uploader = $this->getUploader(); config()->set('filesystems.disks.foo', []); @@ -210,7 +210,7 @@ public function test_it_throws_exception_for_disallowed_disk() $uploader->toDisk('foo'); } - public function test_it_can_change_model_class() + public function test_it_can_change_model_class(): void { $uploader = $this->getUploader(); $method = $this->getPrivateMethod($uploader, 'makeModel'); @@ -218,14 +218,14 @@ public function test_it_can_change_model_class() $this->assertInstanceOf(MediaSubclass::class, $method->invoke($uploader)); } - public function test_it_throw_exception_for_invalid_model() + public function test_it_throw_exception_for_invalid_model(): void { $uploader = $this->getUploader(); $this->expectException(ConfigurationException::class); $uploader->setModelClass(stdClass::class); } - public function test_it_validates_source_is_set() + public function test_it_validates_source_is_set(): void { $uploader = $this->getUploader(); $method = $this->getPrivateMethod($uploader, 'verifySource'); @@ -234,7 +234,7 @@ public function test_it_validates_source_is_set() $method->invoke($uploader); } - public function test_it_validates_allowed_mime_types() + public function test_it_validates_allowed_mime_types(): void { $uploader = $this->getUploader(); $method = $this->getPrivateMethod($uploader, 'verifyMimeType'); @@ -256,7 +256,7 @@ public function test_it_validates_allowed_mime_types() $method->invoke($uploader, 'text/foo'); } - public function test_it_validates_allowed_extensions() + public function test_it_validates_allowed_extensions(): void { $uploader = $this->getUploader(); $method = $this->getPrivateMethod($uploader, 'verifyExtension'); @@ -270,7 +270,7 @@ public function test_it_validates_allowed_extensions() $method->invoke($uploader, 'foo'); } - public function test_it_validates_file_size() + public function test_it_validates_file_size(): void { $uploader = $this->getUploader(); $uploader->setMaximumSize(2); @@ -281,7 +281,7 @@ public function test_it_validates_file_size() $method->invoke($uploader, 3); } - public function test_it_can_disable_file_size_limits() + public function test_it_can_disable_file_size_limits(): void { $uploader = $this->getUploader(); $uploader->setMaximumSize(0); @@ -289,7 +289,7 @@ public function test_it_can_disable_file_size_limits() $this->assertEquals(99999, $method->invoke($uploader, 99999)); } - public function test_it_can_error_on_duplicate_files() + public function test_it_can_error_on_duplicate_files(): void { $uploader = $this->getUploader(); $uploader->setOnDuplicateBehavior(MediaUploader::ON_DUPLICATE_ERROR); @@ -298,7 +298,7 @@ public function test_it_can_error_on_duplicate_files() $method->invoke($uploader, new Media); } - public function test_it_sets_file_visibility() + public function test_it_sets_file_visibility(): void { $this->useDatabase(); $this->useFilesystem('tmp'); @@ -327,7 +327,7 @@ public function test_it_sets_file_visibility() $this->assertTrue($media1->isVisible()); } - public function test_it_can_replace_duplicate_files() + public function test_it_can_replace_duplicate_files(): void { $this->useDatabase(); $this->useFilesystem('tmp'); @@ -364,7 +364,7 @@ public function test_it_can_replace_duplicate_files() $this->assertTrue(file_exists($variant->getAbsolutePath())); } - public function test_it_can_replace_duplicate_files_and_variants() + public function test_it_can_replace_duplicate_files_and_variants(): void { $this->useDatabase(); $this->useFilesystem('tmp'); @@ -399,7 +399,7 @@ public function test_it_can_replace_duplicate_files_and_variants() $this->assertFalse(file_exists($variant->getAbsolutePath())); } - public function test_it_can_update_duplicate_files() + public function test_it_can_update_duplicate_files(): void { $this->useDatabase(); $this->useFilesystem('tmp'); @@ -431,7 +431,7 @@ public function test_it_can_update_duplicate_files() $this->assertEquals('image', $media->aggregate_type); } - public function test_it_can_update_duplicate_files_when_model_not_found() + public function test_it_can_update_duplicate_files_when_model_not_found(): void { $this->useDatabase(); $this->useFilesystem('tmp'); @@ -458,7 +458,7 @@ public function test_it_can_update_duplicate_files_when_model_not_found() ); } - public function test_it_can_increment_filename_on_duplicate_files() + public function test_it_can_increment_filename_on_duplicate_files(): void { $uploader = $this->getUploader()->onDuplicateIncrement(); $method = $this->getPrivateMethod($uploader, 'handleDuplicate'); @@ -478,7 +478,7 @@ public function test_it_can_increment_filename_on_duplicate_files() $this->assertEquals('duplicate-1', $media->filename); } - public function test_it_uploads_files() + public function test_it_uploads_files(): void { $this->useDatabase(); $this->useFilesystem('tmp'); @@ -497,7 +497,7 @@ public function test_it_uploads_files() $this->assertEquals('image', $media->aggregate_type); } - public function test_it_imports_string_contents() + public function test_it_imports_string_contents(): void { $this->useDatabase(); $this->useFilesystem('tmp'); @@ -518,7 +518,7 @@ public function test_it_imports_string_contents() $this->assertEquals('image', $media->aggregate_type); } - public function test_it_imports_file_stream_contents() + public function test_it_imports_file_stream_contents(): void { $this->useDatabase(); $this->useFilesystem('tmp'); @@ -539,7 +539,7 @@ public function test_it_imports_file_stream_contents() $this->assertEquals('image', $media->aggregate_type); } - public function test_it_imports_http_stream_contents() + public function test_it_imports_http_stream_contents(): void { $this->useDatabase(); $this->useFilesystem('tmp'); @@ -560,7 +560,7 @@ public function test_it_imports_http_stream_contents() $this->assertEquals('image', $media->aggregate_type); } - public function test_it_imports_stream_objects() + public function test_it_imports_stream_objects(): void { $this->useDatabase(); $this->useFilesystem('tmp'); @@ -581,7 +581,7 @@ public function test_it_imports_stream_objects() $this->assertEquals('image', $media->aggregate_type); } - public function test_it_imports_existing_files() + public function test_it_imports_existing_files(): void { $this->useFilesystem('tmp'); $this->useDatabase(); @@ -606,7 +606,7 @@ public function test_it_imports_existing_files() $this->assertEquals('image', $media->aggregate_type); } - public function test_it_imports_existing_files_with_uppercase() + public function test_it_imports_existing_files_with_uppercase(): void { $this->useFilesystem('tmp'); $this->useDatabase(); @@ -631,7 +631,7 @@ public function test_it_imports_existing_files_with_uppercase() $this->assertEquals('image', $media->aggregate_type); } - public function test_it_updates_existing_media() + public function test_it_updates_existing_media(): void { $this->useDatabase(); $this->useFilesystem('tmp'); @@ -655,7 +655,7 @@ public function test_it_updates_existing_media() $this->assertEquals(self::TEST_FILE_SIZE, $media->size); } - public function test_it_replaces_existing_media() + public function test_it_replaces_existing_media(): void { $this->useDatabase(); $this->useFilesystem('tmp'); @@ -676,13 +676,13 @@ public function test_it_replaces_existing_media() $this->assertEquals(4181, $media->size); } - public function test_it_throws_exception_when_importing_missing_file() + public function test_it_throws_exception_when_importing_missing_file(): void { $this->expectException(FileNotFoundException::class); Facade::import('tmp', 'non', 'existing', 'jpg'); } - public function test_it_use_hash_for_filename() + public function test_it_use_hash_for_filename(): void { $this->useFilesystem('tmp'); $this->useDatabase(); @@ -695,7 +695,7 @@ public function test_it_use_hash_for_filename() $this->assertEquals('3ef5e70366086147c2695325d79a25cc', $media->filename); } - public function test_it_use_arbitrary_hash_algo_for_filename() + public function test_it_use_arbitrary_hash_algo_for_filename(): void { $this->useFilesystem('tmp'); $this->useDatabase(); @@ -708,7 +708,7 @@ public function test_it_use_arbitrary_hash_algo_for_filename() $this->assertEquals('5e96e1fa58067853219c4cb6d3c1ce01cc5cc8ce', $media->filename); } - public function test_it_uploads_files_with_altered_model() + public function test_it_uploads_files_with_altered_model(): void { $this->useDatabase(); $this->useFilesystem('tmp'); @@ -733,7 +733,7 @@ function ($model) { $this->assertEquals(9876, $media->id); } - public function test_it_uploads_files_with_altered_destination() + public function test_it_uploads_files_with_altered_destination(): void { $this->useDatabase(); $this->useFilesystem('tmp'); @@ -774,7 +774,7 @@ function (Media $model) { ); } - public function test_it_applies_alt() + public function test_it_applies_alt(): void { $this->useDatabase(); $this->useFilesystem('tmp'); @@ -788,7 +788,7 @@ public function test_it_applies_alt() $this->assertEquals('This is an alt text', $media->alt); } - public function test_it_applies_alt_to_existing_media() + public function test_it_applies_alt_to_existing_media(): void { $this->useDatabase(); $this->useFilesystem('tmp'); @@ -814,7 +814,7 @@ public function test_it_applies_alt_to_existing_media() $this->assertEquals('This is an alt text', $result->alt); } - public function test_it_manipulates_images() + public function test_it_manipulates_images(): void { $this->useDatabase(); $this->useFilesystem('tmp'); @@ -848,7 +848,7 @@ function (Image $image) { ); } - public function test_it_ignores_manipulations_for_non_images() + public function test_it_ignores_manipulations_for_non_images(): void { $this->useDatabase(); $this->useFilesystem('tmp'); @@ -873,7 +873,7 @@ public function test_it_ignores_manipulations_for_non_images() $this->assertEquals(3, $media->size); } - public function test_it_validates_hashes() + public function test_it_validates_hashes(): void { $this->useDatabase(); $this->useFilesystem('tmp'); @@ -889,7 +889,7 @@ public function test_it_validates_hashes() $this->assertTrue($media->fileExists()); } - public function test_it_validates_md5_hash_failure() + public function test_it_validates_md5_hash_failure(): void { $this->expectException(InvalidHashException::class); diff --git a/tests/Integration/MediableCollectionTest.php b/tests/Integration/MediableCollectionTest.php index 892aa4d2..5daafdfd 100644 --- a/tests/Integration/MediableCollectionTest.php +++ b/tests/Integration/MediableCollectionTest.php @@ -16,7 +16,7 @@ public function setUp(): void $this->useDatabase(); } - public function test_it_can_lazy_eager_load_media() + public function test_it_can_lazy_eager_load_media(): void { $mediable = factory(SampleMediable::class)->create(); $media = factory(Media::class)->create(); @@ -29,7 +29,7 @@ public function test_it_can_lazy_eager_load_media() $this->assertFalse($collection[0]->media[0]->relationLoaded('variants')); } - public function test_it_can_lazy_eager_load_media_by_tag() + public function test_it_can_lazy_eager_load_media_by_tag(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 1]); @@ -47,7 +47,7 @@ public function test_it_can_lazy_eager_load_media_by_tag() $this->assertFalse($collection[0]->media[0]->relationLoaded('variants')); } - public function test_it_can_lazy_eager_load_media_by_tag_match_all() + public function test_it_can_lazy_eager_load_media_by_tag_match_all(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 1]); @@ -70,7 +70,7 @@ public function test_it_can_lazy_eager_load_media_by_tag_match_all() $this->assertFalse($collection[0]->media[0]->relationLoaded('variants')); } - public function test_it_can_lazy_eager_load_media_with_variants() + public function test_it_can_lazy_eager_load_media_with_variants(): void { $mediable = factory(SampleMediable::class)->create(); $media = factory(Media::class)->create(); @@ -89,7 +89,7 @@ public function test_it_can_lazy_eager_load_media_with_variants() $this->assertTrue($collection[0]->media[0]->relationLoaded('variants')); } - public function test_it_can_lazy_eager_load_media_with_variants_by_tag() + public function test_it_can_lazy_eager_load_media_with_variants_by_tag(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 1]); @@ -111,7 +111,7 @@ public function test_it_can_lazy_eager_load_media_with_variants_by_tag() $this->assertTrue($collection[0]->media[0]->relationLoaded('variants')); } - public function test_it_can_lazy_eager_load_media_with_relations_by_tag_match_all() + public function test_it_can_lazy_eager_load_media_with_relations_by_tag_match_all(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 1]); @@ -148,7 +148,7 @@ public function test_it_can_lazy_eager_load_media_with_relations_by_tag_match_al $this->assertTrue($collection[0]->media[0]->relationLoaded('variants')); } - public function testDelete() + public function testDelete(): void { $mediable1 = factory(SampleMediable::class)->create(['id' => 1]); $mediable2 = factory(SampleMediable::class)->create(['id' => 2]); diff --git a/tests/Integration/MediableTest.php b/tests/Integration/MediableTest.php index ea2f028f..68d67f6f 100644 --- a/tests/Integration/MediableTest.php +++ b/tests/Integration/MediableTest.php @@ -17,7 +17,7 @@ public function setUp(): void $this->useDatabase(); } - public function test_it_can_attach_and_retrieve_media_by_a_tag() + public function test_it_can_attach_and_retrieve_media_by_a_tag(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 2]); @@ -29,7 +29,7 @@ public function test_it_can_attach_and_retrieve_media_by_a_tag() $this->assertEquals([2], $result->pluck('id')->toArray()); } - public function test_it_can_attach_to_numeric_tags() + public function test_it_can_attach_to_numeric_tags(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 2]); @@ -41,7 +41,7 @@ public function test_it_can_attach_to_numeric_tags() $this->assertEquals([2], $result->pluck('id')->toArray()); } - public function test_it_can_attach_one_media_to_multiple_tags() + public function test_it_can_attach_one_media_to_multiple_tags(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 2]); @@ -58,7 +58,7 @@ public function test_it_can_attach_one_media_to_multiple_tags() ); } - public function test_it_can_attach_multiple_media_to_multiple_tags_simultaneously() + public function test_it_can_attach_multiple_media_to_multiple_tags_simultaneously(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(); @@ -70,7 +70,7 @@ public function test_it_can_attach_multiple_media_to_multiple_tags_simultaneousl $this->assertCount(2, $mediable->getMedia('bar')); } - public function test_it_can_find_the_first_media() + public function test_it_can_find_the_first_media(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 1]); @@ -82,7 +82,7 @@ public function test_it_can_find_the_first_media() $this->assertEquals(1, $mediable->firstMedia('foo')->id); } - public function test_it_can_find_the_last_media() + public function test_it_can_find_the_last_media(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 1]); @@ -94,7 +94,7 @@ public function test_it_can_find_the_last_media() $this->assertEquals(2, $mediable->lastMedia('foo')->id); } - public function test_it_can_find_media_matching_any_tags() + public function test_it_can_find_media_matching_any_tags(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 1]); @@ -114,7 +114,7 @@ public function test_it_can_find_media_matching_any_tags() ); } - public function test_it_can_find_media_matching_multiple_tags() + public function test_it_can_find_media_matching_multiple_tags(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 1]); @@ -135,7 +135,7 @@ public function test_it_can_find_media_matching_multiple_tags() $this->assertEquals(0, $mediable->getMedia(['foo', 'bat'], true)->count()); } - public function test_it_can_check_presence_of_attached_media() + public function test_it_can_check_presence_of_attached_media(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 1]); @@ -158,7 +158,7 @@ public function test_it_can_check_presence_of_attached_media() ); } - public function test_it_can_list_media_by_tag() + public function test_it_can_list_media_by_tag(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 1]); @@ -173,7 +173,7 @@ public function test_it_can_list_media_by_tag() $this->assertEquals([2], $result['bar']->pluck('id')->toArray()); } - public function test_it_can_detach_media_by_tag() + public function test_it_can_detach_media_by_tag(): void { $mediable = factory(SampleMediable::class)->create(); $media = factory(Media::class)->create(); @@ -183,7 +183,7 @@ public function test_it_can_detach_media_by_tag() $this->assertEquals(0, $mediable->getMedia('foo')->count()); } - public function test_it_can_detach_media_of_multiple_tags() + public function test_it_can_detach_media_of_multiple_tags(): void { $mediable = factory(SampleMediable::class)->create(); $media = factory(Media::class)->create(['id' => 1]); @@ -196,7 +196,7 @@ public function test_it_can_detach_media_of_multiple_tags() $this->assertEquals(0, $mediable->getMedia('bar')->count()); } - public function test_it_can_sync_media_by_tag() + public function test_it_can_sync_media_by_tag(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 2]); @@ -214,7 +214,7 @@ public function test_it_can_sync_media_by_tag() ); } - public function test_it_can_sync_media_to_multiple_tags() + public function test_it_can_sync_media_to_multiple_tags(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 1]); @@ -231,7 +231,7 @@ public function test_it_can_sync_media_to_multiple_tags() $this->assertEquals([2, 3], $mediable->getMedia('baz')->pluck('id')->toArray()); } - public function test_it_can_be_queried_by_any_media() + public function test_it_can_be_queried_by_any_media(): void { $mediable = factory(SampleMediable::class)->create(); $mediable2 = factory(SampleMediable::class)->create(); @@ -242,7 +242,7 @@ public function test_it_can_be_queried_by_any_media() $this->assertEquals([$mediable->getKey()], $result->modelKeys()); } - public function test_it_can_be_queried_by_tag() + public function test_it_can_be_queried_by_tag(): void { $mediable = factory(SampleMediable::class)->create(); $media = factory(Media::class)->create(); @@ -256,7 +256,7 @@ public function test_it_can_be_queried_by_tag() ); } - public function test_it_can_be_queried_by_tag_matching_all() + public function test_it_can_be_queried_by_tag_matching_all(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 1]); @@ -279,7 +279,7 @@ public function test_it_can_be_queried_by_tag_matching_all() ); } - public function test_it_can_list_the_tags_a_media_is_attached_to() + public function test_it_can_list_the_tags_a_media_is_attached_to(): void { $mediable = factory(SampleMediable::class)->create(); $media = factory(Media::class)->create(); @@ -291,7 +291,7 @@ public function test_it_can_list_the_tags_a_media_is_attached_to() $this->assertContains('bar', $mediable->getTagsForMedia($media)); } - public function test_it_can_disable_automatic_rehydration() + public function test_it_can_disable_automatic_rehydration(): void { $mediable = factory(SampleMediable::class)->create(); $mediable->rehydrates_media = false; @@ -302,7 +302,7 @@ public function test_it_can_disable_automatic_rehydration() $this->assertEquals(0, $mediable->getMedia('foo')->count()); } - public function test_it_can_eager_load_media() + public function test_it_can_eager_load_media(): void { $mediable = factory(SampleMediable::class)->create(); $media = factory(Media::class)->create(); @@ -314,7 +314,7 @@ public function test_it_can_eager_load_media() $this->assertFalse($result->media[0]->relationLoaded('variants')); } - public function test_it_can_eager_load_media_by_tag() + public function test_it_can_eager_load_media_by_tag(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 1]); @@ -330,7 +330,7 @@ public function test_it_can_eager_load_media_by_tag() $this->assertFalse($result->media[0]->relationLoaded('variants')); } - public function test_it_can_eager_load_media_by_tag_matching_all() + public function test_it_can_eager_load_media_by_tag_matching_all(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 1]); @@ -351,7 +351,7 @@ public function test_it_can_eager_load_media_by_tag_matching_all() $this->assertFalse($result->media[0]->relationLoaded('variants')); } - public function test_it_can_eager_load_media_with_variants() + public function test_it_can_eager_load_media_with_variants(): void { $mediable = factory(SampleMediable::class)->create(); $media = factory(Media::class)->create(); @@ -368,7 +368,7 @@ public function test_it_can_eager_load_media_with_variants() $this->assertTrue($result->media[0]->relationLoaded('variants')); } - public function test_it_can_eager_load_media_with_variants_by_tag() + public function test_it_can_eager_load_media_with_variants_by_tag(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 1]); @@ -389,7 +389,7 @@ public function test_it_can_eager_load_media_with_variants_by_tag() $this->assertTrue($result->media[0]->relationLoaded('variants')); } - public function test_it_can_eager_load_media_with_variants_by_tag_matching_all() + public function test_it_can_eager_load_media_with_variants_by_tag_matching_all(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 1]); @@ -422,7 +422,7 @@ public function test_it_can_eager_load_media_with_variants_by_tag_matching_all() $this->assertTrue($result->media[0]->relationLoaded('variants')); } - public function test_it_can_lazy_eager_load_media() + public function test_it_can_lazy_eager_load_media(): void { $mediable = factory(SampleMediable::class)->create(); $media = factory(Media::class)->create(); @@ -435,7 +435,7 @@ public function test_it_can_lazy_eager_load_media() $this->assertFalse($result->media[0]->relationLoaded('variants')); } - public function test_it_can_lazy_eager_load_media_by_tag() + public function test_it_can_lazy_eager_load_media_by_tag(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 1]); @@ -451,7 +451,7 @@ public function test_it_can_lazy_eager_load_media_by_tag() $this->assertFalse($result->media[0]->relationLoaded('variants')); } - public function test_it_can_lazy_eager_load_media_by_tag_matching_all() + public function test_it_can_lazy_eager_load_media_by_tag_matching_all(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 1]); @@ -474,7 +474,7 @@ public function test_it_can_lazy_eager_load_media_by_tag_matching_all() $this->assertFalse($result->media[0]->relationLoaded('variants')); } - public function test_it_can_lazy_eager_load_media_with_variants() + public function test_it_can_lazy_eager_load_media_with_variants(): void { $mediable = factory(SampleMediable::class)->create(); $media = factory(Media::class)->create(); @@ -493,7 +493,7 @@ public function test_it_can_lazy_eager_load_media_with_variants() $this->assertTrue($result->media[0]->relationLoaded('variants')); } - public function test_it_can_lazy_eager_load_media_with_variants_by_tag() + public function test_it_can_lazy_eager_load_media_with_variants_by_tag(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 1]); @@ -516,7 +516,7 @@ public function test_it_can_lazy_eager_load_media_with_variants_by_tag() $this->assertTrue($result->media[0]->relationLoaded('variants')); } - public function test_it_can_lazy_eager_load_media_with_variants_by_tag_matching_all() + public function test_it_can_lazy_eager_load_media_with_variants_by_tag_matching_all(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 1]); @@ -553,13 +553,13 @@ public function test_it_can_lazy_eager_load_media_with_variants_by_tag_matching_ $this->assertTrue($result->media[0]->relationLoaded('variants')); } - public function test_it_uses_custom_collection() + public function test_it_uses_custom_collection(): void { $mediable = factory(SampleMediable::class)->make(); $this->assertInstanceOf(MediableCollection::class, $mediable->newCollection([])); } - public function test_it_cascades_relationship_on_delete() + public function test_it_cascades_relationship_on_delete(): void { $mediable = factory(SampleMediable::class)->create(); $media = factory(Media::class)->create(); @@ -569,7 +569,7 @@ public function test_it_cascades_relationship_on_delete() $this->assertEquals(0, $mediable->getMedia('foo')->count()); } - public function test_it_doesnt_cascade_relationship_on_soft_delete() + public function test_it_doesnt_cascade_relationship_on_soft_delete(): void { $mediable = factory(SampleMediableSoftDelete::class)->create(); $media = factory(Media::class)->create(); @@ -579,7 +579,7 @@ public function test_it_doesnt_cascade_relationship_on_soft_delete() $this->assertEquals(1, $mediable->getMedia('foo')->count()); } - public function test_it_cascades_relationships_on_soft_delete_with_config() + public function test_it_cascades_relationships_on_soft_delete_with_config(): void { $mediable = factory(SampleMediableSoftDelete::class)->create(); $media = factory(Media::class)->create(); @@ -591,7 +591,7 @@ public function test_it_cascades_relationships_on_soft_delete_with_config() $this->assertEquals(0, $mediable->getMedia('foo')->count()); } - public function test_it_cascades_relationship_on_force_delete() + public function test_it_cascades_relationship_on_force_delete(): void { $mediable = factory(SampleMediableSoftDelete::class)->create(); $media = factory(Media::class)->create(); @@ -601,7 +601,7 @@ public function test_it_cascades_relationship_on_force_delete() $this->assertEquals(0, $mediable->getMedia('foo')->count()); } - public function test_it_reads_highest_order() + public function test_it_reads_highest_order(): void { $mediable = factory(SampleMediable::class)->create(); $media = factory(Media::class)->create(['id' => 1]); @@ -612,7 +612,7 @@ public function test_it_reads_highest_order() $this->assertEquals(['foo' => 1], $method->invoke($mediable, 'foo')); } - public function test_it_increments_order() + public function test_it_increments_order(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 1]); @@ -637,7 +637,7 @@ public function test_it_increments_order() ); } - public function test_it_increments_order_when_attaching_multiple() + public function test_it_increments_order_when_attaching_multiple(): void { $mediable = factory(SampleMediable::class)->create(); $media1 = factory(Media::class)->create(['id' => 1]); @@ -652,7 +652,7 @@ public function test_it_increments_order_when_attaching_multiple() ); } - public function test_it_can_unset_order() + public function test_it_can_unset_order(): void { $mediable = factory(SampleMediable::class)->make(); @@ -661,7 +661,7 @@ public function test_it_can_unset_order() $this->assertEquals(0, preg_match('/order by `order`/i', $query)); } - public function test_it_can_create_mediables_on_custom_table() + public function test_it_can_create_mediables_on_custom_table(): void { config()->set('mediable.mediables_table', 'prefixed_mediables'); diff --git a/tests/Integration/SourceAdapters/SourceAdapterFactoryTest.php b/tests/Integration/SourceAdapters/SourceAdapterFactoryTest.php index 722f8f09..faa934fe 100644 --- a/tests/Integration/SourceAdapters/SourceAdapterFactoryTest.php +++ b/tests/Integration/SourceAdapters/SourceAdapterFactoryTest.php @@ -10,7 +10,7 @@ class SourceAdapterFactoryTest extends TestCase { - public function test_it_allows_setting_adapter_for_class() + public function test_it_allows_setting_adapter_for_class(): void { $factory = new SourceAdapterFactory; $source = $this->createMock(stdClass::class); @@ -21,7 +21,7 @@ public function test_it_allows_setting_adapter_for_class() $this->assertInstanceOf($adapterClass, $factory->create($source)); } - public function test_it_allows_setting_adapter_for_pattern() + public function test_it_allows_setting_adapter_for_pattern(): void { $factory = new SourceAdapterFactory; $adapterClass = get_class($this->createMock(SourceAdapterInterface::class)); @@ -30,35 +30,35 @@ public function test_it_allows_setting_adapter_for_pattern() $this->assertInstanceOf($adapterClass, $factory->create('b1')); } - public function test_it_throws_exception_if_invalid_adapter_for_class() + public function test_it_throws_exception_if_invalid_adapter_for_class(): void { $factory = new SourceAdapterFactory; $this->expectException(ConfigurationException::class); $factory->setAdapterForClass(stdClass::class, stdClass::class); } - public function test_it_throws_exception_if_invalid_adapter_for_pattern() + public function test_it_throws_exception_if_invalid_adapter_for_pattern(): void { $factory = new SourceAdapterFactory; $this->expectException(ConfigurationException::class); $factory->setAdapterForPattern(stdClass::class, 'foo'); } - public function test_it_throws_exception_if_no_match_for_class() + public function test_it_throws_exception_if_no_match_for_class(): void { $factory = new SourceAdapterFactory; $this->expectException(ConfigurationException::class); $factory->create(new stdClass); } - public function test_it_throws_exception_if_no_match_for_pattern() + public function test_it_throws_exception_if_no_match_for_pattern(): void { $factory = new SourceAdapterFactory; $this->expectException(ConfigurationException::class); $factory->create('foo'); } - public function test_it_returns_adapters_unmodified() + public function test_it_returns_adapters_unmodified(): void { $factory = new SourceAdapterFactory; $adapter = $this->createMock(SourceAdapterInterface::class); @@ -66,7 +66,7 @@ public function test_it_returns_adapters_unmodified() $this->assertEquals($adapter, $factory->create($adapter)); } - public function test_it_is_accessible_via_the_container() + public function test_it_is_accessible_via_the_container(): void { $this->assertInstanceOf( SourceAdapterFactory::class, diff --git a/tests/Integration/SourceAdapters/SourceAdapterTest.php b/tests/Integration/SourceAdapters/SourceAdapterTest.php index 63627c7f..a1a676ab 100644 --- a/tests/Integration/SourceAdapters/SourceAdapterTest.php +++ b/tests/Integration/SourceAdapters/SourceAdapterTest.php @@ -38,7 +38,7 @@ protected function getEnvironmentSetUp($app) $app['filesystem']->disk('uploads')->put('plank.png', $this->sampleFile()); } - public static function adapterProvider() + public static function adapterProvider(): array { $file = TestCase::sampleFilePath(); $string = file_get_contents($file); @@ -227,7 +227,7 @@ public static function adapterProvider() return $data; } - public static function invalidAdapterProvider() + public static function invalidAdapterProvider(): array { $file = __DIR__ . '/../../_data/invalid.png'; $url = 'https://raw.githubusercontent.com/plank/laravel-mediable/master/tests/_data/invalid.png'; diff --git a/tests/Integration/UrlGenerators/LocalUrlGeneratorTest.php b/tests/Integration/UrlGenerators/LocalUrlGeneratorTest.php index 300dca6a..83ff1518 100644 --- a/tests/Integration/UrlGenerators/LocalUrlGeneratorTest.php +++ b/tests/Integration/UrlGenerators/LocalUrlGeneratorTest.php @@ -10,7 +10,7 @@ class LocalUrlGeneratorTest extends TestCase { - public function test_it_generates_absolute_path() + public function test_it_generates_absolute_path(): void { $generator = $this->setupGenerator(); $this->assertEquals( @@ -19,25 +19,25 @@ public function test_it_generates_absolute_path() ); } - public function test_it_generates_url() + public function test_it_generates_url(): void { $generator = $this->setupGenerator(); $this->assertEquals('http://localhost/uploads/foo/bar.jpg', $generator->getUrl()); } - public function test_it_attempts_to_generate_url_for_non_public_disk() + public function test_it_attempts_to_generate_url_for_non_public_disk(): void { $generator = $this->setupGenerator('tmp'); $this->assertEquals('/storage/foo/bar.jpg', $generator->getUrl()); } - public function test_it_accepts_public_visibility() + public function test_it_accepts_public_visibility(): void { $generator = $this->setupGenerator('public_storage'); $this->assertEquals('http://localhost/storage/foo/bar.jpg', $generator->getUrl()); } - public static function public_visibility_provider() + public static function public_visibility_provider(): array { return [ ['uploads', true, true], @@ -56,12 +56,12 @@ public function test_it_checks_public_visibility( string $disk, bool $public, bool $expectedAccessibility - ) { + ): void { $generator = $this->setupGenerator($disk, $public); $this->assertSame($expectedAccessibility, $generator->isPubliclyAccessible()); } - public function test_it_checks_public_visibility_mock_disk() + public function test_it_checks_public_visibility_mock_disk(): void { $filesystem = $this->createConfiguredMock( FilesystemManager::class, diff --git a/tests/Integration/UrlGenerators/S3UrlGeneratorTest.php b/tests/Integration/UrlGenerators/S3UrlGeneratorTest.php index 02c1d8bf..f6e5110e 100644 --- a/tests/Integration/UrlGenerators/S3UrlGeneratorTest.php +++ b/tests/Integration/UrlGenerators/S3UrlGeneratorTest.php @@ -29,7 +29,7 @@ public function tearDown(): void parent::tearDown(); } - public function test_it_generates_absolute_path() + public function test_it_generates_absolute_path(): void { $generator = $this->setupGenerator(); $this->assertEquals( @@ -43,7 +43,7 @@ public function test_it_generates_absolute_path() ); } - public function test_it_generates_url() + public function test_it_generates_url(): void { $generator = $this->setupGenerator(); $this->assertEquals( @@ -57,7 +57,7 @@ public function test_it_generates_url() ); } - public function test_it_generates_temporary_url() + public function test_it_generates_temporary_url(): void { $generator = $this->setupGenerator(); $url = $generator->getTemporaryUrl(Carbon::now()->addDay()); @@ -90,7 +90,7 @@ public function test_it_generates_temporary_url() ); } - protected function setupGenerator() + protected function setupGenerator(): S3UrlGenerator { $media = $this->getMedia(); $this->useFilesystem('s3'); diff --git a/tests/Integration/UrlGenerators/UrlGeneratorFactoryTest.php b/tests/Integration/UrlGenerators/UrlGeneratorFactoryTest.php index db35f6b1..a1dfd39b 100644 --- a/tests/Integration/UrlGenerators/UrlGeneratorFactoryTest.php +++ b/tests/Integration/UrlGenerators/UrlGeneratorFactoryTest.php @@ -13,7 +13,7 @@ class UrlGeneratorFactoryTest extends TestCase { - public function test_it_sets_generator_for_driver() + public function test_it_sets_generator_for_driver(): void { $factory = new UrlGeneratorFactory; $generator = $this->createMock(UrlGeneratorInterface::class); @@ -26,7 +26,7 @@ public function test_it_sets_generator_for_driver() $this->assertInstanceOf($class, $result); } - public function test_it_throws_exception_for_invalid_generator() + public function test_it_throws_exception_for_invalid_generator(): void { $factory = new UrlGeneratorFactory; $class = get_class($this->createMock(stdClass::class)); @@ -34,7 +34,7 @@ public function test_it_throws_exception_for_invalid_generator() $factory->setGeneratorForFilesystemDriver($class, 'foo'); } - public function test_it_throws_exception_if_cant_map_to_driver() + public function test_it_throws_exception_if_cant_map_to_driver(): void { $factory = new UrlGeneratorFactory; $media = factory(Media::class)->make(); @@ -42,7 +42,7 @@ public function test_it_throws_exception_if_cant_map_to_driver() $factory->create($media); } - public function test_it_follows_scoped_prefix() + public function test_it_follows_scoped_prefix(): void { if (version_compare($this->app->version(), '9.30.0', '<')) { $this->markTestSkipped("scoped disk prefixes are only supported in laravel 9.30.0+"); diff --git a/tests/Mocks/SampleExceptionHandler.php b/tests/Mocks/SampleExceptionHandler.php index e4317684..507a532a 100644 --- a/tests/Mocks/SampleExceptionHandler.php +++ b/tests/Mocks/SampleExceptionHandler.php @@ -16,9 +16,9 @@ class SampleExceptionHandler * we would pass it to the parent::render(). * * @param \Exception $e - * @return \Symfony\Component\HttpKernel\Exception\HttpException|\Exception + * @return \Symfony\Component\HttpKernel\Exception\HttpException|\Throwable */ - public function render(\Exception $e) + public function render(\Throwable $e): \Throwable { return $this->transformMediaUploadException($e); } diff --git a/tests/TestCase.php b/tests/TestCase.php index 4af6ccc9..b72e2336 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -4,10 +4,12 @@ use Dotenv\Dotenv; use Faker\Factory; +use GuzzleHttp\Psr7\Utils; use Illuminate\Filesystem\Filesystem; use Intervention\Image\Drivers\Gd\Driver; use Intervention\Image\ImageManager; use Orchestra\Testbench\TestCase as BaseTestCase; +use PHPUnit\Framework\MockObject\MockObject; use Plank\Mediable\Media; use Plank\Mediable\MediableServiceProvider; use Plank\Mediable\Tests\Mocks\MockCallable; @@ -108,7 +110,7 @@ protected function getEnvironmentSetUp($app) } } - protected function getPrivateProperty($class, $property_name) + protected function getPrivateProperty($class, $property_name): \ReflectionProperty { $reflector = new ReflectionClass($class); $property = $reflector->getProperty($property_name); @@ -116,7 +118,7 @@ protected function getPrivateProperty($class, $property_name) return $property; } - protected function getPrivateMethod($class, $method_name) + protected function getPrivateMethod($class, $method_name): \ReflectionMethod { $reflector = new ReflectionClass($class); $method = $reflector->getMethod($method_name); @@ -124,7 +126,7 @@ protected function getPrivateMethod($class, $method_name) return $method; } - protected function seedFileForMedia(Media $media, $contents = '') + protected function seedFileForMedia(Media $media, $contents = ''): void { app('filesystem')->disk($media->disk)->put( $media->getDiskPath(), @@ -133,12 +135,12 @@ protected function seedFileForMedia(Media $media, $contents = '') ); } - protected function s3ConfigLoaded() + protected function s3ConfigLoaded(): bool { return env('S3_KEY') && env('S3_SECRET') && env('S3_REGION') && env('S3_BUCKET'); } - protected function useDatabase() + protected function useDatabase(): void { $this->app->useDatabasePath(dirname(__DIR__)); $this->loadMigrationsFrom( @@ -151,7 +153,7 @@ protected function useDatabase() ); } - protected function useFilesystem($disk) + protected function useFilesystem($disk): void { if (!$this->app['config']->has('filesystems.disks.' . $disk)) { return; @@ -161,7 +163,7 @@ protected function useFilesystem($disk) $filesystem->cleanDirectory($root); } - protected function useFilesystems() + protected function useFilesystems(): void { $disks = $this->app['config']->get('filesystems.disks'); foreach ($disks as $disk) { @@ -169,24 +171,24 @@ protected function useFilesystems() } } - protected static function sampleFilePath() + protected static function sampleFilePath(): string { return realpath(__DIR__ . '/_data/plank.png'); } - protected static function alternateFilePath() + protected static function alternateFilePath(): string { return realpath(__DIR__ . '/_data/plank2.png'); } - protected static function remoteFilePath() + protected static function remoteFilePath(): string { return 'https://raw.githubusercontent.com/plank/laravel-mediable/master/tests/_data/plank.png'; } protected function sampleFile() { - return fopen(TestCase::sampleFilePath(), 'r'); + return Utils::tryFopen(TestCase::sampleFilePath(), 'r'); } protected function makeMedia(array $attributes = []): Media @@ -199,7 +201,10 @@ protected function createMedia(array $attributes = []): Media return factory(Media::class)->create($attributes); } - protected function getMockCallable() + /** + * @return callable&MockObject + */ + protected function getMockCallable(): callable { return $this->createPartialMock(MockCallable::class, ['__invoke']); } @@ -210,7 +215,7 @@ protected function getMockCallable() * * @return \Generator> */ - public static function withConsecutive(array $firstCallArguments, array ...$consecutiveCallsArguments): iterable + public static function withConsecutive(array $firstCallArguments, array ...$consecutiveCallsArguments): \Generator { foreach ($consecutiveCallsArguments as $consecutiveCallArguments) { self::assertSameSize($firstCallArguments, $consecutiveCallArguments, 'Each expected arguments list need to have the same size.');