- Timestamp:
- 09/30/2024 01:17:40 AM (2 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/tests/rest-api/rest-posts-controller.php
r59036 r59115 197 197 'context', 198 198 'exclude', 199 'format', 199 200 'include', 200 201 'modified_after', … … 5498 5499 5499 5500 /** 5501 * Test the REST API support for the standard post format. 5502 * 5503 * @ticket 62014 5504 * 5505 * @covers WP_REST_Posts_Controller::get_items 5506 */ 5507 public function test_standard_post_format_support() { 5508 $initial_theme_support = get_theme_support( 'post-formats' ); 5509 add_theme_support( 'post-formats', array( 'aside', 'gallery', 'link', 'image', 'quote', 'status', 'video', 'audio', 'chat' ) ); 5510 5511 $post_id = self::factory()->post->create( 5512 array( 5513 'post_type' => 'post', 5514 'post_status' => 'publish', 5515 ) 5516 ); 5517 set_post_format( $post_id, 'aside' ); 5518 5519 $request = new WP_REST_Request( 'GET', '/wp/v2/posts' ); 5520 $request->set_param( 'format', array( 'standard' ) ); 5521 $request->set_param( 'per_page', REST_TESTS_IMPOSSIBLY_HIGH_NUMBER ); 5522 5523 $response = rest_get_server()->dispatch( $request ); 5524 5525 /* 5526 * Restore the initial post formats support. 5527 * 5528 * This needs to be done prior to the assertions to avoid unexpected 5529 * results for other tests should an assertion fail. 5530 */ 5531 if ( $initial_theme_support ) { 5532 add_theme_support( 'post-formats', $initial_theme_support[0] ); 5533 } else { 5534 remove_theme_support( 'post-formats' ); 5535 } 5536 5537 $this->assertCount( 3, $response->get_data(), 'The response should only include standard post formats' ); 5538 } 5539 5540 /** 5541 * Test the REST API support for post formats. 5542 * 5543 * @ticket 62014 5544 * 5545 * @covers WP_REST_Posts_Controller::get_items 5546 */ 5547 public function test_post_format_support() { 5548 $initial_theme_support = get_theme_support( 'post-formats' ); 5549 add_theme_support( 'post-formats', array( 'aside', 'gallery', 'link', 'image', 'quote', 'status', 'video', 'audio', 'chat' ) ); 5550 5551 $post_id = self::factory()->post->create( 5552 array( 5553 'post_type' => 'post', 5554 'post_status' => 'publish', 5555 ) 5556 ); 5557 set_post_format( $post_id, 'aside' ); 5558 5559 $request = new WP_REST_Request( 'GET', '/wp/v2/posts' ); 5560 $request->set_param( 'format', array( 'aside' ) ); 5561 5562 $response_aside = rest_get_server()->dispatch( $request ); 5563 5564 $request->set_param( 'format', array( 'invalid_format' ) ); 5565 $response_invalid = rest_get_server()->dispatch( $request ); 5566 5567 /* 5568 * Restore the initial post formats support. 5569 * 5570 * This needs to be done prior to the assertions to avoid unexpected 5571 * results for other tests should an assertion fail. 5572 */ 5573 if ( $initial_theme_support ) { 5574 add_theme_support( 'post-formats', $initial_theme_support[0] ); 5575 } else { 5576 remove_theme_support( 'post-formats' ); 5577 } 5578 5579 $this->assertCount( 1, $response_aside->get_data(), 'Only one post is expected to be returned.' ); 5580 $this->assertErrorResponse( 'rest_invalid_param', $response_invalid, 400, 'An invalid post format should return an error' ); 5581 } 5582 5583 /** 5584 * Test the REST API support for multiple post formats. 5585 * 5586 * @ticket 62014 5587 * 5588 * @covers WP_REST_Posts_Controller::get_items 5589 */ 5590 public function test_multiple_post_format_support() { 5591 $initial_theme_support = get_theme_support( 'post-formats' ); 5592 add_theme_support( 'post-formats', array( 'aside', 'gallery', 'link', 'image', 'quote', 'status', 'video', 'audio', 'chat' ) ); 5593 5594 $post_id = self::factory()->post->create( 5595 array( 5596 'post_type' => 'post', 5597 'post_status' => 'publish', 5598 ) 5599 ); 5600 set_post_format( $post_id, 'aside' ); 5601 5602 $post_id_2 = self::factory()->post->create( 5603 array( 5604 'post_type' => 'post', 5605 'post_status' => 'publish', 5606 ) 5607 ); 5608 set_post_format( $post_id_2, 'gallery' ); 5609 5610 $request = new WP_REST_Request( 'GET', '/wp/v2/posts' ); 5611 $request->set_param( 'format', array( 'aside', 'gallery' ) ); 5612 5613 $response = rest_get_server()->dispatch( $request ); 5614 5615 /* 5616 * Restore the initial post formats support. 5617 * 5618 * This needs to be done prior to the assertions to avoid unexpected 5619 * results for other tests should an assertion fail. 5620 */ 5621 if ( $initial_theme_support ) { 5622 add_theme_support( 'post-formats', $initial_theme_support[0] ); 5623 } else { 5624 remove_theme_support( 'post-formats' ); 5625 } 5626 5627 $this->assertCount( 2, $response->get_data(), 'Two posts are expected to be returned' ); 5628 } 5629 5630 /** 5500 5631 * Internal function used to disable an insert query which 5501 5632 * will trigger a wpdb error for testing purposes.
Note: See TracChangeset
for help on using the changeset viewer.