jenkins-bot has submitted this change and it was merged.

Change subject: Refactored special page dependency injection. Adopted table on 
special page to solve escaping issue.
......................................................................


Refactored special page dependency injection. Adopted table on special page to 
solve escaping issue.

Change-Id: I4a5dd56aa0bfd908016ea71cd0fbd6a34a2ad833
---
M WikibaseQualityConstraints.php
D includes/SpecialPageFactory.php
M specials/SpecialConstraintReport.php
D tests/phpunit/SpecialPageFactoryTest.php
M tests/phpunit/Specials/SpecialConstraintReportTest.php
5 files changed, 60 insertions(+), 214 deletions(-)

Approvals:
  Jonaskeutel: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/WikibaseQualityConstraints.php b/WikibaseQualityConstraints.php
index bb46986..a8079ed 100644
--- a/WikibaseQualityConstraints.php
+++ b/WikibaseQualityConstraints.php
@@ -26,7 +26,7 @@
        $GLOBALS['wgHooks']['UnitTestsList'][] = 
'WikibaseQualityConstraintsHooks::onUnitTestsList';
 
        // Initialize special pages
-       $GLOBALS['wgSpecialPages']['ConstraintReport'] = array( 
'WikibaseQuality\ConstraintReport\SpecialPageFactory', 
'newSpecialConstraintReport' );
+       $GLOBALS['wgSpecialPages']['ConstraintReport'] = 
'WikibaseQuality\ConstraintReport\Specials\SpecialConstraintReport::newFromGlobalState';
 
        // Define modules
     $remoteExtPathParts = explode(
diff --git a/includes/SpecialPageFactory.php b/includes/SpecialPageFactory.php
deleted file mode 100644
index 5754712..0000000
--- a/includes/SpecialPageFactory.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-
-namespace WikibaseQuality\ConstraintReport;
-
-use Wikibase\DataModel\Entity\EntityIdParser;
-use Wikibase\Lib\OutputFormatValueFormatterFactory;
-use Wikibase\Lib\Store\EntityLookup;
-use Wikibase\Lib\Store\EntityTitleLookup;
-use Wikibase\Lib\Store\TermLookup;
-use Wikibase\Repo\WikibaseRepo;
-use WikibaseQuality\ConstraintReport\ConstraintCheck\ConstraintChecker;
-use 
WikibaseQuality\ConstraintReport\ConstraintCheck\DelegatingConstraintChecker;
-use WikibaseQuality\ConstraintReport\Specials\SpecialConstraintReport;
-use 
WikibaseQuality\ConstraintReport\Violations\CheckResultToViolationTranslator;
-use WikibaseQuality\ExternalValidation\CrossCheck\CrossCheckInteractor;
-use 
WikibaseQuality\ExternalValidation\DumpMetaInformation\DumpMetaInformationRepo;
-use WikibaseQuality\ExternalValidation\Specials\SpecialCrossCheck;
-use WikibaseQuality\ExternalValidation\Specials\SpecialExternalDbs;
-use 
WikibaseQuality\ExternalValidation\Violations\CrossCheckResultToViolationTranslator;
-use WikibaseQuality\Violations\ViolationStore;
-use WikibaseQuality\WikibaseQualityFactory;
-
-
-/**
- * Class SpecialPageFactory
- * @package WikibaseQuality\ConstraintReport
- * @author BP2014N1
- * @license GNU GPL v2+
- */
-class SpecialPageFactory {
-
-       /**
-        * @var EntityLookup
-        */
-       private $entityLookup;
-
-       /**
-        * @var EntityTitleLookup
-        */
-       private $entityTitleLookup;
-
-       /**
-        * @var TermLookup
-        */
-       private $termLookup;
-
-       /**
-        * @var EntityIdParser
-        */
-       private $entityIdParser;
-
-       /**
-        * @var OutputFormatValueFormatterFactory
-        */
-       private $valueFormatterFactory;
-
-       /**
-        * @var DelegatingConstraintChecker
-        */
-       private $constraintChecker;
-
-       /**
-        * @var CheckResultToViolationTranslator
-        */
-       private $checkResultToViolationTranslator;
-
-       /**
-        * @var ViolationStore
-        */
-       private $violationStore;
-
-
-       private static function newFromGlobalState() {
-               $wikibaseQuality = WikibaseQualityFactory::getDefaultInstance();
-               $constraintReportFactory = 
ConstraintReportFactory::getDefaultInstance();
-               $wikibaseRepo = WikibaseRepo::getDefaultInstance();
-
-               return new self(
-                       $wikibaseRepo->getEntityLookup(),
-                       $wikibaseRepo->getTermLookup(),
-                       $wikibaseRepo->getEntityTitleLookup(),
-                       $wikibaseRepo->getEntityIdParser(),
-                       $wikibaseRepo->getValueFormatterFactory(),
-                       $constraintReportFactory->getConstraintChecker(),
-                       
$constraintReportFactory->getCheckResultToViolationTranslator(),
-                       $wikibaseQuality->getViolationStore()
-               );
-       }
-
-       /**
-        * @return SpecialCrossCheck
-        */
-       public static function newSpecialConstraintReport() {
-               return 
self::newFromGlobalState()->createSpecialConstraintReport();
-       }
-
-       /**
-        * @param EntityLookup $entityLookup
-        * @param TermLookup $termLookup
-        * @param EntityTitleLookup $entityTitleLookup
-        * @param EntityIdParser $entityIdParser
-        * @param OutputFormatValueFormatterFactory $valueFormatterFactory
-        * @param DelegatingConstraintChecker $constraintChecker
-        * @param CheckResultToViolationTranslator 
$checkResultToViolationTranslator
-        * @param ViolationStore $violationStore
-        */
-       public function __construct( EntityLookup $entityLookup, TermLookup 
$termLookup, EntityTitleLookup $entityTitleLookup,
-                                                                EntityIdParser 
$entityIdParser, OutputFormatValueFormatterFactory $valueFormatterFactory,
-                                                                
DelegatingConstraintChecker $constraintChecker, 
CheckResultToViolationTranslator $checkResultToViolationTranslator,
-                                                                ViolationStore 
$violationStore ) {
-               $this->entityLookup = $entityLookup;
-               $this->termLookup = $termLookup;
-               $this->entityTitleLookup = $entityTitleLookup;
-               $this->entityIdParser = $entityIdParser;
-               $this->valueFormatterFactory = $valueFormatterFactory;
-               $this->constraintChecker = $constraintChecker;
-               $this->checkResultToViolationTranslator = 
$checkResultToViolationTranslator;
-               $this->violationStore = $violationStore;
-       }
-
-       /**
-        * @return SpecialCrossCheck
-        */
-       public function createSpecialConstraintReport() {
-               return new SpecialConstraintReport(
-                       $this->entityLookup,
-                       $this->termLookup,
-                       $this->entityTitleLookup,
-                       $this->entityIdParser,
-                       $this->valueFormatterFactory,
-                       $this->constraintChecker,
-                       $this->checkResultToViolationTranslator,
-                       $this->violationStore
-               );
-       }
-}
\ No newline at end of file
diff --git a/specials/SpecialConstraintReport.php 
b/specials/SpecialConstraintReport.php
index 15f7c1c..d860273 100644
--- a/specials/SpecialConstraintReport.php
+++ b/specials/SpecialConstraintReport.php
@@ -7,11 +7,8 @@
 use ValueFormatters\FormatterOptions;
 use ValueFormatters\ValueFormatter;
 use Wikibase\Lib\EntityIdFormatter;
-use Wikibase\Lib\EntityIdHtmlLinkFormatter;
-use Wikibase\Lib\EntityIdLabelFormatter;
 use HTMLForm;
 use Wikibase\DataModel\Entity\EntityIdParser;
-use Wikibase\Lib\LanguageNameLookup;
 use Wikibase\Lib\OutputFormatValueFormatterFactory;
 use Wikibase\Lib\SnakFormatter;
 use Wikibase\Lib\Store\EntityLookup;
@@ -30,14 +27,20 @@
 use Wikibase\DataModel\Entity\ItemId;
 use Wikibase\DataModel\Entity\PropertyId;
 use Wikibase\Lib\Store\EntityTitleLookup;
+use Wikibase\Repo\EntityIdHtmlLinkFormatterFactory;
+use Wikibase\Repo\EntityIdLabelFormatterFactory;
+use Wikibase\Repo\WikibaseRepo;
 use 
WikibaseQuality\ConstraintReport\ConstraintCheck\DelegatingConstraintChecker;
 use WikibaseQuality\ConstraintReport\ConstraintCheck\Result\CheckResult;
+use WikibaseQuality\ConstraintReport\ConstraintReportFactory;
 use WikibaseQuality\ConstraintReport\EvaluateConstraintReportJob;
 use WikibaseQuality\ConstraintReport\EvaluateConstraintReportJobService;
 use 
WikibaseQuality\ConstraintReport\Violations\CheckResultToViolationTranslator;
 use WikibaseQuality\Html\HtmlTableBuilder;
+use WikibaseQuality\Html\HtmlTableCellBuilder;
 use WikibaseQuality\Html\HtmlTableHeaderBuilder;
 use WikibaseQuality\Violations\ViolationStore;
+use WikibaseQuality\WikibaseQualityFactory;
 
 
 /**
@@ -111,19 +114,49 @@
         */
        private $violationStore;
 
+       public static function newFromGlobalState()     {
+               $wikibaseQuality = WikibaseQualityFactory::getDefaultInstance();
+               $constraintReportFactory = 
ConstraintReportFactory::getDefaultInstance();
+               $wikibaseRepo = WikibaseRepo::getDefaultInstance();
+
+               return new self(
+                       $wikibaseRepo->getEntityLookup(),
+                       $wikibaseRepo->getTermLookup(),
+                       $wikibaseRepo->getEntityTitleLookup(),
+                       new EntityIdLabelFormatterFactory(),
+                       $wikibaseRepo->getEntityIdHtmlLinkFormatterFactory(),
+                       $wikibaseRepo->getEntityIdParser(),
+                       $wikibaseRepo->getValueFormatterFactory(),
+                       $constraintReportFactory->getConstraintChecker(),
+                       
$constraintReportFactory->getCheckResultToViolationTranslator(),
+                       $wikibaseQuality->getViolationStore()
+               );
+       }
+
        /**
         * @param EntityLookup $entityLookup
         * @param TermLookup $termLookup
         * @param EntityTitleLookup $entityTitleLookup
+        * @param EntityIdLabelFormatterFactory $entityIdLabelFormatterFactory
+        * @param EntityIdHtmlLinkFormatterFactory 
$entityIdHtmlLinkFormatterFactory
         * @param EntityIdParser $entityIdParser
         * @param OutputFormatValueFormatterFactory $valueFormatterFactory
         * @param DelegatingConstraintChecker $constraintChecker
         * @param CheckResultToViolationTranslator 
$checkResultToViolationTranslator
         * @param ViolationStore $violationStore
         */
-       public function __construct( EntityLookup $entityLookup, TermLookup 
$termLookup, EntityTitleLookup $entityTitleLookup, EntityIdParser 
$entityIdParser,
-                                                                
OutputFormatValueFormatterFactory $valueFormatterFactory, 
DelegatingConstraintChecker $constraintChecker,
-                                                                
CheckResultToViolationTranslator $checkResultToViolationTranslator, 
ViolationStore $violationStore ) {
+       public function __construct(
+               EntityLookup $entityLookup,
+               TermLookup $termLookup,
+               EntityTitleLookup $entityTitleLookup,
+               EntityIdLabelFormatterFactory $entityIdLabelFormatterFactory,
+               EntityIdHtmlLinkFormatterFactory 
$entityIdHtmlLinkFormatterFactory,
+               EntityIdParser $entityIdParser,
+               OutputFormatValueFormatterFactory $valueFormatterFactory,
+               DelegatingConstraintChecker $constraintChecker,
+               CheckResultToViolationTranslator 
$checkResultToViolationTranslator,
+               ViolationStore $violationStore
+       ) {
                parent::__construct( 'ConstraintReport' );
 
                $this->entityLookup = $entityLookup;
@@ -135,12 +168,8 @@
                $this->dataValueFormatter = 
$valueFormatterFactory->getValueFormatter( SnakFormatter::FORMAT_HTML, 
$formatterOptions );
 
                $labelLookup = new LanguageLabelDescriptionLookup( $termLookup, 
$this->getLanguage()->getCode() );
-               $this->entityIdLabelFormatter = new EntityIdLabelFormatter( 
$labelLookup );
-               $this->entityIdLinkFormatter = new EntityIdHtmlLinkFormatter(
-                       $labelLookup,
-                       $this->entityTitleLookup,
-                       new LanguageNameLookup()
-               );
+               $this->entityIdLabelFormatter = 
$entityIdLabelFormatterFactory->getEntityIdFormater( $labelLookup );
+               $this->entityIdLinkFormatter = 
$entityIdHtmlLinkFormatterFactory->getEntityIdFormater( $labelLookup );
 
                $this->constraintChecker = $constraintChecker;
                $this->checkResultToViolationTranslator = 
$checkResultToViolationTranslator;
@@ -382,9 +411,21 @@
                        // Append cells
                        $table->appendRow(
                                array (
-                                       $statusColumn,
-                                       $claimColumn,
-                                       $constraintColumn
+                                       new HtmlTableCellBuilder(
+                                               $statusColumn,
+                                               array(),
+                                               true
+                                       ),
+                                       new HtmlTableCellBuilder(
+                                               $claimColumn,
+                                               array(),
+                                               true
+                                       ),
+                                       new HtmlTableCellBuilder(
+                                               $constraintColumn,
+                                               array(),
+                                               true
+                                       )
                                )
                        );
                }
diff --git a/tests/phpunit/SpecialPageFactoryTest.php 
b/tests/phpunit/SpecialPageFactoryTest.php
deleted file mode 100644
index 590fe70..0000000
--- a/tests/phpunit/SpecialPageFactoryTest.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-namespace WikibaseQuality\ConstraintReport\Tests;
-
-
-use WikibaseQuality\ConstraintReport\SpecialPageFactory;
-
-
-/**
- * @covers WikibaseQuality\ConstraintReport\SpecialPageFactory
- *
- * @group WikibaseQuality
- *
- * @author BP2014N1
- * @license GNU GPL v2+
- */
-class SpecialPageFactoryTest extends \MediaWikiTestCase {
-
-       public function testNewSpecialConstraintReport() {
-               $specialPage = SpecialPageFactory::newSpecialConstraintReport();
-
-               $this->assertInstanceOf( 
'WikibaseQuality\ConstraintReport\Specials\SpecialConstraintReport', 
$specialPage );
-       }
-
-       public function testCreateSpecialConstraintReport() {
-               $specialPage = 
$this->getFactory()->createSpecialConstraintReport();
-
-               $this->assertInstanceOf( 
'WikibaseQuality\ConstraintReport\Specials\SpecialConstraintReport', 
$specialPage );
-       }
-
-       /**
-        * @return SpecialPageFactory
-        */
-       private function getFactory() {
-               $entityLookup = $this->getMockForAbstractClass( 
'Wikibase\Lib\Store\EntityLookup' );
-               $termLookup = $this->getMockForAbstractClass( 
'Wikibase\Lib\Store\TermLookup' );
-               $entityTitleLookup = $this->getMockForAbstractClass( 
'Wikibase\Lib\Store\EntityTitleLookup' );
-               $entityIdParser = $this->getMockForAbstractClass( 
'Wikibase\DataModel\Entity\EntityIdParser' );
-               $valueFormatterFactory = $this->getMockBuilder( 
'Wikibase\Lib\OutputFormatValueFormatterFactory' )
-                       ->disableOriginalConstructor()
-                       ->getMock();
-               $constraintChecker = $this->getMockBuilder( 
'WikibaseQuality\ConstraintReport\ConstraintCheck\DelegatingConstraintChecker' )
-                       ->disableOriginalConstructor()
-                       ->getMock();
-               $checkResultToViolationTranslator = $this->getMockBuilder( 
'WikibaseQuality\ConstraintReport\Violations\CheckResultToViolationTranslator' )
-                       ->disableOriginalConstructor()
-                       ->getMock();
-               $violationStore = $this->getMockForAbstractClass( 
'WikibaseQuality\Violations\ViolationStore' );
-
-
-               return new SpecialPageFactory(
-                       $entityLookup,
-                       $termLookup,
-                       $entityTitleLookup,
-                       $entityIdParser,
-                       $valueFormatterFactory,
-                       $constraintChecker,
-                       $checkResultToViolationTranslator,
-                       $violationStore
-               );
-       }
-}
diff --git a/tests/phpunit/Specials/SpecialConstraintReportTest.php 
b/tests/phpunit/Specials/SpecialConstraintReportTest.php
index a03f936..8eacae6 100644
--- a/tests/phpunit/Specials/SpecialConstraintReportTest.php
+++ b/tests/phpunit/Specials/SpecialConstraintReportTest.php
@@ -2,6 +2,7 @@
 
 namespace 
WikibaseQuality\ConstraintReport\Tests\Specials\SpecialConstraintReport;
 
+use Wikibase\Repo\EntityIdLabelFormatterFactory;
 use Wikibase\Test\SpecialPageTestBase;
 use DataValues\StringValue;
 use Wikibase\DataModel\Entity\Item;
@@ -75,6 +76,8 @@
                        $wikibaseRepo->getEntityLookup(),
                        $wikibaseRepo->getTermLookup(),
                        $wikibaseRepo->getEntityTitleLookup(),
+                       new EntityIdLabelFormatterFactory(),
+                       $wikibaseRepo->getEntityIdHtmlLinkFormatterFactory(),
                        $wikibaseRepo->getEntityIdParser(),
                        $wikibaseRepo->getValueFormatterFactory(),
                        $constraintReportFactory->getConstraintChecker(),

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I4a5dd56aa0bfd908016ea71cd0fbd6a34a2ad833
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/WikibaseQualityConstraints
Gerrit-Branch: master
Gerrit-Owner: Soeren.oldag <[email protected]>
Gerrit-Reviewer: Andreasburmeister <[email protected]>
Gerrit-Reviewer: Dominic.sauer <[email protected]>
Gerrit-Reviewer: Jonaskeutel <[email protected]>
Gerrit-Reviewer: Soeren.oldag <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to