[wp-trac] [WordPress Trac] #53121: wp_get_image_mime() - something weird going on

WordPress Trac noreply at wordpress.org
Fri Apr 30 21:24:04 UTC 2021


#53121: wp_get_image_mime() - something weird going on
--------------------------+------------------------------
 Reporter:  jrf           |       Owner:  (none)
     Type:  defect (bug)  |      Status:  new
 Priority:  normal        |   Milestone:  Awaiting Review
Component:  Media         |     Version:  4.8
 Severity:  minor         |  Resolution:
 Keywords:                |     Focuses:
--------------------------+------------------------------
Description changed by SergeyBiryukov:

Old description:

> Okay, eh... help... so this is a weird one to write up.
>
> In the context of #53009, @hellofromTonya and me are looking at all calls
> to `markTestSkipped()` in the test suite.
>
> One of the ones I was looking at is this test in
> `tests/phpunit/tests/functions.php`:
> {{{#!php
> <?php
> public function test_wp_get_image_mime( $file, $expected ) {
>         if ( ! is_callable( 'exif_imagetype' ) && ! function_exists(
> 'getimagesize' ) ) {
>                 $this->markTestSkipped( 'The exif PHP extension is not
> loaded.' );
>         }
>
>         $this->assertSame( $expected, wp_get_image_mime( $file ) );
> }
> }}}
>
> for the
> [https://developer.wordpress.org/reference/functions/wp_get_image_mime/
> `wp_get_image_mime()`] function.
>
> Now, there are two questions I have:
> 1. Why is `is_callable()` used for `exif_imagetype` and
> `function_exists()` for `getimagesize` ? This is the same in the actual
> function as well as the test, but strikes me as odd. Why not use
> `function_exists()` (or `is_callable()`) for both ?
> 2. I've been trying to verify the conditions by running the test with the
> Exif and GD extensions in various states - both enabled, GD disabled -
> Exif enabled, GD enabled - Exif disabled, both disabled - and I can only
> seem to make the test hit the skip condition with Exif disabled. Tested
> on both PHP 5.6 as well as PHP 7.4.
>
> I've checked the PHP docs and the
> [https://www.php.net/manual/en/function.getimagesize.php
> `getimagesize()`] function is listed as part of the GD extension and the
> manual doesn't say anything explicitly about it being available
> independently of the extension, so the condition ''seems'' justified, but
> the fact that I can't seem to get the test to fail is making me want to
> dig deeper.
>

> Related to #11946 and #40017. The original function was introduced in
> [39831], the tests in [40397].
>
> Pinging @joemcgil - would you happen to be able to give me some insight
> into what's happening here ?

New description:

 Okay, eh... help... so this is a weird one to write up.

 In the context of #53009, @hellofromTonya and me are looking at all calls
 to `markTestSkipped()` in the test suite.

 One of the ones I was looking at is this test in
 `tests/phpunit/tests/functions.php`:
 {{{#!php
 <?php
 public function test_wp_get_image_mime( $file, $expected ) {
         if ( ! is_callable( 'exif_imagetype' ) && ! function_exists(
 'getimagesize' ) ) {
                 $this->markTestSkipped( 'The exif PHP extension is not
 loaded.' );
         }

         $this->assertSame( $expected, wp_get_image_mime( $file ) );
 }
 }}}

 for the
 [https://developer.wordpress.org/reference/functions/wp_get_image_mime/
 `wp_get_image_mime()`] function.

 Now, there are two questions I have:
 1. Why is `is_callable()` used for `exif_imagetype` and
 `function_exists()` for `getimagesize` ? This is the same in the actual
 function as well as the test, but strikes me as odd. Why not use
 `function_exists()` (or `is_callable()`) for both ?
 2. I've been trying to verify the conditions by running the test with the
 Exif and GD extensions in various states - both enabled, GD disabled -
 Exif enabled, GD enabled - Exif disabled, both disabled - and I can only
 seem to make the test hit the skip condition with Exif disabled. Tested on
 both PHP 5.6 as well as PHP 7.4.

 I've checked the PHP docs and the
 [https://www.php.net/manual/en/function.getimagesize.php `getimagesize()`]
 function is listed as part of the GD extension and the manual doesn't say
 anything explicitly about it being available independently of the
 extension, so the condition ''seems'' justified, but the fact that I can't
 seem to get the test to fail is making me want to dig deeper.


 Related to #11946 and #40017. The original function was introduced in
 [39831], the tests in [40397].

 Pinging @joemcgill - would you happen to be able to give me some insight
 into what's happening here ?

--

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/53121#comment:4>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list