WordPress.org

Make WordPress Core

Ticket #48111: 48111.3.patch

File 48111.3.patch, 6.4 KB (added by mikeschroder, 19 months ago)

48111.2.patch + Automated Test Updates

  • src/wp-admin/includes/image.php

    diff --git src/wp-admin/includes/image.php src/wp-admin/includes/image.php
    index 1e265d45f7..41efa0ad13 100644
    function wp_generate_attachment_metadata( $attachment_id, $file ) { 
    581581
    582582                                // Resize based on the full size image, rather than the source.
    583583                                if ( ! is_wp_error( $uploaded ) ) {
    584                                         $editor = wp_get_image_editor( $uploaded['path'] );
     584                                        $image_file = $uploaded['path'];
    585585                                        unset( $uploaded['path'] );
    586586
    587                                         if ( ! is_wp_error( $editor ) ) {
    588                                                 $metadata['sizes']         = $editor->multi_resize( $merged_sizes );
    589                                                 $metadata['sizes']['full'] = $uploaded;
    590                                         }
     587                                        $metadata['sizes'] = array(
     588                                                'full' => $uploaded,
     589                                        );
     590
     591                                        // Save the meta data before any image post-processing errors could happen.
     592                                        wp_update_attachment_metadata( $attachment_id, $metadata );
     593
     594                                        // Create sub-sizes saving the image meta after each.
     595                                        $metadata = _wp_make_subsizes( $merged_sizes, $image_file, $metadata, $attachment_id );
    591596                                }
    592597                        }
    593598                }
  • tests/phpunit/tests/image/functions.php

    diff --git tests/phpunit/tests/image/functions.php tests/phpunit/tests/image/functions.php
    index 4d385ae2dc..8fa47c65a5 100644
    class Tests_Image_Functions extends WP_UnitTestCase { 
    435435
    436436                $expected = array(
    437437                        'sizes' => array(
    438                                 'thumbnail' => array(
    439                                         'file'      => 'wordpress-gsoc-flyer-pdf-116x150.jpg',
    440                                         'width'     => 116,
    441                                         'height'    => 150,
     438                                'full'      => array(
     439                                        'file'      => 'wordpress-gsoc-flyer-pdf.jpg',
     440                                        'width'     => 1088,
     441                                        'height'    => 1408,
    442442                                        'mime-type' => 'image/jpeg',
    443443                                ),
    444444                                'medium'    => array(
    class Tests_Image_Functions extends WP_UnitTestCase { 
    453453                                        'height'    => 1024,
    454454                                        'mime-type' => 'image/jpeg',
    455455                                ),
    456                                 'full'      => array(
    457                                         'file'      => 'wordpress-gsoc-flyer-pdf.jpg',
    458                                         'width'     => 1088,
    459                                         'height'    => 1408,
     456                                'thumbnail' => array(
     457                                        'file'      => 'wordpress-gsoc-flyer-pdf-116x150.jpg',
     458                                        'width'     => 116,
     459                                        'height'    => 150,
    460460                                        'mime-type' => 'image/jpeg',
    461461                                ),
    462462                        ),
    class Tests_Image_Functions extends WP_UnitTestCase { 
    500500
    501501                $expected = array(
    502502                        'sizes' => array(
    503                                 'thumbnail' => array(
    504                                         'file'      => 'wordpress-gsoc-flyer-pdf-116x150.jpg',
    505                                         'width'     => 116,
    506                                         'height'    => 150,
     503                                'full'      => array(
     504                                        'file'      => 'wordpress-gsoc-flyer-pdf.jpg',
     505                                        'width'     => 1088,
     506                                        'height'    => 1408,
    507507                                        'mime-type' => 'image/jpeg',
    508508                                ),
    509509                                'medium'    => array(
    class Tests_Image_Functions extends WP_UnitTestCase { 
    518518                                        'height'    => 1024,
    519519                                        'mime-type' => 'image/jpeg',
    520520                                ),
    521                                 'full'      => array(
    522                                         'file'      => 'wordpress-gsoc-flyer-pdf.jpg',
    523                                         'width'     => 1088,
    524                                         'height'    => 1408,
     521                                'thumbnail' => array(
     522                                        'file'      => 'wordpress-gsoc-flyer-pdf-116x150.jpg',
     523                                        'width'     => 116,
     524                                        'height'    => 150,
    525525                                        'mime-type' => 'image/jpeg',
    526526                                ),
    527527                        ),