jenkins-bot has submitted this change and it was merged.

Change subject: Prevent ItemContentTest::newRedirect from leaking state
......................................................................


Prevent ItemContentTest::newRedirect from leaking state

This was creating real titles, thus leaking data into global
caches, like LinkCache.

Change-Id: Idf961c21926be09b9be68635ab919e42f0a4f768
---
M repo/tests/phpunit/includes/Content/ItemContentTest.php
1 file changed, 25 insertions(+), 3 deletions(-)

Approvals:
  Daniel Kinzler: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/repo/tests/phpunit/includes/Content/ItemContentTest.php 
b/repo/tests/phpunit/includes/Content/ItemContentTest.php
index 4eae670..150e64e 100644
--- a/repo/tests/phpunit/includes/Content/ItemContentTest.php
+++ b/repo/tests/phpunit/includes/Content/ItemContentTest.php
@@ -68,9 +68,31 @@
         * @return ItemContent
         */
        private function newRedirect( ItemId $itemId, ItemId $targetId ) {
-               // FIXME: Use the respective EntityHandler instead of going via 
the global title lookup!
-               $titleLookup = 
WikibaseRepo::getDefaultInstance()->getEntityTitleLookup();
-               $title = $titleLookup->getTitleForId( $targetId );
+               $nsLookup = 
WikibaseRepo::getDefaultInstance()->getEntityNamespaceLookup();
+               $itemNs = $nsLookup->getEntityNamespace( 
CONTENT_MODEL_WIKIBASE_ITEM );
+
+               $title = $this->getMock( Title::class );
+               $title->expects( $this->any() )
+                       ->method( 'getFullText' )
+                       ->will( $this->returnValue( 
$targetId->getSerialization() ) );
+               $title->expects( $this->any() )
+                       ->method( 'getText' )
+                       ->will( $this->returnValue( 
$targetId->getSerialization() ) );
+               $title->expects( $this->any() )
+                       ->method( 'isRedirect' )
+                       ->will( $this->returnValue( false ) );
+               $title->expects( $this->any() )
+                       ->method( 'getNamespace' )
+                       ->will( $this->returnValue( $itemNs ) );
+               $title->expects( $this->any() )
+                       ->method( 'equals' )
+                       ->will( $this->returnCallback( function( Title $other ) 
use ( $targetId ) {
+                               // XXX: Ignores namespaces
+                               return $other->getText() === 
$targetId->getSerialization();
+                       } ) );
+               $title->expects( $this->any() )
+                       ->method( 'getLinkURL' )
+                       ->will( $this->returnValue( 'http://foo.bar/' . 
$targetId->getSerialization() ) );
 
                return ItemContent::newFromRedirect( new EntityRedirect( 
$itemId, $targetId ), $title );
        }

-- 
To view, visit https://gerrit.wikimedia.org/r/277216
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Idf961c21926be09b9be68635ab919e42f0a4f768
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Hoo man <[email protected]>
Gerrit-Reviewer: Daniel Kinzler <[email protected]>
Gerrit-Reviewer: JanZerebecki <[email protected]>
Gerrit-Reviewer: Thiemo Mättig (WMDE) <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to