From c4878eb281ec2e029b0f579c122296cfc2c89784 Mon Sep 17 00:00:00 2001 From: addshore Date: Mon, 4 Dec 2017 16:39:49 +0100 Subject: [PATCH] Tests for WikiPage::updateIfNewerOn This method is deprecated but due to refactoring we should still test it. Change-Id: I171ab731fff48ddd9fa54ef433881154377a2c7f --- .../includes/page/WikiPageDbTestBase.php | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/tests/phpunit/includes/page/WikiPageDbTestBase.php b/tests/phpunit/includes/page/WikiPageDbTestBase.php index 9d349b7c48..1a4b82043d 100644 --- a/tests/phpunit/includes/page/WikiPageDbTestBase.php +++ b/tests/phpunit/includes/page/WikiPageDbTestBase.php @@ -1545,4 +1545,71 @@ more stuff $this->assertFalse( $result ); } + /** + * @covers WikiPage::updateIfNewerOn + */ + public function testUpdateIfNewerOn_olderRevision() { + $user = $this->getTestSysop()->getUser(); + $page = $this->createPage( __METHOD__, 'StartText' ); + $initialRevision = $page->getRevision(); + + $olderTimeStamp = wfTimestamp( + TS_MW, + wfTimestamp( TS_UNIX, $initialRevision->getTimestamp() ) - 1 + ); + + $olderRevison = new Revision( + [ + 'id' => 9989, + 'page' => $page->getId(), + 'title' => $page->getTitle(), + 'comment' => __METHOD__, + 'minor_edit' => true, + 'text' => __METHOD__ . '-text', + 'len' => strlen( __METHOD__ . '-text' ), + 'user' => $user->getId(), + 'user_text' => $user->getName(), + 'timestamp' => $olderTimeStamp, + 'content_model' => CONTENT_MODEL_WIKITEXT, + 'content_format' => CONTENT_FORMAT_WIKITEXT, + ] + ); + + $result = $page->updateIfNewerOn( $this->db, $olderRevison ); + $this->assertFalse( $result ); + } + + /** + * @covers WikiPage::updateIfNewerOn + */ + public function testUpdateIfNewerOn_newerRevision() { + $user = $this->getTestSysop()->getUser(); + $page = $this->createPage( __METHOD__, 'StartText' ); + $initialRevision = $page->getRevision(); + + $newerTimeStamp = wfTimestamp( + TS_MW, + wfTimestamp( TS_UNIX, $initialRevision->getTimestamp() ) + 1 + ); + + $newerRevision = new Revision( + [ + 'id' => 9989, + 'page' => $page->getId(), + 'title' => $page->getTitle(), + 'comment' => __METHOD__, + 'minor_edit' => true, + 'text' => __METHOD__ . '-text', + 'len' => strlen( __METHOD__ . '-text' ), + 'user' => $user->getId(), + 'user_text' => $user->getName(), + 'timestamp' => $newerTimeStamp, + 'content_model' => CONTENT_MODEL_WIKITEXT, + 'content_format' => CONTENT_FORMAT_WIKITEXT, + ] + ); + $result = $page->updateIfNewerOn( $this->db, $newerRevision ); + $this->assertTrue( $result ); + } + } -- 2.20.1