Media: Allow PDF fallbacks filter to process custom sizes.

This fixes an oversight in [39246], which added a hook for filtering
the array of sizes used for PDF thumbnails, but failed to provide a way
for sizes added through `add_image_size()` to be processed.

Props gitlost.
Fixes #39231. See #38594.

git-svn-id: https://develop.svn.wordpress.org/trunk@39617 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Joe McGill
2016-12-16 20:29:26 +00:00
parent bad6ddc45d
commit 1f48d453d8
2 changed files with 64 additions and 5 deletions
+45
View File
@@ -404,4 +404,49 @@ class Tests_Image_Functions extends WP_UnitTestCase {
unlink( $test_file );
}
/**
* @ticket 39231
*/
public function test_fallback_intermediate_image_sizes() {
if ( ! wp_image_editor_supports( array( 'mime_type' => 'application/pdf' ) ) ) {
$this->markTestSkipped( 'Rendering PDFs is not supported on this system.' );
}
$orig_file = DIR_TESTDATA . '/images/wordpress-gsoc-flyer.pdf';
$test_file = '/tmp/wordpress-gsoc-flyer.pdf';
copy( $orig_file, $test_file );
$attachment_id = $this->factory->attachment->create_object( $test_file, 0, array(
'post_mime_type' => 'application/pdf',
) );
$this->assertNotEmpty( $attachment_id );
add_image_size( 'test-size', 100, 100 );
add_filter( 'fallback_intermediate_image_sizes', array( $this, 'filter_fallback_intermediate_image_sizes' ), 10, 2 );
$expected = array(
'file' => 'wordpress-gsoc-flyer-77x100.jpg',
'width' => 77,
'height' => 100,
'mime-type' => 'image/jpeg',
);
$metadata = wp_generate_attachment_metadata( $attachment_id, $test_file );
$this->assertTrue( isset( $metadata['sizes']['test-size'] ), 'The `test-size` was not added to the metadata.' );
$this->assertSame( $metadata['sizes']['test-size'], $expected );
remove_image_size( 'test-size' );
remove_filter( 'fallback_intermediate_image_sizes', array( $this, 'filter_fallback_intermediate_image_sizes' ), 10 );
unlink( $test_file );
}
function filter_fallback_intermediate_image_sizes( $fallback_sizes, $metadata ) {
// Add the 'test-size' to the list of fallback sizes.
$fallback_sizes[] = 'test-size';
return $fallback_sizes;
}
}