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

Reply via email to