From 007a7caad49734b0d7b00f83ac22f26f932a99d3 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Mon, 5 Mar 2018 01:02:20 +0000 Subject: [PATCH] Media: Recognize `.ico` files as displayable images on PHP 5.3+ and allow attachment meta data to be generated for them. Props remyvv, Guido07111975. Fixes #43458. git-svn-id: https://develop.svn.wordpress.org/trunk@42780 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-admin/includes/image.php | 5 +++++ tests/phpunit/data/images/test-image.ico | Bin 0 -> 7358 bytes tests/phpunit/tests/image/functions.php | 10 ++++++++++ 3 files changed, 15 insertions(+) create mode 100644 tests/phpunit/data/images/test-image.ico diff --git a/src/wp-admin/includes/image.php b/src/wp-admin/includes/image.php index 0f03e2ca42..573f107605 100644 --- a/src/wp-admin/includes/image.php +++ b/src/wp-admin/includes/image.php @@ -556,6 +556,11 @@ function file_is_valid_image( $path ) { function file_is_displayable_image( $path ) { $displayable_image_types = array( IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG, IMAGETYPE_BMP ); + // IMAGETYPE_ICO is only defined in PHP 5.3+. + if ( defined( 'IMAGETYPE_ICO' ) ) { + $displayable_image_types[] = IMAGETYPE_ICO; + } + $info = @getimagesize( $path ); if ( empty( $info ) ) { $result = false; diff --git a/tests/phpunit/data/images/test-image.ico b/tests/phpunit/data/images/test-image.ico new file mode 100644 index 0000000000000000000000000000000000000000..2145492a2bd113952e51a01776b49b2a1891770b GIT binary patch literal 7358 zcmeHLPe>|39A5iFMu$L2AC!Rm1-}^$Cx2(I{xUhI_9`HPEm zaGZ(bI2+z*;=Fi&wM$)pwM!cTZ3MIt&_+Od1dfl7bvm8s657(za&d7XP5tVLMx%PY zUX)H6?RLAoh@kiJ@o{Z!t*)+)C`?aJr&1{aOy>6P?#}D=5;_T7F4x)FS+Q7@;YxMw z?(UX#U@V)>O2MSsZ*OmjjdEbMT3=pXr0_KDgM)*R!t^Qdb9s3w@DqtdXp+ic;_-M{ zGZu@{D*nM`kQZ}fB-^8pCz(w0Q_#nwqoY+Nq6ZHT55vaP)YKo@tN-h8@&7_Oqfb#45-yOYtE;P2 zDoGJh_!=7_r_+gy`}_NRfZy-u`#Cu|;rG@w zh7+V78X6*5uv^0hfcT-WbVPwAcz=I4o6X2h3c>dFHZgw;SS7cpj`r=!rLbiz_qry+WM1<1+CNz5ANP64+T6#Nf^zffwS VtZ8Z^ppAfvBS4mVE%=cU_y@eF>rDUv literal 0 HcmV?d00001 diff --git a/tests/phpunit/tests/image/functions.php b/tests/phpunit/tests/image/functions.php index f36fe6fdc6..915b695b42 100644 --- a/tests/phpunit/tests/image/functions.php +++ b/tests/phpunit/tests/image/functions.php @@ -61,6 +61,11 @@ class Tests_Image_Functions extends WP_UnitTestCase { 'test-image.jpg', ); + // 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" ); } @@ -87,6 +92,11 @@ class Tests_Image_Functions extends WP_UnitTestCase { 'test-image.jpg', ); + // 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_displayable_image( DIR_TESTDATA . '/images/' . $file ), "file_is_valid_image($file) should return true" ); }