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

Reply via email to