diff --git a/src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php b/src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
index 5b6cafd..30651d0 100644
|
a
|
b
|
class WP_REST_Posts_Controller extends WP_REST_Controller {
|
| 1989 | 1989 | break; |
| 1990 | 1990 | |
| 1991 | 1991 | case 'post-formats': |
| 1992 | | $supports_formats = get_theme_support( 'post-formats' ); |
| 1993 | | |
| 1994 | | // Force to an array. Supports formats can return true even if empty in some cases. |
| 1995 | | $supports_formats = is_array( $supports_formats ) ? array_values( $supports_formats[0] ) : array(); |
| 1996 | | |
| 1997 | | $supported_formats = array_merge( array( 'standard' ), $supports_formats ); |
| | 1992 | // Get the native post formats and remove the array keys. |
| | 1993 | $formats = array_values( get_post_format_slugs() ); |
| 1998 | 1994 | |
| 1999 | 1995 | $schema['properties']['format'] = array( |
| 2000 | 1996 | 'description' => __( 'The format for the object.' ), |
| 2001 | 1997 | 'type' => 'string', |
| 2002 | | 'enum' => $supported_formats, |
| | 1998 | 'enum' => $formats, |
| 2003 | 1999 | 'context' => array( 'view', 'edit' ), |
| 2004 | 2000 | ); |
| 2005 | 2001 | break; |
diff --git a/tests/phpunit/tests/rest-api/rest-posts-controller.php b/tests/phpunit/tests/rest-api/rest-posts-controller.php
index b5c18a0..503010f 100644
|
a
|
b
|
class WP_Test_REST_Posts_Controller extends WP_Test_REST_Post_Type_Controller_Te
|
| 914 | 914 | $this->assertEquals( $post2, $data[0]['id'] ); |
| 915 | 915 | } |
| 916 | 916 | |
| 917 | | public function test_get_items_no_supported_post_formats() { |
| 918 | | // This causes get_theme_support( 'post-formats' ) to return `true` (not an array) |
| 919 | | add_theme_support( 'post-formats' ); |
| 920 | | |
| | 917 | public function test_get_items_all_post_formats() { |
| 921 | 918 | $request = new WP_REST_Request( 'OPTIONS', '/wp/v2/posts' ); |
| 922 | 919 | $response = $this->server->dispatch( $request ); |
| 923 | 920 | $data = $response->get_data(); |
| 924 | 921 | |
| 925 | | // Set the expected state back for the rest of the tests. |
| 926 | | global $_wp_theme_features; |
| 927 | | unset( $_wp_theme_features['post-formats'] ); |
| 928 | | add_theme_support( 'post-formats', array( 'post', 'gallery' ) ); |
| 929 | | |
| 930 | | $formats = array( 'standard' ); |
| | 922 | $formats = array_values( get_post_format_slugs() ); |
| 931 | 923 | |
| 932 | 924 | $this->assertEquals( $formats, $data['schema']['properties']['format']['enum'] ); |
| 933 | 925 | } |
| … |
… |
class WP_Test_REST_Posts_Controller extends WP_Test_REST_Post_Type_Controller_Te
|
| 1575 | 1567 | ) ); |
| 1576 | 1568 | $request->set_body_params( $params ); |
| 1577 | 1569 | $response = $this->server->dispatch( $request ); |
| | 1570 | $this->assertEquals( 201, $response->get_status() ); |
| 1578 | 1571 | |
| 1579 | | $this->assertErrorResponse( 'rest_invalid_param', $response, 400 ); |
| | 1572 | $data = $response->get_data(); |
| | 1573 | $this->assertEquals( 'link', $data['format'] ); |
| 1580 | 1574 | } |
| 1581 | 1575 | |
| 1582 | 1576 | public function test_create_update_post_with_featured_media() { |
| … |
… |
class WP_Test_REST_Posts_Controller extends WP_Test_REST_Post_Type_Controller_Te
|
| 2073 | 2067 | ) ); |
| 2074 | 2068 | $request->set_body_params( $params ); |
| 2075 | 2069 | $response = $this->server->dispatch( $request ); |
| | 2070 | $this->assertEquals( 200, $response->get_status() ); |
| 2076 | 2071 | |
| 2077 | | $this->assertErrorResponse( 'rest_invalid_param', $response, 400 ); |
| | 2072 | $data = $response->get_data(); |
| | 2073 | $this->assertEquals( 'link', $data['format'] ); |
| 2078 | 2074 | } |
| 2079 | 2075 | |
| 2080 | 2076 | public function test_update_post_ignore_readonly() { |