jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/368634 )
Change subject: New Wikidata Build - 2017-07-31T10:00:01+0000
......................................................................
New Wikidata Build - 2017-07-31T10:00:01+0000
Change-Id: I74631188fef39787b1db7a5d04620ad814f832e5
---
M composer.lock
M extensions/Constraints/includes/ConstraintCheck/Checker/UniqueValueChecker.php
M extensions/Constraints/includes/ConstraintParameterRenderer.php
M
extensions/Constraints/tests/phpunit/Checker/ValueCountChecker/UniqueValueCheckerTest.php
M extensions/Wikibase/client/includes/Hooks/ChangesListLinesHandler.php
M extensions/Wikibase/client/includes/RecentChanges/ExternalChangeFactory.php
M
extensions/Wikibase/client/tests/phpunit/includes/RecentChanges/ChangeLineFormatterTest.php
M
extensions/Wikibase/client/tests/phpunit/includes/RecentChanges/ExternalChangeFactoryTest.php
M vendor/composer/installed.json
9 files changed, 104 insertions(+), 28 deletions(-)
Approvals:
WMDE-leszek: Looks good to me, approved
jenkins-bot: Verified
diff --git a/composer.lock b/composer.lock
index 12acc10..9bb2720 100644
--- a/composer.lock
+++ b/composer.lock
@@ -966,7 +966,7 @@
"source": {
"type": "git",
"url":
"https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQualityConstraints",
- "reference": "ebbaf106782b8e6c6639a6edcb02587b8e7bfeaf"
+ "reference": "1a936ad2688d6984ac936ea2a46c4a8cc807ff78"
},
"require": {
"php": ">=5.5.9",
@@ -1027,7 +1027,7 @@
"support": {
"issues":
"https://phabricator.wikimedia.org/project/profile/1202/"
},
- "time": "2017-07-28 20:48:18"
+ "time": "2017-07-29 13:58:43"
},
{
"name": "wikibase/data-model",
@@ -1540,12 +1540,12 @@
"source": {
"type": "git",
"url":
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git",
- "reference": "10974ed2f854d8590ef4feed325d32f190bf48b8"
+ "reference": "90bcc0a38f901e0acddb09ebd3b70bbd251fcb0a"
},
"dist": {
"type": "zip",
- "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/10974ed2f854d8590ef4feed325d32f190bf48b8",
- "reference": "10974ed2f854d8590ef4feed325d32f190bf48b8",
+ "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/90bcc0a38f901e0acddb09ebd3b70bbd251fcb0a",
+ "reference": "90bcc0a38f901e0acddb09ebd3b70bbd251fcb0a",
"shasum": ""
},
"require": {
@@ -1621,7 +1621,7 @@
"wikibaserepo",
"wikidata"
],
- "time": "2017-07-30 08:58:55"
+ "time": "2017-07-31 09:25:57"
},
{
"name": "wikibase/wikimedia-badges",
diff --git
a/extensions/Constraints/includes/ConstraintCheck/Checker/UniqueValueChecker.php
b/extensions/Constraints/includes/ConstraintCheck/Checker/UniqueValueChecker.php
index d3cfe1d..863f651 100644
---
a/extensions/Constraints/includes/ConstraintCheck/Checker/UniqueValueChecker.php
+++
b/extensions/Constraints/includes/ConstraintCheck/Checker/UniqueValueChecker.php
@@ -73,7 +73,7 @@
$status = CheckResult::STATUS_VIOLATION;
$message = wfMessage(
'wbqc-violation-message-unique-value' )
->numParams( count(
$otherEntities ) )
- ->rawParams(
$this->constraintParameterRenderer->formatItemIdList( $otherEntities,
Role::SUBJECT ) )
+ ->rawParams(
$this->constraintParameterRenderer->formatEntityIdList( $otherEntities,
Role::SUBJECT ) )
->escaped();
}
} else {
diff --git a/extensions/Constraints/includes/ConstraintParameterRenderer.php
b/extensions/Constraints/includes/ConstraintParameterRenderer.php
index 1cd9ec2..eb92403 100644
--- a/extensions/Constraints/includes/ConstraintParameterRenderer.php
+++ b/extensions/Constraints/includes/ConstraintParameterRenderer.php
@@ -275,6 +275,37 @@
}
/**
+ * Format a list of entity IDs.
+ *
+ * The returned array begins with an HTML list of the formatted entity
IDs
+ * and then contains all the individual formatted entity IDs.
+ *
+ * @param (EntityId|null)[] $entityIds (null elements are skipped)
+ * @param string|null $role one of the Role constants or null
+ * @return string[] HTML
+ */
+ public function formatEntityIdList( array $entityIds, $role = null ) {
+ if ( empty( $entityIds ) ) {
+ return [ '<ul></ul>' ];
+ }
+ $formattedEntityIds = [];
+ foreach ( $entityIds as $entityId ) {
+ if ( count( $formattedEntityIds ) >=
self::MAX_PARAMETER_ARRAY_LENGTH ) {
+ $formattedEntityIds[] = '...';
+ break;
+ }
+ if ( $entityId !== null ) {
+ $formattedEntityIds[] = $this->formatEntityId(
$entityId, $role );
+ }
+ }
+ array_unshift(
+ $formattedEntityIds,
+ '<ul><li>' . implode( '</li><li>', $formattedEntityIds
) . '</li></ul>'
+ );
+ return $formattedEntityIds;
+ }
+
+ /**
* Format a list of {@link ItemIdSnakValue}s (containing known values,
unknown values, and/or no values).
*
* The returned array begins with an HTML list of the formatted values
diff --git
a/extensions/Constraints/tests/phpunit/Checker/ValueCountChecker/UniqueValueCheckerTest.php
b/extensions/Constraints/tests/phpunit/Checker/ValueCountChecker/UniqueValueCheckerTest.php
index f7b342a..bdf5f62 100644
---
a/extensions/Constraints/tests/phpunit/Checker/ValueCountChecker/UniqueValueCheckerTest.php
+++
b/extensions/Constraints/tests/phpunit/Checker/ValueCountChecker/UniqueValueCheckerTest.php
@@ -68,6 +68,20 @@
$this->assertViolation( $checkResult,
'wbqc-violation-message-unique-value' );
}
+ public function testCheckUniqueValueConstraintInvalidWithPropertyId() {
+ $statement = new Statement( new PropertyValueSnak(
$this->uniquePropertyId, new EntityIdValue( new ItemId( 'Q6' ) ) ) );
+ $statement->setGuid( 'Q6$e35707be-4a84-61fe-9b52-623784a316a7'
);
+
+ $mock = $this->getSparqlHelperMockFindEntities( $statement, [
new PropertyId( 'P42' ) ] );
+
+ $this->checker = new UniqueValueChecker(
$this->getConstraintParameterRenderer(), $mock );
+
+ $entity = $this->lookup->getEntity( new ItemId( 'Q6' ) );
+
+ $checkResult = $this->checker->checkConstraint( $statement,
$this->getConstraintMock( [] ), $entity );
+ $this->assertViolation( $checkResult,
'wbqc-violation-message-unique-value' );
+ }
+
public function testCheckUniqueValueConstraintValid() {
$statement = new Statement( new PropertyValueSnak(
$this->uniquePropertyId, new EntityIdValue( new ItemId( 'Q1' ) ) ) );
$statement->setGuid( "Q1$56e6a474-4431-fb24-cc15-1d580e467559"
);
diff --git
a/extensions/Wikibase/client/includes/Hooks/ChangesListLinesHandler.php
b/extensions/Wikibase/client/includes/Hooks/ChangesListLinesHandler.php
index b9df543..73d69c3 100644
--- a/extensions/Wikibase/client/includes/Hooks/ChangesListLinesHandler.php
+++ b/extensions/Wikibase/client/includes/Hooks/ChangesListLinesHandler.php
@@ -49,7 +49,8 @@
$wikibaseClient = WikibaseClient::getDefaultInstance();
$changeFactory = new ExternalChangeFactory(
$wikibaseClient->getSettings()->getSetting(
'repoSiteId' ),
- $wikibaseClient->getContentLanguage()
+ $wikibaseClient->getContentLanguage(),
+ $wikibaseClient->getEntityIdParser()
);
$formatter = new ChangeLineFormatter(
$changesList->getUser(),
diff --git
a/extensions/Wikibase/client/includes/RecentChanges/ExternalChangeFactory.php
b/extensions/Wikibase/client/includes/RecentChanges/ExternalChangeFactory.php
index 4ddb7a6..4dcdfbb 100644
---
a/extensions/Wikibase/client/includes/RecentChanges/ExternalChangeFactory.php
+++
b/extensions/Wikibase/client/includes/RecentChanges/ExternalChangeFactory.php
@@ -2,11 +2,12 @@
namespace Wikibase\Client\RecentChanges;
-use InvalidArgumentException;
use Language;
use RecentChange;
use UnexpectedValueException;
-use Wikibase\DataModel\Entity\ItemId;
+use Wikibase\DataModel\Entity\EntityId;
+use Wikibase\DataModel\Entity\EntityIdParser;
+use Wikibase\DataModel\Entity\EntityIdParsingException;
/**
* @license GPL-2.0+
@@ -26,12 +27,23 @@
private $summaryLanguage;
/**
+ * @var EntityIdParser
+ */
+ private $idParser;
+
+ /**
* @param string $repoSiteId
* @param Language $summaryLanguage Language to use when generating
edit summaries
+ * @param EntityIdParser $idParser
*/
- public function __construct( $repoSiteId, Language $summaryLanguage ) {
+ public function __construct(
+ $repoSiteId,
+ Language $summaryLanguage,
+ EntityIdParser $idParser
+ ) {
$this->repoSiteId = $repoSiteId;
$this->summaryLanguage = $summaryLanguage;
+ $this->idParser = $idParser;
}
/**
@@ -52,11 +64,11 @@
// If a pre-formatted comment exists, pass it on.
$changeHtml = isset( $rc_params['comment-html'] ) ?
$rc_params['comment-html'] : null;
- $itemId = $this->extractItemId( $changeParams['object_id'] );
+ $entityId = $this->extractEntityId( $changeParams['object_id']
);
$changeType = $this->extractChangeType( $changeParams['type'] );
$rev = $this->newRevisionData( $recentChange, $changeParams,
$changeHtml );
- return new ExternalChange( $itemId, $rev, $changeType );
+ return new ExternalChange( $entityId, $rev, $changeType );
}
/**
@@ -144,13 +156,13 @@
* @param string $prefixedId
*
* @throws UnexpectedValueException
- * @return ItemId
+ * @return EntityId
*/
- private function extractItemId( $prefixedId ) {
+ private function extractEntityId( $prefixedId ) {
try {
- return new ItemId( $prefixedId );
- } catch ( InvalidArgumentException $ex ) {
- throw new UnexpectedValueException( 'Invalid $itemId
found for change.' );
+ return $this->idParser->parse( $prefixedId );
+ } catch ( EntityIdParsingException $ex ) {
+ throw new UnexpectedValueException( 'Invalid $entityId
found for change.' );
}
}
diff --git
a/extensions/Wikibase/client/tests/phpunit/includes/RecentChanges/ChangeLineFormatterTest.php
b/extensions/Wikibase/client/tests/phpunit/includes/RecentChanges/ChangeLineFormatterTest.php
index 84d9aab..388d717 100644
---
a/extensions/Wikibase/client/tests/phpunit/includes/RecentChanges/ChangeLineFormatterTest.php
+++
b/extensions/Wikibase/client/tests/phpunit/includes/RecentChanges/ChangeLineFormatterTest.php
@@ -16,6 +16,7 @@
use Wikibase\Client\RecentChanges\RecentChangeFactory;
use Wikibase\Client\RepoLinker;
use Wikibase\Client\WikibaseClient;
+use Wikibase\DataModel\Entity\BasicEntityIdParser;
/**
* @covers Wikibase\Client\RecentChanges\ChangeLineFormatter
@@ -61,7 +62,11 @@
$repoWikiId =
WikibaseClient::getDefaultInstance()->getSettings()->getSetting( 'repoSiteId' );
$changesList = ChangesList::newFromContext( $context );
- $changeFactory = new ExternalChangeFactory( $repoWikiId,
Language::factory( 'en' ) );
+ $changeFactory = new ExternalChangeFactory(
+ $repoWikiId,
+ Language::factory( 'en' ),
+ new BasicEntityIdParser()
+ );
$externalChange = $changeFactory->newFromRecentChange(
$recentChange );
$formatter = new ChangeLineFormatter(
@@ -105,7 +110,11 @@
// the wiki id against this setting.
$repoWikiId =
WikibaseClient::getDefaultInstance()->getSettings()->getSetting( 'repoSiteId' );
- $changeFactory = new ExternalChangeFactory( $repoWikiId,
Language::factory( 'en' ) );
+ $changeFactory = new ExternalChangeFactory(
+ $repoWikiId,
+ Language::factory( 'en' ),
+ new BasicEntityIdParser()
+ );
$externalChange = $changeFactory->newFromRecentChange(
$recentChange );
$data = [
@@ -181,7 +190,11 @@
// the wiki id against this setting.
$repoWikiId =
WikibaseClient::getDefaultInstance()->getSettings()->getSetting( 'repoSiteId' );
- $changeFactory = new ExternalChangeFactory( $repoWikiId,
Language::factory( 'en' ) );
+ $changeFactory = new ExternalChangeFactory(
+ $repoWikiId,
+ Language::factory( 'en' ),
+ new BasicEntityIdParser()
+ );
$externalChange = $changeFactory->newFromRecentChange(
$recentChange );
$data = [
diff --git
a/extensions/Wikibase/client/tests/phpunit/includes/RecentChanges/ExternalChangeFactoryTest.php
b/extensions/Wikibase/client/tests/phpunit/includes/RecentChanges/ExternalChangeFactoryTest.php
index adb0b84..b142898 100644
---
a/extensions/Wikibase/client/tests/phpunit/includes/RecentChanges/ExternalChangeFactoryTest.php
+++
b/extensions/Wikibase/client/tests/phpunit/includes/RecentChanges/ExternalChangeFactoryTest.php
@@ -7,6 +7,7 @@
use Wikibase\Client\RecentChanges\ExternalChange;
use Wikibase\Client\RecentChanges\ExternalChangeFactory;
use Wikibase\Client\RecentChanges\RevisionData;
+use Wikibase\DataModel\Entity\BasicEntityIdParser;
use Wikibase\DataModel\Entity\ItemId;
/**
@@ -24,7 +25,11 @@
class ExternalChangeFactoryTest extends \MediaWikiTestCase {
private function getExternalChangeFactory() {
- return new ExternalChangeFactory( 'testrepo',
Language::factory( 'qqx' ) );
+ return new ExternalChangeFactory(
+ 'testrepo',
+ Language::factory( 'qqx' ),
+ new BasicEntityIdParser()
+ );
}
public function testNewFromRecentChange_itemUpdated() {
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index ddb4da9..e140f6d 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -1380,12 +1380,12 @@
"source": {
"type": "git",
"url":
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git",
- "reference": "10974ed2f854d8590ef4feed325d32f190bf48b8"
+ "reference": "90bcc0a38f901e0acddb09ebd3b70bbd251fcb0a"
},
"dist": {
"type": "zip",
- "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/10974ed2f854d8590ef4feed325d32f190bf48b8",
- "reference": "10974ed2f854d8590ef4feed325d32f190bf48b8",
+ "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/90bcc0a38f901e0acddb09ebd3b70bbd251fcb0a",
+ "reference": "90bcc0a38f901e0acddb09ebd3b70bbd251fcb0a",
"shasum": ""
},
"require": {
@@ -1418,7 +1418,7 @@
"jakub-onderka/php-parallel-lint": ">=0.3 <0.10",
"wikibase/wikibase-codesniffer": "^0.1.0"
},
- "time": "2017-07-30 08:58:55",
+ "time": "2017-07-31 09:25:57",
"type": "mediawiki-extension",
"installation-source": "dist",
"autoload": {
@@ -1768,7 +1768,7 @@
"source": {
"type": "git",
"url":
"https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQualityConstraints",
- "reference": "ebbaf106782b8e6c6639a6edcb02587b8e7bfeaf"
+ "reference": "1a936ad2688d6984ac936ea2a46c4a8cc807ff78"
},
"require": {
"php": ">=5.5.9",
@@ -1784,7 +1784,7 @@
"satooshi/php-coveralls": "master-dev",
"wikibase/wikibase-codesniffer": "^0.1.0"
},
- "time": "2017-07-28 20:48:18",
+ "time": "2017-07-29 13:45:32",
"type": "mediawiki-extension",
"installation-source": "source",
"autoload": {
--
To view, visit https://gerrit.wikimedia.org/r/368634
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I74631188fef39787b1db7a5d04620ad814f832e5
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikidata
Gerrit-Branch: master
Gerrit-Owner: WikidataBuilder <[email protected]>
Gerrit-Reviewer: Addshore <[email protected]>
Gerrit-Reviewer: Aude <[email protected]>
Gerrit-Reviewer: Jonas Kress (WMDE) <[email protected]>
Gerrit-Reviewer: Tobias Gritschacher <[email protected]>
Gerrit-Reviewer: WMDE-leszek <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits