Hoo man has uploaded a new change for review. https://gerrit.wikimedia.org/r/176269
Change subject: Update Wikibase and WikibaseDataModel ...................................................................... Update Wikibase and WikibaseDataModel Change-Id: Ic3d71792cf9980f6557ca8ff17ee327397dff56b --- M composer.lock M extensions/Wikibase/lib/resources/jquery.wikibase/jquery.wikibase.entityview.js M extensions/Wikibase/repo/config/Wikibase.default.php M extensions/Wikibase/repo/i18n/en.json M extensions/Wikibase/repo/includes/ItemView.php M extensions/Wikibase/repo/includes/PropertyView.php M extensions/Wikibase/repo/includes/View/ClaimsView.php M extensions/Wikibase/repo/includes/View/EntityViewFactory.php M vendor/composer/autoload_files.php M vendor/composer/autoload_psr4.php M vendor/composer/installed.json M vendor/wikibase/data-model/RELEASE-NOTES.md M vendor/wikibase/data-model/WikibaseDataModel.php M vendor/wikibase/data-model/src/Claim/Claim.php M vendor/wikibase/data-model/src/Entity/Property.php M vendor/wikibase/data-model/src/Statement/Statement.php M vendor/wikibase/data-model/src/Statement/StatementList.php M vendor/wikibase/data-model/tests/unit/Statement/StatementListTest.php 18 files changed, 242 insertions(+), 222 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikidata refs/changes/69/176269/1 diff --git a/composer.lock b/composer.lock index 950e593..e3fe9fa 100644 --- a/composer.lock +++ b/composer.lock @@ -897,16 +897,16 @@ }, { "name": "wikibase/data-model", - "version": "2.4.0", + "version": "2.4.1", "source": { "type": "git", "url": "https://github.com/wmde/WikibaseDataModel.git", - "reference": "66de8e091eeb93bd201d9fdf52ebda958fae5b2a" + "reference": "6223a24ac1df8688c0d429995ebe71ba37e26cd5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wmde/WikibaseDataModel/zipball/66de8e091eeb93bd201d9fdf52ebda958fae5b2a", - "reference": "66de8e091eeb93bd201d9fdf52ebda958fae5b2a", + "url": "https://api.github.com/repos/wmde/WikibaseDataModel/zipball/6223a24ac1df8688c0d429995ebe71ba37e26cd5", + "reference": "6223a24ac1df8688c0d429995ebe71ba37e26cd5", "shasum": "" }, "require": { @@ -947,7 +947,7 @@ "wikibase", "wikidata" ], - "time": "2014-11-23 00:54:35" + "time": "2014-11-26 21:29:26" }, { "name": "wikibase/data-model-javascript", @@ -1188,12 +1188,12 @@ "source": { "type": "git", "url": "https://github.com/wikimedia/mediawiki-extensions-Wikibase.git", - "reference": "e8d02191319edc1f8c1821fb8c7adfa68cb20e2d" + "reference": "9a20e61a5c862a31bb7da1de661691f73e740124" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/e8d02191319edc1f8c1821fb8c7adfa68cb20e2d", - "reference": "e8d02191319edc1f8c1821fb8c7adfa68cb20e2d", + "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/9a20e61a5c862a31bb7da1de661691f73e740124", + "reference": "9a20e61a5c862a31bb7da1de661691f73e740124", "shasum": "" }, "require": { @@ -1259,7 +1259,7 @@ "wikibaserepo", "wikidata" ], - "time": "2014-11-25 19:41:13" + "time": "2014-11-27 14:51:02" }, { "name": "wikibase/wikimedia-badges", diff --git a/extensions/Wikibase/lib/resources/jquery.wikibase/jquery.wikibase.entityview.js b/extensions/Wikibase/lib/resources/jquery.wikibase/jquery.wikibase.entityview.js index dbdb1d4..2e7eabd 100644 --- a/extensions/Wikibase/lib/resources/jquery.wikibase/jquery.wikibase.entityview.js +++ b/extensions/Wikibase/lib/resources/jquery.wikibase/jquery.wikibase.entityview.js @@ -105,7 +105,7 @@ var entityType = this.options.value.getType(); if( entityType === 'item' - || entityType === 'property' && mw.config.get( 'wbExperimentalFeatures' ) + || entityType === 'property' && this.element.find( '.wb-claimlistview' ).length === 1 ) { this._initClaims(); } diff --git a/extensions/Wikibase/repo/config/Wikibase.default.php b/extensions/Wikibase/repo/config/Wikibase.default.php index 1eb1e3d..8187aa1 100644 --- a/extensions/Wikibase/repo/config/Wikibase.default.php +++ b/extensions/Wikibase/repo/config/Wikibase.default.php @@ -94,6 +94,8 @@ 'useRedirectTargetColumn' => true, + 'displayStatementsOnProperties' => true, + 'conceptBaseUri' => function() { $uri = $GLOBALS['wgServer']; $uri = preg_replace( '!^//!', 'http://', $uri ); diff --git a/extensions/Wikibase/repo/i18n/en.json b/extensions/Wikibase/repo/i18n/en.json index 5b82521..42b79a6 100644 --- a/extensions/Wikibase/repo/i18n/en.json +++ b/extensions/Wikibase/repo/i18n/en.json @@ -48,9 +48,7 @@ "wikibase-description-input-help-message": "Enter a short description for this entity in $1.", "wikibase-fingerprintgroupview-input-help-message": "Enter a label of this entity, a short description and aliases per language.", "wikibase-fingerprintview-input-help-message": "Enter the label of this entity, a short description and aliases in $1.", - "wikibase-claims": "Claims", "wikibase-statements": "Statements", - "wikibase-attributes": "Attributes", "wikibase-terms": "In other languages", "wikibase-sitelinkgroupview-input-help-message": "Add a site link by specifying a site and a page of that site, edit or remove existing site links.", "wikibase-sitelinks-empty": "No page is linked to this item yet.", diff --git a/extensions/Wikibase/repo/includes/ItemView.php b/extensions/Wikibase/repo/includes/ItemView.php index e506d21..f791ebd 100644 --- a/extensions/Wikibase/repo/includes/ItemView.php +++ b/extensions/Wikibase/repo/includes/ItemView.php @@ -35,8 +35,7 @@ $html = parent::getMainHtml( $entityRevision, $entityInfo, $editable ); $html .= $this->claimsView->getHtml( $item->getStatements()->toArray(), - $entityInfo, - 'wikibase-statements' + $entityInfo ); return $html; diff --git a/extensions/Wikibase/repo/includes/PropertyView.php b/extensions/Wikibase/repo/includes/PropertyView.php index 6e8786b..40105fa 100644 --- a/extensions/Wikibase/repo/includes/PropertyView.php +++ b/extensions/Wikibase/repo/includes/PropertyView.php @@ -6,6 +6,9 @@ use InvalidArgumentException; use Wikibase\DataModel\Entity\Property; use Wikibase\Repo\WikibaseRepo; +use Wikibase\Repo\View\FingerprintView; +use Wikibase\Repo\View\ClaimsView; +use Language; /** * Class for creating views for Property instances. @@ -18,6 +21,23 @@ * @author H. Snater < mediaw...@snater.com > */ class PropertyView extends EntityView { + + /** + * @var bool + */ + private $displayStatementsOnProperties; + + /** + * @param FingerprintView $fingerprintView + * @param ClaimsView $claimsView + * @param Language $language + * @param bool $displayStatementsOnProperties + */ + public function __construct( FingerprintView $fingerprintView, ClaimsView $claimsView, Language $language, $displayStatementsOnProperties ) { + parent::__construct($fingerprintView, $claimsView, $language); + + $this->displayStatementsOnProperties = $displayStatementsOnProperties; + } /** * @see EntityView::getMainHtml @@ -36,12 +56,10 @@ $html = parent::getMainHtml( $entityRevision, $entityInfo, $editable ); $html .= $this->getHtmlForDataType( $this->getDataType( $property ) ); - if ( defined( 'WB_EXPERIMENTAL_FEATURES' ) && WB_EXPERIMENTAL_FEATURES ) { - // @fixme Property::getClaims no longer returns any statements for properties! + if ( $this->displayStatementsOnProperties ) { $html .= $this->claimsView->getHtml( $property->getStatements()->toArray(), - $entityInfo, - 'wikibase-attributes' + $entityInfo ); } diff --git a/extensions/Wikibase/repo/includes/View/ClaimsView.php b/extensions/Wikibase/repo/includes/View/ClaimsView.php index 6ba6369..451c9e4 100644 --- a/extensions/Wikibase/repo/includes/View/ClaimsView.php +++ b/extensions/Wikibase/repo/includes/View/ClaimsView.php @@ -5,12 +5,8 @@ use Linker; use Wikibase\ClaimHtmlGenerator; use Wikibase\DataModel\Claim\Claim; -use Wikibase\DataModel\Entity\EntityId; -use Wikibase\DataModel\Entity\Property; use Wikibase\DataModel\Snak\Snak; -use Wikibase\Lib\Store\EntityInfoBuilderFactory; use Wikibase\Lib\Store\EntityTitleLookup; -use Wikibase\ReferencedEntitiesFinder; /** * Generates HTML to display claims. @@ -67,10 +63,9 @@ * * @param Claim[] $claims the claims to render * @param array $entityInfo - * @param string $heading the message key of the heading * @return string */ - public function getHtml( array $claims, array $entityInfo, $heading = 'wikibase-claims' ) { + public function getHtml( array $claims, array $entityInfo ) { // aggregate claims by properties $claimsByProperty = $this->groupClaimsByProperties( $claims ); @@ -82,7 +77,7 @@ $claimgrouplistviewHtml = wfTemplate( 'wb-claimgrouplistview', $claimsHtml, '' ); // TODO: Add link to SpecialPage that allows adding a new claim. - $sectionHeading = $this->getHtmlForSectionHeading( $heading ); + $sectionHeading = $this->getHtmlForSectionHeading( 'wikibase-statements' ); // FIXME: claimgrouplistview should be the topmost claims related template $html = wfTemplate( 'wb-claimlistview', $claimgrouplistviewHtml, '', '' ); return $sectionHeading . $html; diff --git a/extensions/Wikibase/repo/includes/View/EntityViewFactory.php b/extensions/Wikibase/repo/includes/View/EntityViewFactory.php index 89e3759..92056c0 100644 --- a/extensions/Wikibase/repo/includes/View/EntityViewFactory.php +++ b/extensions/Wikibase/repo/includes/View/EntityViewFactory.php @@ -21,6 +21,7 @@ use Wikibase\Repo\View\FingerprintView; use Wikibase\Repo\View\SectionEditLinkGenerator; use Wikibase\Repo\View\SnakHtmlGenerator; +use Wikibase\Repo\WikibaseRepo; /** * @since 0.5 @@ -85,7 +86,10 @@ if ( $entityType === 'item' ) { return new ItemView( $fingerprintView, $claimsView, $language ); } elseif ( $entityType === 'property' ) { - return new PropertyView( $fingerprintView, $claimsView, $language ); + $displayStatementsOnProperties = WikibaseRepo::getDefaultInstance()->getSettings() + ->getSetting( 'displayStatementsOnProperties' ); + + return new PropertyView( $fingerprintView, $claimsView, $language, $displayStatementsOnProperties ); } throw new InvalidArgumentException( 'No EntityView for entity type: ' . $entityType ); diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php index d7aeaca..c507edd 100644 --- a/vendor/composer/autoload_files.php +++ b/vendor/composer/autoload_files.php @@ -12,15 +12,15 @@ $vendorDir . '/serialization/serialization/Serialization.php', $vendorDir . '/diff/diff/Diff.php', $vendorDir . '/data-values/javascript/DataValuesJavascript.php', - $vendorDir . '/wikibase/data-model/WikibaseDataModel.php', $vendorDir . '/data-values/time/Time.php', $vendorDir . '/data-values/number/Number.php', $vendorDir . '/data-values/geo/Geo.php', + $vendorDir . '/wikibase/data-model/WikibaseDataModel.php', $vendorDir . '/wikibase/data-model-javascript/init.php', $vendorDir . '/wikibase/serialization-javascript/init.php', $baseDir . '/extensions/ValueView/ValueView.php', $vendorDir . '/data-values/data-types/DataTypes.php', $vendorDir . '/data-values/validators/Validators.php', - $baseDir . '/extensions/Wikibase/Wikibase.composer.php', $baseDir . '/extensions/WikimediaBadges/WikimediaBadges.php', + $baseDir . '/extensions/Wikibase/Wikibase.composer.php', ); diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index 2f4f533..14dd8b9 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -9,7 +9,7 @@ 'Wikidata\\' => array($baseDir . '/src'), 'Wikibase\\Repo\\View\\' => array($baseDir . '/extensions/Wikibase/repo/includes/View'), 'Wikibase\\InternalSerialization\\' => array($vendorDir . '/wikibase/internal-serialization/src'), - 'Wikibase\\DataModel\\' => array($vendorDir . '/wikibase/data-model/src', $vendorDir . '/wikibase/data-model-serialization/src'), + 'Wikibase\\DataModel\\' => array($vendorDir . '/wikibase/data-model-serialization/src', $vendorDir . '/wikibase/data-model/src'), 'ValueValidators\\' => array($vendorDir . '/data-values/validators/src'), 'Serializers\\' => array($vendorDir . '/serialization/serialization/src/Serializers'), 'PropertySuggester\\' => array($baseDir . '/extensions/PropertySuggester/src/PropertySuggester'), diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index e619d70..c8f1e8a 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -536,62 +536,6 @@ ] }, { - "name": "wikibase/data-model", - "version": "2.4.0", - "version_normalized": "2.4.0.0", - "source": { - "type": "git", - "url": "https://github.com/wmde/WikibaseDataModel.git", - "reference": "66de8e091eeb93bd201d9fdf52ebda958fae5b2a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/wmde/WikibaseDataModel/zipball/66de8e091eeb93bd201d9fdf52ebda958fae5b2a", - "reference": "66de8e091eeb93bd201d9fdf52ebda958fae5b2a", - "shasum": "" - }, - "require": { - "data-values/data-values": "~0.1|~1.0", - "diff/diff": "~1.0", - "php": ">=5.3.0" - }, - "time": "2014-11-23 00:54:35", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.4.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "WikibaseDataModel.php" - ], - "psr-4": { - "Wikibase\\DataModel\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0+" - ], - "authors": [ - { - "name": "Jeroen De Dauw", - "email": "jeroended...@gmail.com", - "homepage": "http://jeroendedauw.com", - "role": "Developer" - } - ], - "description": "PHP implementation of the Wikibase DataModel", - "homepage": "https://github.com/wmde/WikibaseDataModel", - "keywords": [ - "DataModel", - "wikibase", - "wikidata" - ] - }, - { "name": "wikibase/data-model-serialization", "version": "1.2.0", "version_normalized": "1.2.0.0", @@ -1171,87 +1115,6 @@ ] }, { - "name": "wikibase/wikibase", - "version": "dev-wmf/1.25wmf10", - "version_normalized": "dev-wmf/1.25wmf10", - "source": { - "type": "git", - "url": "https://github.com/wikimedia/mediawiki-extensions-Wikibase.git", - "reference": "e8d02191319edc1f8c1821fb8c7adfa68cb20e2d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/e8d02191319edc1f8c1821fb8c7adfa68cb20e2d", - "reference": "e8d02191319edc1f8c1821fb8c7adfa68cb20e2d", - "shasum": "" - }, - "require": { - "data-values/common": "~0.2.0", - "data-values/data-types": "~0.4.0", - "data-values/data-values": "~1.0.0", - "data-values/geo": "~1.0", - "data-values/interfaces": "~0.1.4", - "data-values/javascript": "~0.6.0", - "data-values/number": "~0.4.0", - "data-values/serialization": "~1.0", - "data-values/time": "~0.6.0", - "data-values/validators": "~0.1.0", - "data-values/value-view": "~0.8.1", - "diff/diff": "~1.0", - "php": ">=5.3.2", - "wikibase/data-model": "~2.4", - "wikibase/data-model-javascript": "~1.0", - "wikibase/data-model-serialization": "~1.2", - "wikibase/easyrdf_lite": "~0.8.1", - "wikibase/internal-serialization": "~1.3", - "wikibase/serialization-javascript": "~2.0" - }, - "conflict": { - "mediawiki/mediawiki": "<1.23" - }, - "time": "2014-11-25 19:41:13", - "type": "mediawiki-extension", - "installation-source": "dist", - "autoload": { - "files": [ - "Wikibase.composer.php" - ], - "classmap": [ - "client/includes/", - "client/WikibaseClient.hooks.php", - "client/tests/phpunit/", - "lib/includes/", - "lib/WikibaseLib.hooks.php", - "lib/tests/phpunit/", - "repo/includes/", - "repo/maintenance/", - "repo/tests/phpunit/", - "repo/Wikibase.hooks.php" - ], - "psr-4": { - "Wikibase\\Repo\\View\\": "repo/includes/View" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0+" - ], - "authors": [ - { - "name": "The Wikidata team" - } - ], - "description": "Structured data repository for MediaWiki", - "homepage": "http://wikiba.se", - "keywords": [ - "wikibase", - "wikibaseclient", - "wikibaselib", - "wikibaserepo", - "wikidata" - ] - }, - { "name": "wikibase/wikimedia-badges", "version": "dev-master", "version_normalized": "9999999-dev", @@ -1351,5 +1214,142 @@ "source": "https://github.com/wmde/Wikidata.org/tree/master", "issues": "https://github.com/wmde/Wikidata.org/issues" } + }, + { + "name": "wikibase/data-model", + "version": "2.4.1", + "version_normalized": "2.4.1.0", + "source": { + "type": "git", + "url": "https://github.com/wmde/WikibaseDataModel.git", + "reference": "6223a24ac1df8688c0d429995ebe71ba37e26cd5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wmde/WikibaseDataModel/zipball/6223a24ac1df8688c0d429995ebe71ba37e26cd5", + "reference": "6223a24ac1df8688c0d429995ebe71ba37e26cd5", + "shasum": "" + }, + "require": { + "data-values/data-values": "~0.1|~1.0", + "diff/diff": "~1.0", + "php": ">=5.3.0" + }, + "time": "2014-11-26 21:29:26", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "WikibaseDataModel.php" + ], + "psr-4": { + "Wikibase\\DataModel\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0+" + ], + "authors": [ + { + "name": "Jeroen De Dauw", + "email": "jeroended...@gmail.com", + "homepage": "http://jeroendedauw.com", + "role": "Developer" + } + ], + "description": "PHP implementation of the Wikibase DataModel", + "homepage": "https://github.com/wmde/WikibaseDataModel", + "keywords": [ + "DataModel", + "wikibase", + "wikidata" + ] + }, + { + "name": "wikibase/wikibase", + "version": "dev-wmf/1.25wmf10", + "version_normalized": "dev-wmf/1.25wmf10", + "source": { + "type": "git", + "url": "https://github.com/wikimedia/mediawiki-extensions-Wikibase.git", + "reference": "9a20e61a5c862a31bb7da1de661691f73e740124" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/9a20e61a5c862a31bb7da1de661691f73e740124", + "reference": "9a20e61a5c862a31bb7da1de661691f73e740124", + "shasum": "" + }, + "require": { + "data-values/common": "~0.2.0", + "data-values/data-types": "~0.4.0", + "data-values/data-values": "~1.0.0", + "data-values/geo": "~1.0", + "data-values/interfaces": "~0.1.4", + "data-values/javascript": "~0.6.0", + "data-values/number": "~0.4.0", + "data-values/serialization": "~1.0", + "data-values/time": "~0.6.0", + "data-values/validators": "~0.1.0", + "data-values/value-view": "~0.8.1", + "diff/diff": "~1.0", + "php": ">=5.3.2", + "wikibase/data-model": "~2.4", + "wikibase/data-model-javascript": "~1.0", + "wikibase/data-model-serialization": "~1.2", + "wikibase/easyrdf_lite": "~0.8.1", + "wikibase/internal-serialization": "~1.3", + "wikibase/serialization-javascript": "~2.0" + }, + "conflict": { + "mediawiki/mediawiki": "<1.23" + }, + "time": "2014-11-27 14:51:02", + "type": "mediawiki-extension", + "installation-source": "source", + "autoload": { + "files": [ + "Wikibase.composer.php" + ], + "classmap": [ + "client/includes/", + "client/WikibaseClient.hooks.php", + "client/tests/phpunit/", + "lib/includes/", + "lib/WikibaseLib.hooks.php", + "lib/tests/phpunit/", + "repo/includes/", + "repo/maintenance/", + "repo/tests/phpunit/", + "repo/Wikibase.hooks.php" + ], + "psr-4": { + "Wikibase\\Repo\\View\\": "repo/includes/View" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0+" + ], + "authors": [ + { + "name": "The Wikidata team" + } + ], + "description": "Structured data repository for MediaWiki", + "homepage": "http://wikiba.se", + "keywords": [ + "wikibase", + "wikibaseclient", + "wikibaselib", + "wikibaserepo", + "wikidata" + ] } ] diff --git a/vendor/wikibase/data-model/RELEASE-NOTES.md b/vendor/wikibase/data-model/RELEASE-NOTES.md index 171135e..504ef14 100644 --- a/vendor/wikibase/data-model/RELEASE-NOTES.md +++ b/vendor/wikibase/data-model/RELEASE-NOTES.md @@ -1,5 +1,9 @@ # Wikibase DataModel release notes +## Version 2.4.1 (2014-11-26) + +* Fixed `StatementList` not reindexing array keys + ## Version 2.4.0 (2014-11-23) * `Property` now implements the deprecated claim related methods defined in `Entity` diff --git a/vendor/wikibase/data-model/WikibaseDataModel.php b/vendor/wikibase/data-model/WikibaseDataModel.php index 5ab56f6..cfcea62 100644 --- a/vendor/wikibase/data-model/WikibaseDataModel.php +++ b/vendor/wikibase/data-model/WikibaseDataModel.php @@ -12,7 +12,7 @@ return 1; } -define( 'WIKIBASE_DATAMODEL_VERSION', '2.4.0' ); +define( 'WIKIBASE_DATAMODEL_VERSION', '2.4.1' ); if ( defined( 'MEDIAWIKI' ) ) { call_user_func( function() { diff --git a/vendor/wikibase/data-model/src/Claim/Claim.php b/vendor/wikibase/data-model/src/Claim/Claim.php index 7f196eb..0ee7c2c 100644 --- a/vendor/wikibase/data-model/src/Claim/Claim.php +++ b/vendor/wikibase/data-model/src/Claim/Claim.php @@ -63,11 +63,11 @@ /** * @param Snak $mainSnak - * @param null|Snaks $qualifiers + * @param Snaks|null $qualifiers */ public function __construct( Snak $mainSnak, Snaks $qualifiers = null ) { $this->mainSnak = $mainSnak; - $this->qualifiers = $qualifiers === null ? new SnakList() : $qualifiers; + $this->qualifiers = $qualifiers ?: new SnakList(); } /** diff --git a/vendor/wikibase/data-model/src/Entity/Property.php b/vendor/wikibase/data-model/src/Entity/Property.php index dfcb2bb..87b6f28 100644 --- a/vendor/wikibase/data-model/src/Entity/Property.php +++ b/vendor/wikibase/data-model/src/Entity/Property.php @@ -42,11 +42,16 @@ * @param string $dataTypeId * @param StatementList|null $statements Since 1.1 */ - public function __construct( PropertyId $id = null, Fingerprint $fingerprint, $dataTypeId, StatementList $statements = null ) { + public function __construct( + PropertyId $id = null, + Fingerprint $fingerprint, + $dataTypeId, + StatementList $statements = null + ) { $this->id = $id; $this->fingerprint = $fingerprint; $this->setDataTypeId( $dataTypeId ); - $this->statements = $statements === null ? new StatementList() : $statements; + $this->statements = $statements ?: new StatementList(); } /** @@ -125,8 +130,7 @@ return new self( null, Fingerprint::newEmpty(), - $dataTypeId, - new StatementList() + $dataTypeId ); } diff --git a/vendor/wikibase/data-model/src/Statement/Statement.php b/vendor/wikibase/data-model/src/Statement/Statement.php index 4b58ca5..cb42c69 100644 --- a/vendor/wikibase/data-model/src/Statement/Statement.php +++ b/vendor/wikibase/data-model/src/Statement/Statement.php @@ -48,7 +48,7 @@ */ public function __construct( Claim $claim, ReferenceList $references = null ) { $this->setClaim( $claim ); - $this->references = $references === null ? new ReferenceList() : $references; + $this->references = $references ?: new ReferenceList(); } /** diff --git a/vendor/wikibase/data-model/src/Statement/StatementList.php b/vendor/wikibase/data-model/src/Statement/StatementList.php index 5f2c222..db843d2 100644 --- a/vendor/wikibase/data-model/src/Statement/StatementList.php +++ b/vendor/wikibase/data-model/src/Statement/StatementList.php @@ -41,19 +41,6 @@ * @throws InvalidArgumentException */ public function __construct( $statements = array() ) { - $this->assertAreStatements( $statements ); - - if ( is_array( $statements ) ) { - $this->statements = $statements; - } - else { - foreach ( $statements as $statement ) { - $this->statements[] = $statement; - } - } - } - - private function assertAreStatements( $statements ) { if ( !is_array( $statements ) && !( $statements instanceof Traversable ) ) { throw new InvalidArgumentException( '$statements must be an array or an instance of Traversable' ); } @@ -62,6 +49,8 @@ if ( !( $statement instanceof Statement ) ) { throw new InvalidArgumentException( 'Every element in $statements must be an instance of Statement' ); } + + $this->statements[] = $statement; } } diff --git a/vendor/wikibase/data-model/tests/unit/Statement/StatementListTest.php b/vendor/wikibase/data-model/tests/unit/Statement/StatementListTest.php index 9f9261a..9ca2187 100644 --- a/vendor/wikibase/data-model/tests/unit/Statement/StatementListTest.php +++ b/vendor/wikibase/data-model/tests/unit/Statement/StatementListTest.php @@ -28,11 +28,11 @@ public function testGivenStatements_getPropertyIdsReturnsArrayWithoutDuplicates() { $list = new StatementList( array( - $this->getStubStatement( 1, 'kittens' ), - $this->getStubStatement( 3, 'foo' ), - $this->getStubStatement( 2, 'bar' ), - $this->getStubStatement( 2, 'baz' ), - $this->getStubStatement( 1, 'bah' ), + $this->getStatement( 1, 'kittens' ), + $this->getStatement( 3, 'foo' ), + $this->getStatement( 2, 'bar' ), + $this->getStatement( 2, 'baz' ), + $this->getStatement( 1, 'bah' ), ) ); $this->assertEquals( @@ -45,7 +45,21 @@ ); } - private function getStubStatement( $propertyId, $guid, $rank = Statement::RANK_NORMAL ) { + public function testGivenStatementsWithArrayKeys_reindexesArray() { + $statement = $this->getStatement( 1, 'guid' ); + $list = new StatementList( array( 'ignore-me' => $statement ) ); + + $this->assertSame( array( 0 => $statement ), $list->toArray() ); + } + + /** + * @param int $propertyId + * @param string $guid + * @param int $rank + * + * @return Statement + */ + private function getStatement( $propertyId, $guid, $rank = Statement::RANK_NORMAL ) { $statement = $this->getMockBuilder( 'Wikibase\DataModel\Statement\Statement' ) ->disableOriginalConstructor()->getMock(); @@ -65,7 +79,7 @@ } public function testCanIterate() { - $statement = $this->getStubStatement( 1, 'kittens' ); + $statement = $this->getStatement( 1, 'kittens' ); $list = new StatementList( array( $statement ) ); foreach ( $list as $statementFormList ) { @@ -75,27 +89,27 @@ public function testGetBestStatementPerProperty() { $list = new StatementList( array( - $this->getStubStatement( 1, 'one', Statement::RANK_PREFERRED ), - $this->getStubStatement( 1, 'two', Statement::RANK_NORMAL ), - $this->getStubStatement( 1, 'three', Statement::RANK_PREFERRED ), + $this->getStatement( 1, 'one', Statement::RANK_PREFERRED ), + $this->getStatement( 1, 'two', Statement::RANK_NORMAL ), + $this->getStatement( 1, 'three', Statement::RANK_PREFERRED ), - $this->getStubStatement( 2, 'four', Statement::RANK_DEPRECATED ), + $this->getStatement( 2, 'four', Statement::RANK_DEPRECATED ), - $this->getStubStatement( 3, 'five', Statement::RANK_DEPRECATED ), - $this->getStubStatement( 3, 'six', Statement::RANK_NORMAL ), + $this->getStatement( 3, 'five', Statement::RANK_DEPRECATED ), + $this->getStatement( 3, 'six', Statement::RANK_NORMAL ), - $this->getStubStatement( 4, 'seven', Statement::RANK_PREFERRED ), - $this->getStubStatement( 4, 'eight', Claim::RANK_TRUTH ), + $this->getStatement( 4, 'seven', Statement::RANK_PREFERRED ), + $this->getStatement( 4, 'eight', Claim::RANK_TRUTH ), ) ); $this->assertEquals( array( - $this->getStubStatement( 1, 'one', Statement::RANK_PREFERRED ), - $this->getStubStatement( 1, 'three', Statement::RANK_PREFERRED ), + $this->getStatement( 1, 'one', Statement::RANK_PREFERRED ), + $this->getStatement( 1, 'three', Statement::RANK_PREFERRED ), - $this->getStubStatement( 3, 'six', Statement::RANK_NORMAL ), + $this->getStatement( 3, 'six', Statement::RANK_NORMAL ), - $this->getStubStatement( 4, 'eight', Claim::RANK_TRUTH ), + $this->getStatement( 4, 'eight', Claim::RANK_TRUTH ), ), $list->getBestStatementPerProperty()->toArray() ); @@ -298,22 +312,15 @@ public function statementArrayProvider() { return array( - array( - array( - $this->getStatementWithSnak( 1, 'foo' ), - $this->getStatementWithSnak( 2, 'bar' ), - ) - ), - - array( - array( - $this->getStatementWithSnak( 1, 'foo' ), - ) - ), - - array( - array() - ), + array( array( + $this->getStatementWithSnak( 1, 'foo' ), + $this->getStatementWithSnak( 2, 'bar' ), + ) ), + array( array( + $this->getStatementWithSnak( 1, 'foo' ), + ) ), + array( array( + ) ), ); } -- To view, visit https://gerrit.wikimedia.org/r/176269 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic3d71792cf9980f6557ca8ff17ee327397dff56b Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikidata Gerrit-Branch: wmf/1.25wmf10 Gerrit-Owner: Hoo man <h...@online.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits