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 0000000000..2145492a2b Binary files /dev/null and b/tests/phpunit/data/images/test-image.ico differ 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" ); }