jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/400408 )
Change subject: Revision: Handle all return values of Title::newFromId ...................................................................... Revision: Handle all return values of Title::newFromId In Revision::getKnownCurrent, fail early when Title::newFromId returns null to avoid an uncatchable fatal error being triggered. RevisionStore#getKnownCurrentRevision requires that the title parameter be an instance of Title. This follows on from Ia4c20a91. Change-Id: I9bddafcc5df630d1dff1e2526194186cab7097e5 --- M includes/Revision.php M tests/phpunit/includes/RevisionDbTestBase.php 2 files changed, 22 insertions(+), 0 deletions(-) Approvals: Florianschmidtwelzow: Looks good to me, approved jenkins-bot: Verified diff --git a/includes/Revision.php b/includes/Revision.php index 8f36e88..b8b56a3 100644 --- a/includes/Revision.php +++ b/includes/Revision.php @@ -1204,6 +1204,10 @@ ? $pageIdOrTitle : Title::newFromID( $pageIdOrTitle ); + if ( !$title ) { + return false; + } + $record = self::getRevisionStore()->getKnownCurrentRevision( $title, $revId ); return $record ? new Revision( $record ) : false; } diff --git a/tests/phpunit/includes/RevisionDbTestBase.php b/tests/phpunit/includes/RevisionDbTestBase.php index 9ab76c8..bd0dea6 100644 --- a/tests/phpunit/includes/RevisionDbTestBase.php +++ b/tests/phpunit/includes/RevisionDbTestBase.php @@ -1363,6 +1363,24 @@ $this->assertEquals( $rev->getId(), $cachedRow->rev_id ); } + public function testNewKnownCurrent_withPageId() { + $db = wfGetDB( DB_MASTER ); + + $this->testPage->doEditContent( new WikitextContent( __METHOD__ ), __METHOD__ ); + $rev = $this->testPage->getRevision(); + + $pageId = $this->testPage->getId(); + + $newRev = Revision::newKnownCurrent( $db, $pageId, $rev->getId() ); + $this->assertRevEquals( $rev, $newRev ); + } + + public function testNewKnownCurrent_returnsFalseWhenTitleDoesntExist() { + $db = wfGetDB( DB_MASTER ); + + $this->assertFalse( Revision::newKnownCurrent( $db, 0 ) ); + } + public function provideUserCanBitfield() { yield [ 0, 0, [], null, true ]; // Bitfields match, user has no permissions -- To view, visit https://gerrit.wikimedia.org/r/400408 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I9bddafcc5df630d1dff1e2526194186cab7097e5 Gerrit-PatchSet: 3 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Phuedx <samsm...@wikimedia.org> Gerrit-Reviewer: Addshore <addshorew...@gmail.com> Gerrit-Reviewer: Daniel Kinzler <daniel.kinz...@wikimedia.de> Gerrit-Reviewer: Florianschmidtwelzow <florian.schmidt.stargatewis...@gmail.com> Gerrit-Reviewer: Phuedx <samsm...@wikimedia.org> Gerrit-Reviewer: Thiemo Kreuz (WMDE) <thiemo.kr...@wikimedia.de> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits