Changeset 50005
- Timestamp:
- 01/23/2021 11:25:40 PM (4 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/rest-api.php
r49611 r50005 2521 2521 if ( 200 === $response->status ) { 2522 2522 $server = rest_get_server(); 2523 $data = (array) $response->get_data(); 2524 $links = $server::get_compact_response_links( $response ); 2525 if ( ! empty( $links ) ) { 2526 $data['_links'] = $links; 2527 } 2523 $embed = $request->has_param( '_embed' ) ? rest_parse_embed_param( $request['_embed'] ) : false; 2524 $data = (array) $server->response_to_data( $response, $embed ); 2528 2525 2529 2526 if ( 'OPTIONS' === $method ) { -
trunk/tests/phpunit/tests/rest-api.php
r49246 r50005 2329 2329 ); 2330 2330 } 2331 2332 /** 2333 * @ticket 51722 2334 * @dataProvider data_rest_preload_api_request_embeds_links 2335 * 2336 * @param string $embed The embed parameter. 2337 * @param string[] $expected The list of link relations that should be embedded. 2338 * @param string[] $not_expected The list of link relations that should not be embedded. 2339 */ 2340 public function test_rest_preload_api_request_embeds_links( $embed, $expected, $not_expected ) { 2341 wp_set_current_user( 1 ); 2342 $post_id = self::factory()->post->create(); 2343 self::factory()->comment->create_post_comments( $post_id ); 2344 2345 $url = sprintf( '/wp/v2/posts/%d?%s', $post_id, $embed ); 2346 $preload_paths = array( $url ); 2347 2348 $preload_data = array_reduce( 2349 $preload_paths, 2350 'rest_preload_api_request', 2351 array() 2352 ); 2353 2354 $this->assertSame( array_keys( $preload_data ), $preload_paths ); 2355 $this->assertArrayHasKey( 'body', $preload_data[ $url ] ); 2356 $this->assertArrayHasKey( '_links', $preload_data[ $url ]['body'] ); 2357 2358 if ( $expected ) { 2359 $this->assertArrayHasKey( '_embedded', $preload_data[ $url ]['body'] ); 2360 } else { 2361 $this->assertArrayNotHasKey( '_embedded', $preload_data[ $url ]['body'] ); 2362 } 2363 2364 foreach ( $expected as $rel ) { 2365 $this->assertArrayHasKey( $rel, $preload_data[ $url ]['body']['_embedded'] ); 2366 } 2367 2368 foreach ( $not_expected as $rel ) { 2369 $this->assertArrayNotHasKey( $rel, $preload_data[ $url ]['body']['_embedded'] ); 2370 } 2371 } 2372 2373 public function data_rest_preload_api_request_embeds_links() { 2374 return array( 2375 array( '_embed=wp:term,author', array( 'wp:term', 'author' ), array( 'replies' ) ), 2376 array( '_embed[]=wp:term&_embed[]=author', array( 'wp:term', 'author' ), array( 'replies' ) ), 2377 array( '_embed', array( 'wp:term', 'author', 'replies' ), array() ), 2378 array( '_embed=1', array( 'wp:term', 'author', 'replies' ), array() ), 2379 array( '_embed=true', array( 'wp:term', 'author', 'replies' ), array() ), 2380 array( '', array(), array() ), 2381 ); 2382 } 2331 2383 }
Note: See TracChangeset
for help on using the changeset viewer.