From 4e0f290f2c9b6d9f43e8ed25f3c27bceda265ded Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Sun, 19 Jun 2022 15:13:16 +0000 Subject: [PATCH] Tests: Refactor `Tests_Image_Functions::test_is_image_positive()` to use a data provider. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Using a data provider has a number of advantages: 1. If the first test case fails, it won't prevent the other test cases from being tested. 2. While the assertion used in this test method ''does'' have a "failure message" (👍), the output from PHPUnit itself will already be more descriptive in case of failure when using a data provider. 3. Using named test cases in the data provider will also make the `--testdox` output much more descriptive and informative. The actual cases being tested, or the test itself have not been changed. Includes: * Changing the conditional addition of the `.ico` file type to be unconditional, it was only needed for PHP < 5.3. * Adding a `@covers` annotation. Follow-up to [184/tests], [42780], [53495], [53497], [53521]. Props jrf. See #55652. git-svn-id: https://develop.svn.wordpress.org/trunk@53523 602fd350-edb4-49c9-b593-d223f7449a82 --- tests/phpunit/tests/image/functions.php | 32 ++++++++++++++++++------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/tests/phpunit/tests/image/functions.php b/tests/phpunit/tests/image/functions.php index 8dbadd3886..6155946128 100644 --- a/tests/phpunit/tests/image/functions.php +++ b/tests/phpunit/tests/image/functions.php @@ -63,7 +63,27 @@ class Tests_Image_Functions extends WP_UnitTestCase { return $mime_type; } - public function test_is_image_positive() { + /** + * @dataProvider data_is_image_positive + * + * @covers ::file_is_valid_image + * @covers ::wp_getimagesize + * + * @param string $file File name. + */ + public function test_is_image_positive( $file ) { + $this->assertTrue( + file_is_valid_image( DIR_TESTDATA . '/images/' . $file ), + "file_is_valid_image( '$file' ) should return true" + ); + } + + /** + * Data Provider. + * + * @return array + */ + public function data_is_image_positive() { // These are all image files recognized by PHP. $files = array( 'test-image-cmyk.jpg', @@ -77,20 +97,14 @@ class Tests_Image_Functions extends WP_UnitTestCase { 'test-image.psd', 'test-image-zip.tiff', 'test-image.jpg', + 'test-image.ico', 'webp-animated.webp', 'webp-lossless.webp', 'webp-lossy.webp', 'webp-transparent.webp', ); - // IMAGETYPE_ICO is only defined in PHP 5.3+. - if ( defined( 'IMAGETYPE_ICO' ) ) { - $files[] = 'test-image.ico'; - } - - foreach ( $files as $file ) { - $this->assertTrue( file_is_valid_image( DIR_TESTDATA . '/images/' . $file ), "file_is_valid_image($file) should return true" ); - } + return $this->text_array_to_dataprovider( $files ); } public function test_is_image_negative() {