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