Ticket #38698: 38698.2.diff
File 38698.2.diff, 3.3 KB (added by , 8 years ago) |
---|
-
src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
diff --git src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php index 716f329..0784ec1 100644
class WP_REST_Posts_Controller extends WP_REST_Controller { 1094 1094 } 1095 1095 1096 1096 /** 1097 * Sets the template for a p age.1097 * Sets the template for a post. 1098 1098 * 1099 1099 * @since 4.7.0 1100 1100 * @access public … … class WP_REST_Posts_Controller extends WP_REST_Controller { 1922 1922 ); 1923 1923 } 1924 1924 1925 if ( 'page' === $this->post_type) {1925 if ( count( wp_get_theme()->get_page_templates( null, $this->post_type ) ) > 0 ) { 1926 1926 $schema['properties']['template'] = array( 1927 1927 'description' => __( 'The theme file to use to display the object.' ), 1928 1928 'type' => 'string', 1929 'enum' => array_keys( wp_get_theme()->get_page_templates( ) ),1929 'enum' => array_keys( wp_get_theme()->get_page_templates( null, $this->post_type ) ), 1930 1930 'context' => array( 'view', 'edit' ), 1931 1931 ); 1932 1932 } -
tests/phpunit/tests/rest-api/rest-posts-controller.php
diff --git tests/phpunit/tests/rest-api/rest-posts-controller.php tests/phpunit/tests/rest-api/rest-posts-controller.php index 57d5deb..0d49ce0 100644
class WP_Test_REST_Posts_Controller extends WP_Test_REST_Post_Type_Controller_Te 1025 1025 $this->check_create_post_response( $response ); 1026 1026 } 1027 1027 1028 /** 1029 * @ticket 38698 1030 */ 1031 public function test_create_item_with_template() { 1032 wp_set_current_user( self::$editor_id ); 1033 add_filter( 'theme_post_templates', array( $this, 'filter_theme_post_templates' ) ); 1034 1035 $request = new WP_REST_Request( 'POST', '/wp/v2/posts' ); 1036 $params = $this->set_post_data( array( 1037 'template' => 'post-my-test-template.php', 1038 ) ); 1039 $request->set_body_params( $params ); 1040 $response = $this->server->dispatch( $request ); 1041 1042 $data = $response->get_data(); 1043 $post_template = get_page_template_slug( get_post( $data['id'] ) ); 1044 1045 remove_filter( 'theme_post_templates', array( $this, 'filter_theme_post_templates' ) ); 1046 1047 $this->assertEquals( 'post-my-test-template.php', $data['template'] ); 1048 $this->assertEquals( '', $post_template ); 1049 } 1050 1051 /** 1052 * @ticket 38698 1053 */ 1054 public function test_create_item_with_template_none_available() { 1055 wp_set_current_user( self::$editor_id ); 1056 1057 $request = new WP_REST_Request( 'POST', '/wp/v2/posts' ); 1058 $params = $this->set_post_data( array( 1059 'template' => 'post-my-test-template.php', 1060 ) ); 1061 $request->set_body_params( $params ); 1062 $response = $this->server->dispatch( $request ); 1063 1064 $data = $response->get_data(); 1065 $post_template = get_page_template_slug( get_post( $data['id'] ) ); 1066 1067 $this->assertFalse( isset( $data['template'] ) ); 1068 $this->assertEquals( 'post-my-test-template.php', $post_template ); 1069 } 1070 1028 1071 public function test_rest_create_item() { 1029 1072 wp_set_current_user( self::$editor_id ); 1030 1073 … … class WP_Test_REST_Posts_Controller extends WP_Test_REST_Post_Type_Controller_Te 2469 2512 return $query; 2470 2513 } 2471 2514 2515 public function filter_theme_post_templates( $post_templates ) { 2516 return array( 2517 'post-my-test-template.php' => 'My Test Template', 2518 ); 2519 2520 return $post_templates; 2521 } 2472 2522 }