Michał Łazowik has uploaded a new change for review.
https://gerrit.wikimedia.org/r/87615
Change subject: Merge sitelinks/badges to sitelinks (api props)
......................................................................
Merge sitelinks/badges to sitelinks (api props)
Badges are part of sitelinks and should be returned
always.
The only exception is sitelinks/removed. If it's
set, badges are omitted as they are redundant then.
Change-Id: Ib35985655767422d40c5fbf37ecbfc40cd661958
---
M lib/includes/serializers/SiteLinkSerializer.php
M lib/tests/phpunit/serializers/SiteLinkSerializerTest.php
M repo/includes/api/GetEntities.php
M repo/tests/phpunit/includes/api/GetEntitiesTest.php
4 files changed, 9 insertions(+), 30 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/15/87615/1
diff --git a/lib/includes/serializers/SiteLinkSerializer.php
b/lib/includes/serializers/SiteLinkSerializer.php
index d9fbc24..41b8f14 100644
--- a/lib/includes/serializers/SiteLinkSerializer.php
+++ b/lib/includes/serializers/SiteLinkSerializer.php
@@ -85,7 +85,7 @@
$serialization = array();
$includeUrls = in_array( 'sitelinks/urls',
$this->options->getProps() );
- $includeBadges = in_array( 'sitelinks/badges' ,
$this->options->getProps() );
+ $includeBadges = !in_array( 'sitelinks/removed' ,
$this->options->getProps() );
foreach ( $this->sortSiteLinks( $siteLinks ) as $link ) {
$response = array(
diff --git a/lib/tests/phpunit/serializers/SiteLinkSerializerTest.php
b/lib/tests/phpunit/serializers/SiteLinkSerializerTest.php
index 28fe007..75c5573 100644
--- a/lib/tests/phpunit/serializers/SiteLinkSerializerTest.php
+++ b/lib/tests/phpunit/serializers/SiteLinkSerializerTest.php
@@ -49,7 +49,6 @@
$options = new EntitySerializationOptions( $idFormatter );
$options->setUseKeys( true );
- $options->addProp( "sitelinks/badges" );
$siteLinks = array(
new SimpleSiteLink( "enwiki", "Rome", array( new
ItemId( "Q42" ) ) ),
new SimpleSiteLink( "dewiki", "Rom" ),
@@ -66,8 +65,8 @@
$options->setUseKeys( true );
$options->addProp( "sitelinks/removed" );
$siteLinks = array(
- new SimpleSiteLink( "enwiki", "" ),
- new SimpleSiteLink( "dewiki", "" ),
+ new SimpleSiteLink( "enwiki", "", array( new
ItemId( "Q42" ) ) ),
+ new SimpleSiteLink( "dewiki", "", array() ),
new SimpleSiteLink( "itwiki", "" ),
);
$expectedSerialization = array(
@@ -79,7 +78,6 @@
$options = new EntitySerializationOptions( $idFormatter );
$options->setUseKeys( false );
- $options->addProp( "sitelinks/badges" );
$siteLinks = array(
new SimpleSiteLink( "enwiki", "Rome", array( new
ItemId( "Q149" ), new ItemId( "Q49" ) ) ),
new SimpleSiteLink( "dewiki", "Rom", array( new ItemId(
"Q42" ) ) ),
@@ -89,22 +87,6 @@
array( "site" => "enwiki", "title" => "Rome", "badges"
=> array( "Q149", "Q49", "_element" => "badge" ) ),
array( "site" => "dewiki", "title" => "Rom", "badges"
=> array( "Q42", "_element" => "badge" ) ),
array( "site" => "itwiki", "title" => "Roma", "badges"
=> array( "_element" => "badge" ) ),
- "_element" => "sitelink",
- );
- $validArgs[] = array( $siteLinks, $options,
$expectedSerialization );
-
- // no badges prop
- $options = new EntitySerializationOptions( $idFormatter );
- $options->setUseKeys( false );
- $siteLinks = array(
- new SimpleSiteLink( "enwiki", "Rome", array( new
ItemId( "Q149" ), new ItemId( "Q49" ) ) ),
- new SimpleSiteLink( "dewiki", "Rom", array( new ItemId(
"Q42" ) ) ),
- new SimpleSiteLink( "itwiki", "Roma" ),
- );
- $expectedSerialization = array(
- array( "site" => "enwiki", "title" => "Rome" ),
- array( "site" => "dewiki", "title" => "Rom" ),
- array( "site" => "itwiki", "title" => "Roma" ),
"_element" => "sitelink",
);
$validArgs[] = array( $siteLinks, $options,
$expectedSerialization );
diff --git a/repo/includes/api/GetEntities.php
b/repo/includes/api/GetEntities.php
index 76fca4e..d5ef606 100644
--- a/repo/includes/api/GetEntities.php
+++ b/repo/includes/api/GetEntities.php
@@ -120,8 +120,7 @@
* @return bool
*/
protected function hasImpliedSiteLinksProp( $props ) {
- return in_array( 'sitelinks/urls', $props )
- || in_array( 'sitelinks/badges', $props );
+ return in_array( 'sitelinks/urls', $props );
}
/**
@@ -291,7 +290,7 @@
ApiBase::PARAM_ALLOW_DUPLICATES => true
),
'props' => array(
- ApiBase::PARAM_TYPE => array( 'info',
'sitelinks', 'sitelinks/urls', 'sitelinks/badges', 'aliases', 'labels',
+ ApiBase::PARAM_TYPE => array( 'info',
'sitelinks', 'sitelinks/urls', 'aliases', 'labels',
'descriptions', 'claims', 'datatype' ),
ApiBase::PARAM_DFLT =>
'info|sitelinks|aliases|labels|descriptions|claims|datatype',
ApiBase::PARAM_ISMULTI => true,
diff --git a/repo/tests/phpunit/includes/api/GetEntitiesTest.php
b/repo/tests/phpunit/includes/api/GetEntitiesTest.php
index 41bd019..10146aa 100644
--- a/repo/tests/phpunit/includes/api/GetEntitiesTest.php
+++ b/repo/tests/phpunit/includes/api/GetEntitiesTest.php
@@ -95,11 +95,9 @@
'descriptions',
'claims',
'datatype',
- //sub properties
- 'sitelinks/badges',
//multiple props
'labels|sitelinks/urls',
- 'info|aliases|labels|claims|sitelinks/badges'
+ 'info|aliases|labels|claims'
);
/**
@@ -269,11 +267,11 @@
if( in_array( 'datatype', $expected['props'] ) ){
$this->assertArrayHasKey( 'type', $entity, 'An entity
is missing the type value' );
}
+ if( in_array( 'sitelinks', $expected['props'] ) ){
+ $this->assertEntityPropsSitelinksBadges( $entity,
$expected );
+ }
if( in_array( 'sitelinks/urls', $expected['props'] ) ){
$this->assertEntityPropsSitelinksUrls( $entity,
$expected );
- }
- if( in_array( 'sitelinks/badges', $expected['props'] ) ){
- $this->assertEntityPropsSitelinksBadges( $entity,
$expected );
}
if( array_key_exists( 'dir', $expected ) && array_key_exists(
'sitelinks', $entity ) ){
$this->assertEntitySitelinkSorting( $entity, $expected
);
--
To view, visit https://gerrit.wikimedia.org/r/87615
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib35985655767422d40c5fbf37ecbfc40cd661958
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Michał Łazowik <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits