WikidataBuilder has uploaded a new change for review. ( 
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(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikidata 
refs/changes/34/368634/1

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: newchange
Gerrit-Change-Id: I74631188fef39787b1db7a5d04620ad814f832e5
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikidata
Gerrit-Branch: master
Gerrit-Owner: WikidataBuilder <[email protected]>

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

Reply via email to