diff --git a/src/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php b/src/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php
index e6f7920..4065cdd 100644
a
|
b
|
class WP_REST_Comments_Controller extends WP_REST_Controller { |
644 | 644 | return new WP_Error( $error_code, __( 'Comment field exceeds maximum length allowed.' ), array( 'status' => 400 ) ); |
645 | 645 | } |
646 | 646 | |
| 647 | // wp_update_comment() can return 0 if a real error occurs (this should be an API error) |
| 648 | // or if no DB rows were updated (this should not be an API error). |
| 649 | |
| 650 | /** This action is documented in wp-includes/comment.php */ |
| 651 | $edit_comment_count = did_action( 'edit_comment' ); |
647 | 652 | $updated = wp_update_comment( $prepared_args ); |
| 653 | /** This action is documented in wp-includes/comment.php */ |
| 654 | $edit_comment_count = did_action( 'edit_comment' ) - $edit_comment_count; |
648 | 655 | |
649 | | if ( 0 === $updated ) { |
| 656 | if ( 0 === $updated && 0 === $edit_comment_count ) { |
650 | 657 | return new WP_Error( 'rest_comment_failed_edit', __( 'Updating comment failed.' ), array( 'status' => 500 ) ); |
651 | 658 | } |
652 | 659 | |
diff --git a/tests/phpunit/tests/rest-api/rest-comments-controller.php b/tests/phpunit/tests/rest-api/rest-comments-controller.php
index a8526c8..23d6e49 100644
a
|
b
|
class WP_Test_REST_Comments_Controller extends WP_Test_REST_Controller_Testcase |
1586 | 1586 | $this->assertEquals( '2014-11-07T10:14:25', $comment['date'] ); |
1587 | 1587 | } |
1588 | 1588 | |
| 1589 | public function test_update_item_no_change() { |
| 1590 | wp_set_current_user( self::$admin_id ); |
| 1591 | $request = new WP_REST_Request( 'PUT', sprintf( '/wp/v2/comments/%d', self::$approved_id ) ); |
| 1592 | $response = $this->server->dispatch( $request ); |
| 1593 | $this->assertEquals( 200, $response->get_status() ); |
| 1594 | } |
| 1595 | |
1589 | 1596 | public function test_update_comment_status() { |
1590 | 1597 | wp_set_current_user( self::$admin_id ); |
1591 | 1598 | |
diff --git a/tests/phpunit/tests/rest-api/rest-posts-controller.php b/tests/phpunit/tests/rest-api/rest-posts-controller.php
index cdd5ec0..8a0948f 100644
a
|
b
|
class WP_Test_REST_Posts_Controller extends WP_Test_REST_Post_Type_Controller_Te |
1556 | 1556 | $this->assertEquals( $params['excerpt'], $post->post_excerpt ); |
1557 | 1557 | } |
1558 | 1558 | |
| 1559 | public function test_update_item_no_change() { |
| 1560 | wp_set_current_user( self::$editor_id ); |
| 1561 | $request = new WP_REST_Request( 'PUT', sprintf( '/wp/v2/posts/%d', self::$post_id ) ); |
| 1562 | $response = $this->server->dispatch( $request ); |
| 1563 | $this->check_update_post_response( $response ); |
| 1564 | } |
| 1565 | |
1559 | 1566 | public function test_rest_update_post() { |
1560 | 1567 | wp_set_current_user( self::$editor_id ); |
1561 | 1568 | |
diff --git a/tests/phpunit/tests/rest-api/rest-tags-controller.php b/tests/phpunit/tests/rest-api/rest-tags-controller.php
index df2c030..702f6f8 100644
a
|
b
|
class WP_Test_REST_Tags_Controller extends WP_Test_REST_Controller_Testcase { |
542 | 542 | $this->assertEquals( 'new-slug', $data['slug'] ); |
543 | 543 | } |
544 | 544 | |
| 545 | public function test_update_item_no_change() { |
| 546 | wp_set_current_user( self::$administrator ); |
| 547 | $term = get_term_by( 'id', $this->factory->tag->create(), 'post_tag' ); |
| 548 | $request = new WP_REST_Request( 'PUT', '/wp/v2/tags/' . $term->term_id ); |
| 549 | $response = $this->server->dispatch( $request ); |
| 550 | $this->assertEquals( 200, $response->get_status() ); |
| 551 | } |
| 552 | |
545 | 553 | public function test_update_item_invalid_term() { |
546 | 554 | wp_set_current_user( self::$administrator ); |
547 | 555 | $request = new WP_REST_Request( 'POST', '/wp/v2/tags/' . REST_TESTS_IMPOSSIBLY_HIGH_NUMBER ); |
diff --git a/tests/phpunit/tests/rest-api/rest-users-controller.php b/tests/phpunit/tests/rest-api/rest-users-controller.php
index 09e11a6..6108a7b 100644
a
|
b
|
class WP_Test_REST_Users_Controller extends WP_Test_REST_Controller_Testcase { |
840 | 840 | $this->assertEquals( $pw_before, $user->user_pass ); |
841 | 841 | } |
842 | 842 | |
| 843 | public function test_update_item_no_change() { |
| 844 | $this->allow_user_to_manage_multisite(); |
| 845 | wp_set_current_user( self::$user ); |
| 846 | $request = new WP_REST_Request( 'PUT', sprintf( '/wp/v2/users/%d', self::$editor ) ); |
| 847 | $response = $this->server->dispatch( $request ); |
| 848 | $this->assertEquals( 200, $response->get_status() ); |
| 849 | } |
| 850 | |
843 | 851 | public function test_update_item_existing_email() { |
844 | 852 | $user1 = $this->factory->user->create( array( 'user_login' => 'test_json_user', 'user_email' => 'testjson@example.com' ) ); |
845 | 853 | $user2 = $this->factory->user->create( array( 'user_login' => 'test_json_user2', 'user_email' => 'testjson2@example.com' ) ); |