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