From 7e8feefd441df75246b2cc87283b7ba02242a3e3 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Sat, 23 Jul 2022 15:40:10 +0000 Subject: [PATCH] Revisions: Correct the function name for retrieving the last revision ID and total count. Includes: * Renaming the function to `wp_get_last_revision_id_and_total_count()`. * Making the default value for `$post` consistent with `wp_get_post_revisions()`. * Making `WP_Error` codes more specific and using them in test assertions. * Adjusting the function description per the documentation standards. Follow-up to [53759]. Props JustinSainton, SergeyBiryukov. See #55857. git-svn-id: https://develop.svn.wordpress.org/trunk@53769 602fd350-edb4-49c9-b593-d223f7449a82 --- .../class-wp-rest-posts-controller.php | 5 ++-- src/wp-includes/revision.php | 16 ++++++------- tests/phpunit/tests/post/revisions.php | 24 ++++++++++--------- 3 files changed, 24 insertions(+), 21 deletions(-) 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 946f08eafa..72e938cf83 100644 --- 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 @@ -2026,7 +2026,7 @@ class WP_REST_Posts_Controller extends WP_REST_Controller { } if ( in_array( $post->post_type, array( 'post', 'page' ), true ) || post_type_supports( $post->post_type, 'revisions' ) ) { - $revision = wp_get_lastest_revision_id_and_total_count( $post->ID ); + $revision = wp_get_last_revision_id_and_total_count( $post->ID ); $revisions_count = ! is_wp_error( $revision ) ? $revision['count'] : 0; $links['version-history'] = array( @@ -2035,7 +2035,8 @@ class WP_REST_Posts_Controller extends WP_REST_Controller { ); if ( $revisions_count > 0 ) { - $last_revision = $revision['revision']; + $last_revision = $revision['revision']; + $links['predecessor-version'] = array( 'href' => rest_url( trailingslashit( $base ) . $post->ID . '/revisions/' . $last_revision ), 'id' => $last_revision, diff --git a/src/wp-includes/revision.php b/src/wp-includes/revision.php index 5f203fb730..a039c706fe 100644 --- a/src/wp-includes/revision.php +++ b/src/wp-includes/revision.php @@ -528,27 +528,27 @@ function wp_get_post_revisions( $post = 0, $args = null ) { } /** - * Get latest revision and count of revisions for a post. + * Returns the latest revision ID and count of revisions for a post. * * @since 6.1.0 * - * @param int|WP_Post|null $post Optional. Post ID or WP_Post object. Default is global $post. + * @param int|WP_Post $post Optional. Post ID or WP_Post object. Default is global $post. * @return WP_Error|array { - * Returns associative array with last revision and total count. + * Returns associative array with last revision ID and total count. * - * @type int $revision The last revision post id or 0 if non existing. - * @type int $count The total count of revisions for $post_id. + * @type int $revision The last revision post ID or 0 if no revisions exist. + * @type int $count The total count of revisions for the given post. * } */ -function wp_get_lastest_revision_id_and_total_count( $post = null ) { +function wp_get_last_revision_id_and_total_count( $post = 0 ) { $post = get_post( $post ); if ( ! $post ) { - return new WP_Error( 'revision_error', __( 'Invalid post.' ) ); + return new WP_Error( 'invalid_post', __( 'Invalid post.' ) ); } if ( ! wp_revisions_enabled( $post ) ) { - return new WP_Error( 'revision_error', __( 'Revisions not enabled.' ) ); + return new WP_Error( 'revisions_not_enabled', __( 'Revisions not enabled.' ) ); } $args = array( diff --git a/tests/phpunit/tests/post/revisions.php b/tests/phpunit/tests/post/revisions.php index 69feaa0125..66ac54a412 100644 --- a/tests/phpunit/tests/post/revisions.php +++ b/tests/phpunit/tests/post/revisions.php @@ -656,7 +656,7 @@ class Tests_Post_Revisions extends WP_UnitTestCase { } /** - * Tests that wp_get_lastest_revision_id_and_total_count() returns last revision id and total count. + * Tests that wp_get_last_revision_id_and_total_count() returns the last revision ID and total count. * * @ticket 55857 * @dataProvider data_wp_get_post_revisions_url @@ -674,36 +674,38 @@ class Tests_Post_Revisions extends WP_UnitTestCase { $post_revisions = wp_get_post_revisions( $post_id ); $last_post_revision = current( $post_revisions ); - $revision = wp_get_lastest_revision_id_and_total_count( $post_id ); + $revision = wp_get_last_revision_id_and_total_count( $post_id ); $this->assertSame( $last_post_revision->ID, $revision['revision'], - 'Failed asserting latest revision id.' + 'The last revision ID does not match.' ); $this->assertSame( count( $post_revisions ), $revision['count'], - 'Failed asserting total count of revision.' + 'The total count of revisions does not match.' ); } /** - * Tests that wp_get_lastest_revision_id_and_total_count() when no revisions. + * Tests that wp_get_last_revision_id_and_total_count() returns a WP_Error when no revisions exist. * * @ticket 55857 */ public function test_wp_get_last_revision_id_and_total_count_no_revisions() { - $revision = wp_get_lastest_revision_id_and_total_count( null ); - $this->assertWPError( $revision, 'Invalid Post, non existing revisions.' ); - $this->assertSame( $revision->get_error_message(), 'Invalid post.' ); + $revision = wp_get_last_revision_id_and_total_count( null ); + + $this->assertWPError( $revision, 'Invalid post, no revisions should exist.' ); + $this->assertSame( $revision->get_error_code(), 'invalid_post' ); add_filter( 'wp_revisions_to_keep', '__return_zero' ); $post_id = self::factory()->post->create(); - $revision = wp_get_lastest_revision_id_and_total_count( $post_id ); - $this->assertWPError( $revision, 'Revisions should be not enabled.' ); - $this->assertSame( $revision->get_error_message(), 'Revisions not enabled.' ); + $revision = wp_get_last_revision_id_and_total_count( $post_id ); + + $this->assertWPError( $revision, 'Revisions should not be enabled.' ); + $this->assertSame( $revision->get_error_code(), 'revisions_not_enabled' ); } /**