Ladsgroup has uploaded a new change for review. https://gerrit.wikimedia.org/r/320320
Change subject: Fix LinkRendering bug in action=info in repo entity usage ...................................................................... Fix LinkRendering bug in action=info in repo entity usage Bug: T149598 Change-Id: I42049861cc3ea777a7e7d410e8f63fba6b26494e --- M repo/Wikibase.hooks.php M repo/includes/Hooks/InfoActionHookHandler.php M repo/tests/phpunit/includes/Hooks/InfoActionHookHandlerTest.php 3 files changed, 17 insertions(+), 45 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/20/320320/1 diff --git a/repo/Wikibase.hooks.php b/repo/Wikibase.hooks.php index fb38e90..3e93507 100644 --- a/repo/Wikibase.hooks.php +++ b/repo/Wikibase.hooks.php @@ -1170,14 +1170,12 @@ $entityIdLookup = $wikibaseRepo->getEntityIdLookup(); $siteLookup = $mediaWikiServices->getSiteLookup(); - $linkRender = $mediaWikiServices->getLinkRenderer(); $infoActionHookHandler = new InfoActionHookHandler( $namespaceChecker, $subscriptionLookup, $siteLookup, $entityIdLookup, - $linkRender, $context ); diff --git a/repo/includes/Hooks/InfoActionHookHandler.php b/repo/includes/Hooks/InfoActionHookHandler.php index a63a2fe..133c4b7 100644 --- a/repo/includes/Hooks/InfoActionHookHandler.php +++ b/repo/includes/Hooks/InfoActionHookHandler.php @@ -4,8 +4,6 @@ use Html; use IContextSource; -use Linker; -use MediaWiki\Linker\LinkRenderer; use SiteLookup; use Title; use Wikibase\Store\Sql\SqlSubscriptionLookup; @@ -41,11 +39,6 @@ private $entityIdLookup; /** - * @var LinkRenderer - */ - private $linkRenderer; - - /** * @var IContextSource */ private $context; @@ -55,14 +48,12 @@ SqlSubscriptionLookup $subscriptionLookup, SiteLookup $siteLookup, EntityIdLookup $entityIdLookup, - LinkRenderer $linkRenderer, IContextSource $context ) { $this->namespaceChecker = $namespaceChecker; $this->subscriptionLookup = $subscriptionLookup; $this->siteLookup = $siteLookup; $this->entityIdLookup = $entityIdLookup; - $this->linkRenderer = $linkRenderer; $this->context = $context; } @@ -99,7 +90,7 @@ } /** - * @param array $usage + * @param string[] $subscriptions * @param Title $title * * @return string HTML[] @@ -137,12 +128,16 @@ if ( !$site ) { return $subscription; } - if ( !$site->getInterwikiIds() ) { + + $url = $site->getPageUrl( 'Special:EntityUsage/' . $title->getText() ); + if ( !$url ) { return $subscription; } - - $title = Title::makeTitle( NS_SPECIAL, 'EntityUsage/' . $title->getText(), '', $site->getInterwikiIds()[0] ); - return $this->linkRenderer->makeLink( $title, $subscription ); + $element = Html::element( 'a', + [ 'href' => $url ], + $subscription + ); + return $element; } } diff --git a/repo/tests/phpunit/includes/Hooks/InfoActionHookHandlerTest.php b/repo/tests/phpunit/includes/Hooks/InfoActionHookHandlerTest.php index 864c610..638200f 100644 --- a/repo/tests/phpunit/includes/Hooks/InfoActionHookHandlerTest.php +++ b/repo/tests/phpunit/includes/Hooks/InfoActionHookHandlerTest.php @@ -2,8 +2,8 @@ namespace Wikibase\Repo\Tests\Hooks; +use Html; use IContextSource; -use MediaWiki\Linker\LinkRenderer; use RequestContext; use FileBasedSiteLookup; use Site; @@ -13,7 +13,6 @@ use Wikibase\DataModel\Entity\Item; use Wikibase\DataModel\Entity\ItemId; use Wikibase\Repo\Hooks\InfoActionHookHandler; -use Wikibase\Repo\WikibaseRepo; use Wikibase\Store\Sql\SqlSubscriptionLookup; /** @@ -39,11 +38,10 @@ } public function handleProvider() { - global $wgArticlePath, $wgServer; - - $url = $wgServer . $wgArticlePath; - $url = str_replace( '$1', 'en:Special:EntityUsage/', $url ); - + $url = 'https://en.wikipedia.org/wiki/Special%3AEntityUsage%2F'; + $elementDewiki = Html::element('a', [ 'href' => $url ], 'dewiki' ); + $elementEnwiki = Html::element('a', [ 'href' => $url ], 'enwiki' ); + $elementElwiki = Html::element('a', [ 'href' => $url ], 'elwiki' ); $context = $this->getContext(); $cases = []; @@ -53,7 +51,7 @@ 'header-properties' => [ [ $context->msg( 'wikibase-pageinfo-subscription' )->escaped(), - "<ul><li>$url dewiki</li><li>$url enwiki</li></ul>", + "<ul><li>$elementDewiki</li><li>$elementEnwiki</li></ul>", ], ] ], @@ -65,7 +63,7 @@ [ 'header-properties' => [ [ $context->msg( 'wikibase-pageinfo-subscription' )->escaped(), - "<ul><li>$url elwiki</li></ul>", + "<ul><li>$elementElwiki</li></ul>", ], ] ], @@ -131,21 +129,11 @@ ->method( 'getEntityIdForTitle' ) ->will( $this->returnValue( false ) ); - $linkRenderer = $this->getMockBuilder( LinkRenderer::class ) - ->disableOriginalConstructor() - ->setMethods( [ 'makeLink' ] ) - ->getMock(); - - $linkRenderer->expects( $this->any() ) - ->method( 'makeLink' ) - ->will( $this->returnCallback( [ $this, 'makeLink' ] ) ); - $hookHandler = new InfoActionHookHandler( $namespaceLookup, $subLookup, $siteLookup, $entityIdLookup, - $linkRenderer, $context ); @@ -186,17 +174,8 @@ public function getSite() { $site = new Site(); $site->addInterwikiId( 'en' ); + $site->setLinkPath( 'https://en.wikipedia.org/wiki/$1' ); return $site; - } - - /** - * @param Title $title - * @param string $text - * - * @return string HTML - */ - public function makeLink( Title $title, $text ) { - return $title->getFullURL() . ' ' . $text; } } -- To view, visit https://gerrit.wikimedia.org/r/320320 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I42049861cc3ea777a7e7d410e8f63fba6b26494e Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Ladsgroup <ladsgr...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits