Ladsgroup has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/331935 )

Change subject: Inject SpecialSetSiteLink dependencies
......................................................................

Inject SpecialSetSiteLink dependencies

Bug: T155205
Change-Id: I6eef4a15872606dd9d7ef4cec50bb04501669cbd
---
M repo/Wikibase.php
M repo/includes/Specials/SpecialSetSiteLink.php
M repo/tests/phpunit/includes/Specials/SpecialSetSiteLinkTest.php
3 files changed, 61 insertions(+), 20 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/35/331935/1

diff --git a/repo/Wikibase.php b/repo/Wikibase.php
index 47039a3..915f913 100644
--- a/repo/Wikibase.php
+++ b/repo/Wikibase.php
@@ -274,7 +274,27 @@
        $wgSpecialPages['SetAliases'] = 
Wikibase\Repo\Specials\SpecialSetAliases::class;
        $wgSpecialPages['SetLabelDescriptionAliases']
                = 
Wikibase\Repo\Specials\SpecialSetLabelDescriptionAliases::class;
-       $wgSpecialPages['SetSiteLink'] = 
Wikibase\Repo\Specials\SpecialSetSiteLink::class;
+       $wgSpecialPages['SetSiteLink'] = function() {
+               $wikibaseRepo = 
\Wikibase\Repo\WikibaseRepo::getDefaultInstance();
+               $siteLookup = $wikibaseRepo->getSiteLookup();
+               $settings = $wikibaseRepo->getSettings();
+
+               $siteLinkChangeOpFactory = 
$wikibaseRepo->getChangeOpFactoryProvider()->getSiteLinkChangeOpFactory();
+               $siteLinkTargetProvider = new 
\Wikibase\Repo\SiteLinkTargetProvider(
+                       $siteLookup,
+                       $settings->getSetting( 'specialSiteLinkGroups' )
+               );
+
+               $labelDescriptionLookupFactory = 
$wikibaseRepo->getLanguageFallbackLabelDescriptionLookupFactory();
+               return new Wikibase\Repo\Specials\SpecialSetSiteLink(
+                       $settings->getSetting( 'badgeItems' ),
+                       $settings->getSetting( 'siteLinkGroups' ),
+                       $siteLinkChangeOpFactory,
+                       $siteLinkTargetProvider,
+                       $labelDescriptionLookupFactory,
+                       $siteLookup
+               );
+       };
        $wgSpecialPages['EntitiesWithoutLabel'] = array(
                Wikibase\Repo\Specials\SpecialEntitiesWithoutPageFactory::class,
                'newSpecialEntitiesWithoutLabel'
diff --git a/repo/includes/Specials/SpecialSetSiteLink.php 
b/repo/includes/Specials/SpecialSetSiteLink.php
index 4c6d853..02c9691 100644
--- a/repo/includes/Specials/SpecialSetSiteLink.php
+++ b/repo/includes/Specials/SpecialSetSiteLink.php
@@ -14,7 +14,6 @@
 use Wikibase\DataModel\Entity\ItemId;
 use Wikibase\Lib\Store\LanguageFallbackLabelDescriptionLookupFactory;
 use Wikibase\Repo\SiteLinkTargetProvider;
-use Wikibase\Repo\WikibaseRepo;
 use Wikibase\Summary;
 
 /**
@@ -79,26 +78,29 @@
        private $siteLookup;
 
        /**
-        * @since 0.4
+        * @param SiteLookup $siteLookup
+        * @param array $badgeItems
+        * @param array $siteLinkGroups
+        * @param SiteLinkChangeOpFactory $siteLinkChangeOpFactory
+        * @param SiteLinkTargetProvider $siteLinkTargetProvider
+        * @param LanguageFallbackLabelDescriptionLookupFactory 
$labelDescriptionLookupFactory
         */
-       public function __construct() {
+       public function __construct(
+               array $badgeItems,
+               array $siteLinkGroups,
+               SiteLinkChangeOpFactory $siteLinkChangeOpFactory,
+               SiteLinkTargetProvider $siteLinkTargetProvider,
+               LanguageFallbackLabelDescriptionLookupFactory 
$labelDescriptionLookupFactory,
+               SiteLookup $siteLookup
+       ) {
                parent::__construct( 'SetSiteLink' );
 
-               $wikibaseRepo = WikibaseRepo::getDefaultInstance();
-               $settings = $wikibaseRepo->getSettings();
-
-               $this->siteLookup = $wikibaseRepo->getSiteLookup();
-
-               $this->badgeItems = $settings->getSetting( 'badgeItems' );
-               $this->siteLinkGroups = $settings->getSetting( 'siteLinkGroups' 
);
-
-               $this->siteLinkChangeOpFactory = 
$wikibaseRepo->getChangeOpFactoryProvider()->getSiteLinkChangeOpFactory();
-               $this->siteLinkTargetProvider = new SiteLinkTargetProvider(
-                       $this->siteLookup,
-                       $settings->getSetting( 'specialSiteLinkGroups' )
-               );
-
-               $this->labelDescriptionLookupFactory = 
$wikibaseRepo->getLanguageFallbackLabelDescriptionLookupFactory();
+               $this->badgeItems = $badgeItems;
+               $this->siteLinkGroups = $siteLinkGroups;
+               $this->siteLinkChangeOpFactory = $siteLinkChangeOpFactory;
+               $this->siteLinkTargetProvider = $siteLinkTargetProvider;
+               $this->labelDescriptionLookupFactory = 
$labelDescriptionLookupFactory;
+               $this->siteLookup = $siteLookup;
        }
 
        public function doesWrites() {
diff --git a/repo/tests/phpunit/includes/Specials/SpecialSetSiteLinkTest.php 
b/repo/tests/phpunit/includes/Specials/SpecialSetSiteLinkTest.php
index 7538e6d..7cbce77 100644
--- a/repo/tests/phpunit/includes/Specials/SpecialSetSiteLinkTest.php
+++ b/repo/tests/phpunit/includes/Specials/SpecialSetSiteLinkTest.php
@@ -10,6 +10,7 @@
 use Wikibase\DataModel\Entity\EntityRedirect;
 use Wikibase\DataModel\Entity\Item;
 use Wikibase\DataModel\Entity\ItemId;
+use Wikibase\Repo\SiteLinkTargetProvider;
 use Wikibase\Repo\Specials\SpecialSetSiteLink;
 use Wikibase\Repo\WikibaseRepo;
 
@@ -88,7 +89,25 @@
        private static $oldBadgeItemsSetting;
 
        protected function newSpecialPage() {
-               return new SpecialSetSiteLink();
+               $wikibaseRepo = WikibaseRepo::getDefaultInstance();
+               $siteLookup = $wikibaseRepo->getSiteLookup();
+               $settings = $wikibaseRepo->getSettings();
+
+               $siteLinkChangeOpFactory = 
$wikibaseRepo->getChangeOpFactoryProvider()->getSiteLinkChangeOpFactory();
+               $siteLinkTargetProvider = new SiteLinkTargetProvider(
+                       $siteLookup,
+                       $settings->getSetting( 'specialSiteLinkGroups' )
+               );
+
+               $labelDescriptionLookupFactory = 
$wikibaseRepo->getLanguageFallbackLabelDescriptionLookupFactory();
+               return new SpecialSetSiteLink(
+                       $settings->getSetting( 'badgeItems' ),
+                       $settings->getSetting( 'siteLinkGroups' ),
+                       $siteLinkChangeOpFactory,
+                       $siteLinkTargetProvider,
+                       $labelDescriptionLookupFactory,
+                       $siteLookup
+               );
        }
 
        protected function setUp() {

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6eef4a15872606dd9d7ef4cec50bb04501669cbd
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