WikidataBuilder has uploaded a new change for review.
https://gerrit.wikimedia.org/r/134586
Change subject: New Wikidata Build - 21/05/2014 10:00
......................................................................
New Wikidata Build - 21/05/2014 10:00
Change-Id: Ifb759492e23b7c99b36c89e937366ddfca3dbd36
---
M composer.lock
M extensions/Wikibase/client/i18n/diq.json
M extensions/Wikibase/lib/i18n/et.json
M extensions/Wikibase/lib/i18n/tl.json
M extensions/Wikibase/lib/resources/Resources.php
M extensions/Wikibase/lib/resources/jquery.wikibase/jquery.wikibase.wbtooltip.js
M extensions/Wikibase/lib/tests/phpunit/WikibaseDataTypeBuildersTest.php
M extensions/Wikibase/repo/Wikibase.php
M extensions/Wikibase/repo/includes/ChangeOp/ChangeOpsMerge.php
M extensions/Wikibase/repo/includes/ChangeOp/MergeChangeOpsFactory.php
A extensions/Wikibase/repo/includes/api/AvailableBadges.php
M extensions/Wikibase/repo/includes/specials/SpecialSetSiteLink.php
M
extensions/Wikibase/repo/tests/phpunit/includes/ChangeOp/ChangeOpsMergeTest.php
A extensions/Wikibase/repo/tests/phpunit/includes/api/AvailableBadgesTest.php
M vendor/autoload.php
M vendor/composer/autoload_classmap.php
M vendor/composer/autoload_real.php
M vendor/composer/installed.json
M vendor/serialization/serialization/.travis.yml
M vendor/serialization/serialization/README.md
M vendor/serialization/serialization/Serialization.php
M vendor/serialization/serialization/composer.json
M
vendor/serialization/serialization/src/Serializers/Exceptions/SerializationException.php
23 files changed, 233 insertions(+), 104 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikidata
refs/changes/86/134586/1
diff --git a/composer.lock b/composer.lock
index 9601a61..c199a5f 100644
--- a/composer.lock
+++ b/composer.lock
@@ -726,16 +726,16 @@
},
{
"name": "serialization/serialization",
- "version": "3.1",
+ "version": "3.2",
"source": {
"type": "git",
"url": "https://github.com/wmde/Serialization.git",
- "reference": "3cea2bbef70c74db9614e1cc3e149b4a79ff05dd"
+ "reference": "7e13a0bc0173adc3aea0f16545e871e03a2ac4c4"
},
"dist": {
"type": "zip",
- "url":
"https://api.github.com/repos/wmde/Serialization/zipball/3cea2bbef70c74db9614e1cc3e149b4a79ff05dd",
- "reference": "3cea2bbef70c74db9614e1cc3e149b4a79ff05dd",
+ "url":
"https://api.github.com/repos/wmde/Serialization/zipball/7e13a0bc0173adc3aea0f16545e871e03a2ac4c4",
+ "reference": "7e13a0bc0173adc3aea0f16545e871e03a2ac4c4",
"shasum": ""
},
"require": {
@@ -744,7 +744,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.1.x-dev"
+ "dev-master": "3.2.x-dev"
}
},
"autoload": {
@@ -778,7 +778,7 @@
"unserialization",
"wikidata"
],
- "time": "2014-03-18 18:45:35"
+ "time": "2014-05-20 15:57:52"
},
{
"name": "wikibase/data-model",
@@ -869,12 +869,12 @@
"source": {
"type": "git",
"url":
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git",
- "reference": "56608d53d8f72591528cca253f0b128fc346ddb7"
+ "reference": "8aa95d6346743c14b47385a9d199742013fcccf8"
},
"dist": {
"type": "zip",
- "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/56608d53d8f72591528cca253f0b128fc346ddb7",
- "reference": "56608d53d8f72591528cca253f0b128fc346ddb7",
+ "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/8aa95d6346743c14b47385a9d199742013fcccf8",
+ "reference": "8aa95d6346743c14b47385a9d199742013fcccf8",
"shasum": ""
},
"require": {
@@ -937,7 +937,7 @@
"wikibaserepo",
"wikidata"
],
- "time": "2014-05-18 20:08:56"
+ "time": "2014-05-21 09:48:21"
}
],
"packages-dev": [
diff --git a/extensions/Wikibase/client/i18n/diq.json
b/extensions/Wikibase/client/i18n/diq.json
index 1b81806..635ff79 100644
--- a/extensions/Wikibase/client/i18n/diq.json
+++ b/extensions/Wikibase/client/i18n/diq.json
@@ -20,7 +20,7 @@
"wikibase-dataitem": "Unsurê melumati",
"wikibase-editlinks": "Gıreyan bıvurne",
"wikibase-editlinkstitle": "Gıreyanê miyanzıwani bıvurne",
- "wikibase-linkitem-addlinks": "Gre de kerê",
+ "wikibase-linkitem-addlinks": "Gıreyan cı ke",
"wikibase-linkitem-title": "Pela rê gıre",
"wikibase-linkitem-linkpage": "Pela rê gıre",
"wikibase-linkitem-selectlink": "Şıma şenê ke ena pela rê gıre yana
sita berzê.",
diff --git a/extensions/Wikibase/lib/i18n/et.json
b/extensions/Wikibase/lib/i18n/et.json
index 9a79dba..58d4a1e 100644
--- a/extensions/Wikibase/lib/i18n/et.json
+++ b/extensions/Wikibase/lib/i18n/et.json
@@ -47,6 +47,7 @@
"wikibase-globedetails-latitude": "Laius",
"wikibase-globedetails-precision": "Esitustäpsus",
"wikibase-parse-error": "Väärdunud väärtus.",
+ "wikibase-parse-error-coordinate": "Koordinaadiväärtus on väärdunud.",
"wikibase-parse-error-entity-id": "Üksuse identifikaator on väärdunud.",
"wikibase-parse-error-time": "Kellaaja väärtus on väärdunud.",
"wikibase-replicationnote": "Palun pane tähele, et võib kuluda mitu
minutit, enne kui muudatused on kõigis vikides nähtavad.",
diff --git a/extensions/Wikibase/lib/i18n/tl.json
b/extensions/Wikibase/lib/i18n/tl.json
index 3080571..b1353cd 100644
--- a/extensions/Wikibase/lib/i18n/tl.json
+++ b/extensions/Wikibase/lib/i18n/tl.json
@@ -1,7 +1,8 @@
{
"@metadata": {
"authors": [
- "AnakngAraw"
+ "AnakngAraw",
+ "Jojit fb"
]
},
"wikibase-lib-desc": "Naghahawak ng karaniwang panunungkulan para sa
mga pandugtong ng Wikibase at Wikibase Client",
@@ -18,7 +19,7 @@
"wikibase-error-ui-cant-edit": "Hindi ka pinapayagan na maisakatuparan
ang galaw na ito.",
"wikibase-error-ui-no-permissions": "Wala kang sapat na mga karapatan
upang maisagawa ang galaw na ito.",
"wikibase-error-ui-link-exists": "Hindi ka maaaring kumawing sa
pahinang ito dahil mayroon nang ibang bagay na nakakawing dito.",
- "wikibase-error-ui-session-failure": "Natapos na ang inilaang panahon
sa iyo. Paki muling lumagda papasok.",
+ "wikibase-error-ui-session-failure": "Natapos na ang inilaang panahon
sa iyo. Paki login muli.",
"wikibase-error-ui-edit-conflict": "Nagkaroon ng isang pagsasalungatan
sa pamamatnugot. Paki muling ikarga at sagiping muli.",
"wikibase-sitelinks-sitename-columnheading": "Wika",
"wikibase-sitelinks-siteid-columnheading": "Kodigo",
diff --git a/extensions/Wikibase/lib/resources/Resources.php
b/extensions/Wikibase/lib/resources/Resources.php
index 5328a0f..30b133e 100644
--- a/extensions/Wikibase/lib/resources/Resources.php
+++ b/extensions/Wikibase/lib/resources/Resources.php
@@ -74,30 +74,15 @@
'mw.config.values.wbDataTypes' => $moduleTemplate + array(
'class' => 'DataTypes\DataTypesModule',
'datatypefactory' => function() {
- // TODO: extreme uglynes here! Get rid of this
method!
+ // TODO: relative uglynes here! Get rid of this
method!
if ( defined( 'WB_VERSION' ) ) { // repo mode
- $repo =
WikibaseRepo::getDefaultInstance();
- $entityIdParser =
$repo->getEntityIdParser();
- $entityLookup =
$repo->getEntityLookup();
+ $wikibase =
WikibaseRepo::getDefaultInstance();
} elseif ( defined( 'WBC_VERSION' ) ) { //
client mode
- $client =
WikibaseClient::getDefaultInstance();
- $entityIdParser =
$client->getEntityIdParser();
- $entityLookup =
$client->getStore()->getEntityLookup();
+ $wikibase =
WikibaseClient::getDefaultInstance();
} else {
throw new \RuntimeException( "Neither
repo nor client found!" );
}
-
- $settings = Settings::singleton();
-
- $urlSchemes = $settings->getSetting(
'urlSchemes' );
- $builders = new WikibaseDataTypeBuilders(
$entityLookup, $entityIdParser, $urlSchemes );
-
- $typeBuilderSpecs = array_intersect_key(
- $builders->getDataTypeBuilders(),
- array_flip( $settings->getSetting(
'dataTypes' ) )
- );
-
- return new DataTypeFactory( $typeBuilderSpecs );
+ return $wikibase->getDataTypeFactory();
},
'datatypesconfigvarname' => 'wbDataTypes',
),
diff --git
a/extensions/Wikibase/lib/resources/jquery.wikibase/jquery.wikibase.wbtooltip.js
b/extensions/Wikibase/lib/resources/jquery.wikibase/jquery.wikibase.wbtooltip.js
index 1fe5564..27894e5 100644
---
a/extensions/Wikibase/lib/resources/jquery.wikibase/jquery.wikibase.wbtooltip.js
+++
b/extensions/Wikibase/lib/resources/jquery.wikibase/jquery.wikibase.wbtooltip.js
@@ -282,10 +282,13 @@
* @TODO: Error tooltip should be a separate tooltip derivative.
*/
_buildErrorTooltip: function() {
- var $mainMessage = ( $( '<div/>', {
- 'class': 'wb-error ' + this.widgetBaseClass + '-error',
+ var $message = $( '<div/>', {
+ 'class': 'wb-error ' + this.widgetBaseClass + '-error'
+ } );
+
+ var $mainMessage = $( '<div/>', {
text: this.options.content.message
- } ) );
+ } ).appendTo( $message );
// Append detailed error message if given; hide it behind
toggle:
if( this.options.content.detailedMessage ) {
@@ -302,10 +305,11 @@
.text( mw.msg( 'wikibase-tooltip-error-details'
) )
.toggler( { $subject: $detailedMessage } );
- $mainMessage = $mainMessage.after( $toggler ).after(
$detailedMessage );
+ $toggler.appendTo( $message );
+ $detailedMessage.appendTo( $message );
}
- return $mainMessage;
+ return $message;
},
/**
diff --git
a/extensions/Wikibase/lib/tests/phpunit/WikibaseDataTypeBuildersTest.php
b/extensions/Wikibase/lib/tests/phpunit/WikibaseDataTypeBuildersTest.php
index 0582ff1..0138867 100644
--- a/extensions/Wikibase/lib/tests/phpunit/WikibaseDataTypeBuildersTest.php
+++ b/extensions/Wikibase/lib/tests/phpunit/WikibaseDataTypeBuildersTest.php
@@ -158,14 +158,15 @@
array( 'url', new StringValue( ' http://acme.com' ),
false, 'URL with leading space' ),
array( 'url', new StringValue( 'http://acme.com ' ),
false, 'URL with trailing space' ),
+
+ //quantity
+ array( 'quantity', QuantityValue::newFromNumber( 5 ),
true, 'Simple integer' ),
+ array( 'quantity', QuantityValue::newFromNumber( 5, 'm'
), false, 'We don\'t support units yet' ),
+ array( 'quantity', QuantityValue::newFromDecimal(
'-11.234', '1', '-10', '-12' ), true, 'decimal strings' ),
);
if ( defined( 'WB_EXPERIMENTAL_FEATURES' ) &&
WB_EXPERIMENTAL_FEATURES ) {
$cases = array_merge( $cases, array(
- //quantity
- array( 'quantity',
QuantityValue::newFromNumber( 5 ), true, 'Simple integer' ),
- array( 'quantity',
QuantityValue::newFromNumber( 5, 'm' ), false, 'We don\'t support units yet' ),
- array( 'quantity',
QuantityValue::newFromDecimal( '-11.234', '1', '-10', '-12' ), true, 'decimal
strings' ),
// ....
) );
diff --git a/extensions/Wikibase/repo/Wikibase.php
b/extensions/Wikibase/repo/Wikibase.php
index a91cdb4..dbbea8a 100644
--- a/extensions/Wikibase/repo/Wikibase.php
+++ b/extensions/Wikibase/repo/Wikibase.php
@@ -86,7 +86,7 @@
$wgValueParsers['time'] = 'Wikibase\Lib\Parsers\TimeParser';
$wgValueParsers['globecoordinate'] =
'ValueParsers\GlobeCoordinateParser';
$wgValueParsers['null'] = 'ValueParsers\NullParser';
- $wgValueParsers['monolongualtext'] =
'Wikibase\Parsers\MonolingualTextParser';
+ $wgValueParsers['monolingual-text'] =
'Wikibase\Parsers\MonolingualTextParser';
// API module registration
$wgAPIModules['wbgetentities']
= 'Wikibase\Api\GetEntities';
@@ -109,6 +109,7 @@
$wgAPIModules['wbmergeitems']
= 'Wikibase\Api\MergeItems';
$wgAPIModules['wbformatvalue']
= 'Wikibase\Api\FormatSnakValue';
$wgAPIModules['wbparsevalue']
= 'Wikibase\Api\ParseValue';
+ $wgAPIModules['wbavailablebadges']
= 'Wikibase\Api\AvailableBadges';
// Special page registration
$wgSpecialPages['NewItem']
= 'Wikibase\Repo\Specials\SpecialNewItem';
diff --git a/extensions/Wikibase/repo/includes/ChangeOp/ChangeOpsMerge.php
b/extensions/Wikibase/repo/includes/ChangeOp/ChangeOpsMerge.php
index 81af3d4..c40841a 100644
--- a/extensions/Wikibase/repo/includes/ChangeOp/ChangeOpsMerge.php
+++ b/extensions/Wikibase/repo/includes/ChangeOp/ChangeOpsMerge.php
@@ -3,15 +3,15 @@
namespace Wikibase\ChangeOp;
use InvalidArgumentException;
-use ValueValidators\Result;
use ValueValidators\Error;
-use Wikibase\DataModel\Entity\EntityId;
-use Wikibase\Validators\EntityConstraintProvider;
+use ValueValidators\Result;
use Wikibase\DataModel\Claim\Claim;
use Wikibase\DataModel\Claim\Statement;
use Wikibase\DataModel\Entity\Entity;
+use Wikibase\DataModel\Entity\EntityId;
use Wikibase\DataModel\Entity\Item;
use Wikibase\DataModel\Reference;
+use Wikibase\Validators\EntityConstraintProvider;
use Wikibase\Validators\UniquenessViolation;
/**
@@ -23,17 +23,34 @@
*/
class ChangeOpsMerge {
+ /**
+ * @var Item
+ */
private $fromItem;
+
+ /**
+ * @var Item
+ */
private $toItem;
+
+ /**
+ * @var ChangeOps
+ */
private $fromChangeOps;
+
+ /**
+ * @var ChangeOps
+ */
private $toChangeOps;
/**
- * @var array
+ * @var string[]
*/
private $ignoreConflicts;
- /** @var EntityConstraintProvider */
+ /**
+ * @var EntityConstraintProvider
+ */
private $constraintProvider;
/**
@@ -44,7 +61,7 @@
/**
* @param Item $fromItem
* @param Item $toItem
- * @param array $ignoreConflicts list of elements to ignore conflicts
for
+ * @param string[] $ignoreConflicts list of elements to ignore
conflicts for
* can only contain 'label' and or 'description' and or
'sitelink'
* @param EntityConstraintProvider $constraintProvider
* @param ChangeOpFactoryProvider $changeOpFactoryProvider
@@ -56,7 +73,7 @@
public function __construct(
Item $fromItem,
Item $toItem,
- $ignoreConflicts,
+ array $ignoreConflicts,
EntityConstraintProvider $constraintProvider,
ChangeOpFactoryProvider $changeOpFactoryProvider
) {
@@ -78,11 +95,11 @@
* @throws InvalidArgumentException
*/
private function assertValidIgnoreConflictValues( $ignoreConflicts ) {
- if( !is_array( $ignoreConflicts ) ){
+ if ( !is_array( $ignoreConflicts ) ) {
throw new InvalidArgumentException( '$ignoreConflicts
must be an array' );
}
- foreach( $ignoreConflicts as $ignoreConflict ){
- if(
+ foreach ( $ignoreConflicts as $ignoreConflict ) {
+ if (
$ignoreConflict !== 'label' &&
$ignoreConflict !== 'description' &&
$ignoreConflict !== 'sitelink'
@@ -147,13 +164,13 @@
}
private function generateLabelsChangeOps() {
- foreach( $this->fromItem->getLabels() as $langCode => $label ){
+ foreach ( $this->fromItem->getLabels() as $langCode => $label )
{
$toLabel = $this->toItem->getLabel( $langCode );
- if( $toLabel === false || $toLabel === $label ){
+ if ( $toLabel === false || $toLabel === $label ) {
$this->fromChangeOps->add(
$this->getFingerprintChangeOpFactory()->newRemoveLabelOp( $langCode ) );
$this->toChangeOps->add(
$this->getFingerprintChangeOpFactory()->newSetLabelOp( $langCode, $label ) );
} else {
- if( !in_array( 'label', $this->ignoreConflicts
) ){
+ if ( !in_array( 'label', $this->ignoreConflicts
) ) {
throw new ChangeOpException(
"Conflicting labels for language {$langCode}" );
}
}
@@ -161,13 +178,13 @@
}
private function generateDescriptionsChangeOps() {
- foreach( $this->fromItem->getDescriptions() as $langCode =>
$desc ){
+ foreach ( $this->fromItem->getDescriptions() as $langCode =>
$desc ) {
$toDescription = $this->toItem->getDescription(
$langCode );
- if( $toDescription === false || $toDescription ===
$desc ){
+ if ( $toDescription === false || $toDescription ===
$desc ) {
$this->fromChangeOps->add(
$this->getFingerprintChangeOpFactory()->newRemoveDescriptionOp( $langCode ) );
$this->toChangeOps->add(
$this->getFingerprintChangeOpFactory()->newSetDescriptionOp( $langCode, $desc )
);
} else {
- if( !in_array( 'description',
$this->ignoreConflicts ) ){
+ if ( !in_array( 'description',
$this->ignoreConflicts ) ) {
throw new ChangeOpException(
"Conflicting descriptions for language {$langCode}" );
}
}
@@ -175,16 +192,16 @@
}
private function generateAliasesChangeOps() {
- foreach( $this->fromItem->getAllAliases() as $langCode =>
$aliases ){
+ foreach ( $this->fromItem->getAllAliases() as $langCode =>
$aliases ) {
$this->fromChangeOps->add(
$this->getFingerprintChangeOpFactory()->newRemoveAliasesOp( $langCode, $aliases
) );
$this->toChangeOps->add(
$this->getFingerprintChangeOpFactory()->newAddAliasesOp( $langCode, $aliases,
'add' ) );
}
}
private function generateSitelinksChangeOps() {
- foreach( $this->fromItem->getSiteLinks() as $simpleSiteLink ){
+ foreach ( $this->fromItem->getSiteLinks() as $simpleSiteLink ) {
$siteId = $simpleSiteLink->getSiteId();
- if( !$this->toItem->hasLinkToSite( $siteId ) ){
+ if ( !$this->toItem->hasLinkToSite( $siteId ) ) {
$this->fromChangeOps->add(
$this->getSiteLinkChangeOpFactory()->newRemoveSiteLinkOp( $siteId ) );
$this->toChangeOps->add(
$this->getSiteLinkChangeOpFactory()->newSetSiteLinkOp(
@@ -194,7 +211,7 @@
)
);
} else {
- if( !in_array( 'sitelink',
$this->ignoreConflicts ) ){
+ if ( !in_array( 'sitelink',
$this->ignoreConflicts ) ) {
throw new ChangeOpException(
"Conflicting sitelinks for {$siteId}" );
}
}
@@ -202,18 +219,18 @@
}
private function generateClaimsChangeOps() {
- foreach( $this->fromItem->getClaims() as $fromClaim ) {
+ foreach ( $this->fromItem->getClaims() as $fromClaim ) {
$this->fromChangeOps->add(
$this->getClaimChangeOpFactory()->newRemoveClaimOp( $fromClaim->getGuid() ) );
$toClaim = clone $fromClaim;
$toClaim->setGuid( null );
$toMergeToClaim = false;
- if( $toClaim instanceof Statement ) {
+ if ( $toClaim instanceof Statement ) {
$toMergeToClaim = $this->findEquivalentClaim(
$toClaim );
}
- if( $toMergeToClaim ) {
+ if ( $toMergeToClaim ) {
$this->generateReferencesChangeOps( $toClaim,
$toMergeToClaim );
} else {
$this->toChangeOps->add(
$this->getClaimChangeOpFactory()->newSetClaimOp( $toClaim ) );
@@ -226,14 +243,15 @@
*
* @param Statement $fromStatement
*
- * @return Claim|bool Claim to merge reference into or false
+ * @return Claim|false Claim to merge reference into or false
*/
private function findEquivalentClaim( $fromStatement ) {
+ $fromHash = $this->getClaimHash( $fromStatement );
+
/** @var $claim Claim */
- foreach( $this->toItem->getClaims() as $claim ) {
- $fromHash = $this->getClaimHash( $fromStatement );
+ foreach ( $this->toItem->getClaims() as $claim ) {
$toHash = $this->getClaimHash( $claim );
- if( $toHash === $fromHash ) {
+ if ( $toHash === $fromHash ) {
return $claim;
}
}
@@ -278,7 +296,7 @@
$errors = $this->removeConflictsWithEntity( $errors, $fromId );
- if( !empty( $errors ) ) {
+ if ( !empty( $errors ) ) {
$result = Result::newError( $errors );
throw new ChangeOpValidationException( $result );
}
@@ -307,4 +325,5 @@
return $filtered;
}
+
}
diff --git
a/extensions/Wikibase/repo/includes/ChangeOp/MergeChangeOpsFactory.php
b/extensions/Wikibase/repo/includes/ChangeOp/MergeChangeOpsFactory.php
index ec1e7c2..dfc3ae4 100644
--- a/extensions/Wikibase/repo/includes/ChangeOp/MergeChangeOpsFactory.php
+++ b/extensions/Wikibase/repo/includes/ChangeOp/MergeChangeOpsFactory.php
@@ -34,7 +34,7 @@
/**
* @param Item $fromItem
* @param Item $toItem
- * @param array $ignoreConflicts list of elements to ignore conflicts
for
+ * @param string[] $ignoreConflicts list of elements to ignore
conflicts for
* can only contain 'label' and or 'description' and or 'sitelink'
*
* @throws InvalidArgumentException
@@ -56,4 +56,5 @@
$this->factoryProvider
);
}
+
}
diff --git a/extensions/Wikibase/repo/includes/api/AvailableBadges.php
b/extensions/Wikibase/repo/includes/api/AvailableBadges.php
new file mode 100644
index 0000000..5e9db3e
--- /dev/null
+++ b/extensions/Wikibase/repo/includes/api/AvailableBadges.php
@@ -0,0 +1,62 @@
+<?php
+
+namespace Wikibase\Api;
+
+use Wikibase\Repo\WikibaseRepo;
+use ApiBase;
+
+/**
+ * API module to query available badge items.
+ *
+ * @todo this might also be useful to find badges suggestions based on labels
+ *
+ * @since 0.5
+ * @licence GNU GPL v2+
+ * @author Bene* < [email protected] >
+ */
+class AvailableBadges extends ApiBase {
+
+ /**
+ * @see ApiBase::execute
+ *
+ * @since 0.5
+ */
+ public function execute() {
+ $settings = WikibaseRepo::getDefaultInstance()->getSettings();
+ $badgeItems = array_keys( $settings->getSetting( 'badgeItems' )
);
+ $this->getResult()->setIndexedTagName( $badgeItems, 'badge' );
+ $this->getResult()->addValue(
+ null,
+ 'badges',
+ $badgeItems
+ );
+ }
+
+ /**
+ * @see ApiBase::getDescription
+ *
+ * @since 0.5
+ *
+ * @return string
+ */
+ public function getDescription() {
+ return array(
+ 'API module to query available badge items.'
+ );
+ }
+
+ /**
+ * @see ApiBase::getExamples
+ *
+ * @since 0.5
+ *
+ * @return array
+ */
+ protected function getExamples() {
+ return array(
+ 'api.php?action=wbavailablebadges' =>
+ 'Queries all available badge items',
+ );
+ }
+
+}
\ No newline at end of file
diff --git a/extensions/Wikibase/repo/includes/specials/SpecialSetSiteLink.php
b/extensions/Wikibase/repo/includes/specials/SpecialSetSiteLink.php
index a86319a..150ba32 100644
--- a/extensions/Wikibase/repo/includes/specials/SpecialSetSiteLink.php
+++ b/extensions/Wikibase/repo/includes/specials/SpecialSetSiteLink.php
@@ -5,13 +5,11 @@
use Html;
use OutOfBoundsException;
use Status;
-use ValueParsers\ParseException;
-use Wikibase\ChangeOp\ChangeOp;
use Wikibase\ChangeOp\ChangeOpException;
use Wikibase\ChangeOp\SiteLinkChangeOpFactory;
-use Wikibase\ChangeOp\ChangeOpValidationException;
use Wikibase\CopyrightMessageBuilder;
use Wikibase\DataModel\Entity\Entity;
+use Wikibase\DataModel\Entity\EntityIdParsingException;
use Wikibase\DataModel\Entity\Item;
use Wikibase\DataModel\Entity\ItemId;
use Wikibase\Repo\WikibaseRepo;
@@ -385,8 +383,8 @@
foreach ( $badges as $badge ) {
try {
$badgeId = $entityIdParser->parse( $badge );
- } catch( ParseException $e ) {
- $status->fatal( 'wikibase-setentity-invalid-id'
);
+ } catch ( EntityIdParsingException $ex ) {
+ $status->fatal(
'wikibase-setsitelink-not-badge', $badge );
return false;
}
@@ -406,7 +404,7 @@
$itemTitle = $this->getEntityTitle( $badgeId );
if ( is_null( $itemTitle ) || !$itemTitle->exists() ) {
- $status->fatal( 'wikibase-setentity-invalid-id'
);
+ $status->fatal(
'wikibase-setsitelink-not-badge', $badgeId );
return false;
}
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/ChangeOp/ChangeOpsMergeTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/ChangeOp/ChangeOpsMergeTest.php
index 2342e60..b327ed7 100644
---
a/extensions/Wikibase/repo/tests/phpunit/includes/ChangeOp/ChangeOpsMergeTest.php
+++
b/extensions/Wikibase/repo/tests/phpunit/includes/ChangeOp/ChangeOpsMergeTest.php
@@ -41,7 +41,7 @@
protected function makeChangeOpsMerge(
Item $fromItem,
Item $toItem,
- $ignoreConflicts = array()
+ array $ignoreConflicts = array()
) {
$duplicateDetector =
$this->mockProvider->getMockLabelDescriptionDuplicateDetector();
$linkCache = $this->mockProvider->getMockSitelinkCache();
@@ -72,7 +72,7 @@
/**
* @dataProvider provideValidConstruction
*/
- public function testCanConstruct( $from, $to, $ignoreConflicts ) {
+ public function testCanConstruct( Item $from, Item $to, array
$ignoreConflicts ) {
$changeOps = $this->makeChangeOpsMerge(
$from,
$to,
@@ -96,7 +96,7 @@
/**
* @dataProvider provideInvalidConstruction
*/
- public function testInvalidIgnoreConflicts( $from, $to,
$ignoreConflicts ) {
+ public function testInvalidIgnoreConflicts( Item $from, Item $to, array
$ignoreConflicts ) {
$this->setExpectedException( 'InvalidArgumentException' );
$this->makeChangeOpsMerge(
$from,
@@ -109,10 +109,8 @@
$from = self::getItem( 'Q111' );
$to = self::getItem( 'Q222' );
return array(
- array( $from, $to, 'foo' ),
array( $from, $to, array( 'foo' ) ),
array( $from, $to, array( 'label', 'foo' ) ),
- array( $from, $to, null ),
);
}
@@ -122,7 +120,7 @@
*
* @return Item
*/
- public static function getItem( $id, $data = array() ) {
+ public static function getItem( $id, array $data = array() ) {
$item = new Item( $data );
$item->setId( new ItemId( $id ) );
return $item;
@@ -131,7 +129,7 @@
/**
* @dataProvider provideData
*/
- public function testCanApply( $fromData, $toData, $expectedFromData,
$expectedToData, $ignoreConflicts = array() ) {
+ public function testCanApply( array $fromData, array $toData,
$expectedFromData, $expectedToData, array $ignoreConflicts = array() ) {
$from = self::getItem( 'Q111', $fromData );
$to = self::getItem( 'Q222', $toData );
$changeOps = $this->makeChangeOpsMerge(
diff --git
a/extensions/Wikibase/repo/tests/phpunit/includes/api/AvailableBadgesTest.php
b/extensions/Wikibase/repo/tests/phpunit/includes/api/AvailableBadgesTest.php
new file mode 100644
index 0000000..f1b416e
--- /dev/null
+++
b/extensions/Wikibase/repo/tests/phpunit/includes/api/AvailableBadgesTest.php
@@ -0,0 +1,50 @@
+<?php
+
+namespace Wikibase\Test\Api;
+
+use ApiTestCase;
+use Wikibase\Repo\WikibaseRepo;
+
+/**
+ * Tests for the AvailableBadges class.
+ *
+ * @group API
+ * @group Wikibase
+ * @group WikibaseAPI
+ * @gorup WikibaseRepo
+ * @group medium
+ *
+ * @licence GNU GPL v2+
+ *
+ * @author Bene* < [email protected] >
+ */
+class AvailabeBadgesTest extends ApiTestCase {
+
+ static $badgeItems = array(
+ 'Q123' => '',
+ 'Q999' => ''
+ );
+
+ static $oldBadgeItems;
+
+ public function setUp() {
+ parent::setUp();
+ // Allow some badges for testing
+ self::$oldBadgeItems =
WikibaseRepo::getDefaultInstance()->getSettings()->getSetting( 'badgeItems' );
+ WikibaseRepo::getDefaultInstance()->getSettings()->setSetting(
'badgeItems', self::$badgeItems );
+ }
+
+ public function tearDown() {
+ parent::tearDown();
+ WikibaseRepo::getDefaultInstance()->getSettings()->setSetting(
'badgeItems', self::$oldBadgeItems );
+ }
+
+ public function testExecute() {
+ list( $result,, ) = $this->doApiRequest( array(
+ 'action' => 'wbavailablebadges'
+ ) );
+
+ $this->assertEquals( array_keys( self::$badgeItems ),
$result['badges'] );
+ }
+
+}
\ No newline at end of file
diff --git a/vendor/autoload.php b/vendor/autoload.php
index 0458d45..ad09faa 100644
--- a/vendor/autoload.php
+++ b/vendor/autoload.php
@@ -4,4 +4,4 @@
require_once __DIR__ . '/composer' . '/autoload_real.php';
-return ComposerAutoloaderInit5ae4add20467bd3e9b86195a2a46481d::getLoader();
+return ComposerAutoloaderInit133d211f3fe926b61f49ecba09460721::getLoader();
diff --git a/vendor/composer/autoload_classmap.php
b/vendor/composer/autoload_classmap.php
index ff59d92..922c398 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -214,6 +214,7 @@
'Wikibase\\ApiClientInfo' => $baseDir .
'/extensions/Wikibase/client/includes/api/ApiClientInfo.php',
'Wikibase\\Api\\ApiErrorReporter' => $baseDir .
'/extensions/Wikibase/repo/includes/api/ApiErrorReporter.php',
'Wikibase\\Api\\ApiWikibase' => $baseDir .
'/extensions/Wikibase/repo/includes/api/ApiWikibase.php',
+ 'Wikibase\\Api\\AvailableBadges' => $baseDir .
'/extensions/Wikibase/repo/includes/api/AvailableBadges.php',
'Wikibase\\Api\\ClaimModificationHelper' => $baseDir .
'/extensions/Wikibase/repo/includes/api/ClaimModificationHelper.php',
'Wikibase\\Api\\CreateClaim' => $baseDir .
'/extensions/Wikibase/repo/includes/api/CreateClaim.php',
'Wikibase\\Api\\EditEntity' => $baseDir .
'/extensions/Wikibase/repo/includes/api/EditEntity.php',
@@ -634,6 +635,7 @@
'Wikibase\\Test\\ActionTestCase' => $baseDir .
'/extensions/Wikibase/repo/tests/phpunit/includes/actions/ActionTestCase.php',
'Wikibase\\Test\\AliasSerializerTest' => $baseDir .
'/extensions/Wikibase/lib/tests/phpunit/serializers/AliasSerializerTest.php',
'Wikibase\\Test\\ApiErrorReporterTest' => $baseDir .
'/extensions/Wikibase/repo/tests/phpunit/includes/api/ApiErrorReporterTest.php',
+ 'Wikibase\\Test\\Api\\AvailabeBadgesTest' => $baseDir .
'/extensions/Wikibase/repo/tests/phpunit/includes/api/AvailableBadgesTest.php',
'Wikibase\\Test\\Api\\BotEditTest' => $baseDir .
'/extensions/Wikibase/repo/tests/phpunit/includes/api/BotEditTest.php',
'Wikibase\\Test\\Api\\ClaimModificationHelperTest' => $baseDir .
'/extensions/Wikibase/repo/tests/phpunit/includes/api/ClaimModificationHelperTest.php',
'Wikibase\\Test\\Api\\CreateClaimTest' => $baseDir .
'/extensions/Wikibase/repo/tests/phpunit/includes/api/CreateClaimTest.php',
diff --git a/vendor/composer/autoload_real.php
b/vendor/composer/autoload_real.php
index 2d7f126..ed55586 100644
--- a/vendor/composer/autoload_real.php
+++ b/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
-class ComposerAutoloaderInit5ae4add20467bd3e9b86195a2a46481d
+class ComposerAutoloaderInit133d211f3fe926b61f49ecba09460721
{
private static $loader;
@@ -19,9 +19,9 @@
return self::$loader;
}
-
spl_autoload_register(array('ComposerAutoloaderInit5ae4add20467bd3e9b86195a2a46481d',
'loadClassLoader'), true, true);
+
spl_autoload_register(array('ComposerAutoloaderInit133d211f3fe926b61f49ecba09460721',
'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-
spl_autoload_unregister(array('ComposerAutoloaderInit5ae4add20467bd3e9b86195a2a46481d',
'loadClassLoader'));
+
spl_autoload_unregister(array('ComposerAutoloaderInit133d211f3fe926b61f49ecba09460721',
'loadClassLoader'));
$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
@@ -45,14 +45,14 @@
$includeFiles = require __DIR__ . '/autoload_files.php';
foreach ($includeFiles as $file) {
- composerRequire5ae4add20467bd3e9b86195a2a46481d($file);
+ composerRequire133d211f3fe926b61f49ecba09460721($file);
}
return $loader;
}
}
-function composerRequire5ae4add20467bd3e9b86195a2a46481d($file)
+function composerRequire133d211f3fe926b61f49ecba09460721($file)
{
require $file;
}
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index ef6962a..950f001 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -424,27 +424,27 @@
},
{
"name": "serialization/serialization",
- "version": "3.1",
- "version_normalized": "3.1.0.0",
+ "version": "3.2",
+ "version_normalized": "3.2.0.0",
"source": {
"type": "git",
"url": "https://github.com/wmde/Serialization.git",
- "reference": "3cea2bbef70c74db9614e1cc3e149b4a79ff05dd"
+ "reference": "7e13a0bc0173adc3aea0f16545e871e03a2ac4c4"
},
"dist": {
"type": "zip",
- "url":
"https://api.github.com/repos/wmde/Serialization/zipball/3cea2bbef70c74db9614e1cc3e149b4a79ff05dd",
- "reference": "3cea2bbef70c74db9614e1cc3e149b4a79ff05dd",
+ "url":
"https://api.github.com/repos/wmde/Serialization/zipball/7e13a0bc0173adc3aea0f16545e871e03a2ac4c4",
+ "reference": "7e13a0bc0173adc3aea0f16545e871e03a2ac4c4",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
- "time": "2014-03-18 18:45:35",
+ "time": "2014-05-20 15:57:52",
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.1.x-dev"
+ "dev-master": "3.2.x-dev"
}
},
"installation-source": "dist",
@@ -896,12 +896,12 @@
"source": {
"type": "git",
"url":
"https://github.com/wikimedia/mediawiki-extensions-Wikibase.git",
- "reference": "56608d53d8f72591528cca253f0b128fc346ddb7"
+ "reference": "8aa95d6346743c14b47385a9d199742013fcccf8"
},
"dist": {
"type": "zip",
- "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/56608d53d8f72591528cca253f0b128fc346ddb7",
- "reference": "56608d53d8f72591528cca253f0b128fc346ddb7",
+ "url":
"https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/8aa95d6346743c14b47385a9d199742013fcccf8",
+ "reference": "8aa95d6346743c14b47385a9d199742013fcccf8",
"shasum": ""
},
"require": {
@@ -924,7 +924,7 @@
"conflict": {
"mediawiki/mediawiki": "<1.23"
},
- "time": "2014-05-18 20:08:56",
+ "time": "2014-05-21 09:48:21",
"type": "mediawiki-extension",
"installation-source": "dist",
"autoload": {
diff --git a/vendor/serialization/serialization/.travis.yml
b/vendor/serialization/serialization/.travis.yml
index f02ca1b..e0e17da 100644
--- a/vendor/serialization/serialization/.travis.yml
+++ b/vendor/serialization/serialization/.travis.yml
@@ -4,6 +4,8 @@
- 5.3
- 5.4
- 5.5
+ - 5.6
+ - hhvm
before_script: composer install --prefer-source
diff --git a/vendor/serialization/serialization/README.md
b/vendor/serialization/serialization/README.md
index adbdbe3..e208a56 100644
--- a/vendor/serialization/serialization/README.md
+++ b/vendor/serialization/serialization/README.md
@@ -87,6 +87,10 @@
## Release notes
+### 3.2 (2014-05-20)
+
+* Made SerializationException non-abstract
+
### 3.1 (2014-03-18)
* TypedObjectDeserializer now explicitly implements DispatchableDeserializer.
diff --git a/vendor/serialization/serialization/Serialization.php
b/vendor/serialization/serialization/Serialization.php
index caa596f..6d2f9e8 100644
--- a/vendor/serialization/serialization/Serialization.php
+++ b/vendor/serialization/serialization/Serialization.php
@@ -5,4 +5,4 @@
return 1;
}
-define( 'Serialization_VERSION', '3.1' );
+define( 'Serialization_VERSION', '3.2' );
diff --git a/vendor/serialization/serialization/composer.json
b/vendor/serialization/serialization/composer.json
index 60c1977..06efbee 100644
--- a/vendor/serialization/serialization/composer.json
+++ b/vendor/serialization/serialization/composer.json
@@ -37,7 +37,7 @@
},
"extra": {
"branch-alias": {
- "dev-master": "3.1.x-dev"
+ "dev-master": "3.2.x-dev"
}
}
}
diff --git
a/vendor/serialization/serialization/src/Serializers/Exceptions/SerializationException.php
b/vendor/serialization/serialization/src/Serializers/Exceptions/SerializationException.php
index 58d7e28..deee78c 100644
---
a/vendor/serialization/serialization/src/Serializers/Exceptions/SerializationException.php
+++
b/vendor/serialization/serialization/src/Serializers/Exceptions/SerializationException.php
@@ -8,7 +8,7 @@
* @licence GNU GPL v2+
* @author Jeroen De Dauw < [email protected] >
*/
-abstract class SerializationException extends \RuntimeException {
+class SerializationException extends \RuntimeException {
public function __construct( $message = '', \Exception $previous = null
) {
parent::__construct( $message, 0, $previous );
--
To view, visit https://gerrit.wikimedia.org/r/134586
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifb759492e23b7c99b36c89e937366ddfca3dbd36
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