WordPress.org

Make WordPress Core

Ticket #43136: 43136.diff

File 43136.diff, 1.5 KB (added by imath, 4 years ago)
  • src/wp-includes/class-wp-oembed-controller.php

     
    127127                        return new WP_Error( 'oembed_invalid_url', get_status_header_desc( 404 ), array( 'status' => 404 ) );
    128128                }
    129129
     130                // Make sure the REST Request applies the WP Embed security mechanism for WordPress Posts.
     131                $data['html'] = wp_filter_oembed_result( $data['html'], (object) $data, $request['url'] );
     132
    130133                return $data;
    131134        }
    132135
  • tests/phpunit/tests/oembed/controller.php

     
    582582                $data = $response->get_data();
    583583                $this->assertEquals( $data['code'], 'rest_invalid_param' );
    584584        }
     585
     586        /**
     587         * @ticket 43136
     588         */
     589        public function test_rest_get_post_oembed_result() {
     590                wp_set_current_user( self::$editor );
     591
     592                $post = $this->factory()->post->create_and_get(
     593                        array(
     594                                'post_title'  => 'Foo Bar',
     595                        )
     596                );
     597
     598                $request = new WP_REST_Request( 'GET', '/oembed/1.0/embed' );
     599                $request->set_param( 'url', get_permalink( $post->ID ) );
     600
     601                $response = $this->server->dispatch( $request );
     602                $data = $response->get_data();
     603
     604                $this->assertTrue( 0 === strpos( $data['html'], '<blockquote class="wp-embedded-content" data-secret' ) );
     605        }
    585606}