Make WordPress Core

Ticket #37697: 37697.2.diff

File 37697.2.diff, 2.2 KB (added by swissspidy, 9 years ago)
  • src/wp-includes/revision.php

    diff --git src/wp-includes/revision.php src/wp-includes/revision.php
    index b588621..07a986c 100644
    function _wp_preview_post_thumbnail_filter( $value, $post_id, $meta_key ) { 
    594594                return $value;
    595595        }
    596596
    597         if ( empty( $_REQUEST['_thumbnail_id'] ) || $post->ID != $post_id || '_thumbnail_id' != $meta_key || 'revision' == $post->post_type ) {
     597        if ( empty( $_REQUEST['_thumbnail_id'] ) ||
     598             empty( $_REQUEST['preview_id'] ) ||
     599             $post->ID != $post_id ||
     600             '_thumbnail_id' != $meta_key ||
     601             'revision' == $post->post_type ||
     602             $post_id != $_REQUEST['preview_id']
     603        ) {
    598604                return $value;
    599605        }
    600606
  • tests/phpunit/tests/post/thumbnails.php

    diff --git tests/phpunit/tests/post/thumbnails.php tests/phpunit/tests/post/thumbnails.php
    index 827a339..bf35ef2 100644
    class Tests_Post_Thumbnail_Template extends WP_UnitTestCase { 
    242242
    243243                $GLOBALS['post'] = self::$post;
    244244                $_REQUEST['_thumbnail_id'] = self::$attachment_id;
     245                $_REQUEST['preview_id'] = self::$post->ID;
    245246
    246247                $result = _wp_preview_post_thumbnail_filter( '', self::$post->ID, '_thumbnail_id' );
     248
     249                $GLOBALS['post'] = $old_post;
     250
    247251                $this->assertEquals( self::$attachment_id, $result );
     252        }
     253
     254        /**
     255         * @ticket 37697
     256         */
     257        function test__wp_preview_post_thumbnail_filter_secondary_post() {
     258                $old_post = isset( $GLOBALS['post'] ) ? $GLOBALS['post'] : null;
     259
     260                $filename = ( DIR_TESTDATA.'/images/a2-small.jpg' );
     261                $attachment_id = self::factory()->attachment->create_upload_object( $filename, $this->post_id );
     262
     263                $secondary_post = self::factory()->post->create( array(
     264                                'post_stauts' => 'publish',
     265                                '_thumbnail_id' => $attachment_id
     266                        )
     267                );
     268
     269                $GLOBALS['post'] = self::$post;
     270                $_REQUEST['_thumbnail_id'] = self::$attachment_id;
     271                $_REQUEST['preview_id'] = $secondary_post;
     272
     273                $result = _wp_preview_post_thumbnail_filter( '', self::$post->ID, '_thumbnail_id' );
    248274
    249275                unset( $_REQUEST['_thumbnail_id'] );
    250                 if ( null === $old_post ) {
    251                         unset( $GLOBALS['post'] );
    252                 } else {
    253                         $GLOBALS['post'] = $old_post;
    254                 }
     276                $GLOBALS['post'] = $old_post;
     277
     278                $this->assertEmpty( $result );
    255279        }
    256280
    257281        /**