Changeset 61324
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/rest-api/endpoints/class-wp-rest-settings-controller.php
r60357 r61324 146 146 $options = $this->get_registered_options(); 147 147 148 $params = array_diff_key( $request->get_params(), $request->get_query_params() ); 149 150 if ( empty( $params ) || ! empty( array_diff_key( $params, $options ) ) ) { 151 $message = empty( $params ) 152 ? __( 'Request body cannot be empty.' ) 153 : __( 'Invalid parameter(s) provided.' ); 154 155 return new WP_Error( 156 'rest_invalid_param', 157 $message, 158 array( 'status' => 400 ) 159 ); 160 } 148 $params = $request->get_params(); 161 149 162 150 foreach ( $options as $name => $args ) { -
trunk/tests/phpunit/tests/rest-api/rest-settings-controller.php
r61178 r61324 386 386 387 387 /** 388 * Settings can't be created388 * @doesNotPerformAssertions 389 389 */ 390 390 public function test_create_item() { 391 wp_set_current_user( self::$administrator ); 392 393 $request = new WP_REST_Request( 'POST', '/wp/v2/settings' ); 394 $request->set_param( 'new_setting', 'New value' ); 395 $response = rest_get_server()->dispatch( $request ); 396 397 $this->assertSame( 400, $response->get_status() ); 398 } 399 400 /** 401 * @ticket 41604 402 */ 391 // Controller does not implement create_item(). 392 } 393 403 394 public function test_update_item() { 404 395 wp_set_current_user( self::$administrator ); 405 406 396 $request = new WP_REST_Request( 'PUT', '/wp/v2/settings' ); 407 397 $request->set_param( 'title', 'The new title!' ); … … 412 402 $this->assertSame( 'The new title!', $data['title'] ); 413 403 $this->assertSame( get_option( 'blogname' ), $data['title'] ); 414 }415 416 /**417 * @ticket 41604418 */419 public function test_update_item_with_global_parameters_present() {420 wp_set_current_user( self::$administrator );421 422 $request = new WP_REST_Request( 'PUT', '/wp/v2/settings' );423 $request->set_param( 'title', 'The new title!' );424 $request->set_url_params( array( '_locale' => 'user' ) );425 $response = rest_get_server()->dispatch( $request );426 $data = $response->get_data();427 428 $this->assertSame( 200, $response->get_status() );429 $this->assertSame( 'The new title!', $data['title'] );430 $this->assertSame( get_option( 'blogname' ), $data['title'] );431 }432 433 /**434 * @ticket 41604435 */436 public function test_update_item_with_empty_body() {437 wp_set_current_user( self::$administrator );438 439 $request = new WP_REST_Request( 'PUT', '/wp/v2/settings' );440 $response = rest_get_server()->dispatch( $request );441 $data = $response->get_data();442 443 $this->assertSame( 400, $response->get_status() );444 }445 446 /**447 * @ticket 41604448 */449 public function test_update_nonexistent_item() {450 wp_set_current_user( self::$administrator );451 452 $request = new WP_REST_Request( 'PUT', '/wp/v2/settings' );453 $request->set_param( 'i_do_no_exist', 'New value' );454 $response = rest_get_server()->dispatch( $request );455 456 $this->assertSame( 400, $response->get_status() );457 }458 459 /**460 * @ticket 41604461 */462 public function test_update_partially_valid_items() {463 wp_set_current_user( self::$administrator );464 465 $request = new WP_REST_Request( 'PUT', '/wp/v2/settings' );466 $request->set_param( 'title', 'The new title!' );467 $request->set_param( 'i_do_no_exist', 'New value' );468 $response = rest_get_server()->dispatch( $request );469 470 $this->assertSame( 400, $response->get_status() );471 404 } 472 405
Note: See TracChangeset
for help on using the changeset viewer.