From d8a8de5290efe9e6dd01a2261b9894d722ac0940 Mon Sep 17 00:00:00 2001
From: Erick Hitter <git-contrib@ethitter.com>
Date: Sun, 5 Jun 2022 15:46:19 -0700
Subject: [PATCH] Tests: cover second parameter for `do_purge_excess`

---
 tests/test-purges.php | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/tests/test-purges.php b/tests/test-purges.php
index 305b3e1..e757071 100755
--- a/tests/test-purges.php
+++ b/tests/test-purges.php
@@ -108,4 +108,44 @@ class TestPurges extends WP_UnitTestCase {
 			'Failed to assert that response includes expected count of purged revisions.'
 		);
 	}
+
+	/**
+	 * Test revision purging with manual override (Gutenberg).
+	 */
+	public function test_purge_excess_gutenberg() {
+		$post_id    = $this->factory->post->create();
+		$iterations = 10;
+		$limit      = 4;
+
+		for ( $i = 0; $i < $iterations; $i++ ) {
+			wp_update_post(
+				array(
+					'ID'           => $post_id,
+					'post_content' => wp_rand(),
+				)
+			);
+		}
+
+		$revisions_to_purge = count( wp_get_post_revisions( $post_id ) );
+		$this->assertEquals(
+			$iterations,
+			$revisions_to_purge,
+			'Failed to assert that there are revisions to purge.'
+		);
+
+		$purge               = WP_Revisions_Control::get_instance()->do_purge_excess( $post_id, $limit );
+		$revisions_remaining = count( wp_get_post_revisions( $post_id ) );
+
+		$this->assertEquals(
+			4,
+			$revisions_remaining,
+			'Failed to assert that specified number of revisions were retained.'
+		);
+
+		$this->assertEquals(
+			6,
+			$purge['count'],
+			'Failed to assert that response includes expected count of purged revisions.'
+		);
+	}
 }
-- 
GitLab