Adrian Lang has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/180132

Change subject: Inject SiteLinksView into ItemView
......................................................................

Inject SiteLinksView into ItemView

Change-Id: I2a5bf0b8538655d1b71521760968e91d8d7cc441
---
M repo/includes/View/EntityViewFactory.php
M repo/includes/View/ItemView.php
M repo/tests/phpunit/includes/View/ItemViewTest.php
3 files changed, 30 insertions(+), 17 deletions(-)


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

diff --git a/repo/includes/View/EntityViewFactory.php 
b/repo/includes/View/EntityViewFactory.php
index 6467dfb..338a109 100644
--- a/repo/includes/View/EntityViewFactory.php
+++ b/repo/includes/View/EntityViewFactory.php
@@ -98,7 +98,22 @@
                // @fixme support more entity types
                switch ( $entityType ) {
                        case 'item':
-                               return new ItemView( $fingerprintView, 
$claimsView, $language, $this->siteLinkGroups, $editable );
+                               // FIXME: Inject this
+                               $siteLinksView = new SiteLinksView(
+                                       
WikibaseRepo::getDefaultInstance()->getSiteStore()->getSites(),
+                                       $this->sectionEditLinkGenerator,
+                                       $this->entityLookup,
+                                       $language->getCode()
+                               );
+
+                               return new ItemView(
+                                       $fingerprintView,
+                                       $claimsView,
+                                       $language,
+                                       $siteLinksView,
+                                       $this->siteLinkGroups,
+                                       $editable
+                               );
                        case 'property':
                                return new PropertyView( $fingerprintView, 
$claimsView, $language, $editable );
                }
diff --git a/repo/includes/View/ItemView.php b/repo/includes/View/ItemView.php
index 96f8620..907f578 100644
--- a/repo/includes/View/ItemView.php
+++ b/repo/includes/View/ItemView.php
@@ -6,7 +6,6 @@
 use Language;
 use Wikibase\DataModel\Entity\Item;
 use Wikibase\EntityRevision;
-use Wikibase\Repo\WikibaseRepo;
 
 /**
  * Class for creating views for Item instances.
@@ -26,11 +25,17 @@
        private $siteLinkGroups;
 
        /**
+        * @var SiteLinksView
+        */
+       private $siteLinksView;
+
+       /**
         * @see EntityView::__construct
         *
         * @param FingerprintView $fingerprintView
         * @param ClaimsView $claimsView
         * @param Language $language
+        * @param SiteLinksView $siteLinksView
         * @param string[] $siteLinkGroups
         * @param bool $editable
         */
@@ -38,12 +43,14 @@
                FingerprintView $fingerprintView,
                ClaimsView $claimsView,
                Language $language,
+               SiteLinksView $siteLinksView,
                array $siteLinkGroups,
-               $editable  = true
+               $editable = true
        ) {
                parent::__construct( $fingerprintView, $claimsView, $language, 
$editable );
 
                $this->siteLinkGroups = $siteLinkGroups;
+               $this->siteLinksView = $siteLinksView;
        }
 
        /**
@@ -95,21 +102,9 @@
         * @return string
         */
        protected function getHtmlForSiteLinks( Item $item ) {
-               $wikibaseRepo = WikibaseRepo::getDefaultInstance();
-
-               // FIXME: Inject this
-               $siteLinksView = new SiteLinksView(
-                       $wikibaseRepo->getSiteStore()->getSites(),
-                       new SectionEditLinkGenerator(),
-                       $wikibaseRepo->getEntityLookup(),
-                       $this->language->getCode()
-               );
-
-               $itemId = $item->getId();
-
-               return $siteLinksView->getHtml(
+               return $this->siteLinksView->getHtml(
                        $item->getSiteLinks(),
-                       $itemId,
+                       $item->getId(),
                        $this->siteLinkGroups,
                        $this->editable
                );
diff --git a/repo/tests/phpunit/includes/View/ItemViewTest.php 
b/repo/tests/phpunit/includes/View/ItemViewTest.php
index 1c2738c..a33c2c0 100644
--- a/repo/tests/phpunit/includes/View/ItemViewTest.php
+++ b/repo/tests/phpunit/includes/View/ItemViewTest.php
@@ -55,6 +55,9 @@
                                ->disableOriginalConstructor()
                                ->getMock(),
                        $this->getMock( 'Language' ),
+                       $this->getMockBuilder( 
'Wikibase\Repo\View\SiteLinksView' )
+                               ->disableOriginalConstructor()
+                               ->getMock(),
                        array()
                );
 

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2a5bf0b8538655d1b71521760968e91d8d7cc441
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Adrian Lang <[email protected]>

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

Reply via email to