Daniel Werner has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/89102


Change subject: optional lang fallback chain in 
EntityRevisionSerializer::newForFrontendStore
......................................................................

optional lang fallback chain in EntityRevisionSerializer::newForFrontendStore

The language fallback chain (third parameter) previously required by
EntityRevisionSerializer::newForFrontendStore is now optional.

Change-Id: I8f2e44f047804275fd0e4e9e285d1746621ace54
---
M repo/includes/serializers/EntityRevisionSerializer.php
M repo/tests/phpunit/includes/serializers/EntityRevisionSerializerTest.php
2 files changed, 36 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/02/89102/1

diff --git a/repo/includes/serializers/EntityRevisionSerializer.php 
b/repo/includes/serializers/EntityRevisionSerializer.php
index 5b04ac6..52946ac 100644
--- a/repo/includes/serializers/EntityRevisionSerializer.php
+++ b/repo/includes/serializers/EntityRevisionSerializer.php
@@ -58,7 +58,7 @@
         *
         * @since 0.5
         *
-        * @param EntityRevision $entityContent
+        * @param EntityRevision $entityRevision
         * @return array
         *
         * @throws InvalidArgumentException If $entityContent is no instance of 
Content.
@@ -98,12 +98,19 @@
         *
         * @return EntityRevisionSerializer
         */
-       public static function newForFrontendStore( EntityTitleLookup 
$titleLookup, $primaryLanguage, LanguageFallbackChain $languageFallbackChain ) {
+       public static function newForFrontendStore(
+               EntityTitleLookup $titleLookup,
+               $primaryLanguage,
+               LanguageFallbackChain $languageFallbackChain = null
+       ) {
                $entitySerializationOptions =
                        new EntitySerializationOptions();
                
                $entitySerializationOptions->setProps( array( 'labels', 
'descriptions', 'datatype' ) );
-               $entitySerializationOptions->setLanguages( array( 
$primaryLanguage => $languageFallbackChain ) );
+               if( $languageFallbackChain ) {
+                       $entitySerializationOptions->setLanguages(
+                               array( $primaryLanguage => 
$languageFallbackChain ) );
+               }
 
                $entityRevisionSerializationOptions =
                        new EntityRevisionSerializationOptions( 
$entitySerializationOptions );
diff --git 
a/repo/tests/phpunit/includes/serializers/EntityRevisionSerializerTest.php 
b/repo/tests/phpunit/includes/serializers/EntityRevisionSerializerTest.php
index 4ed7e91..8aa4d87 100644
--- a/repo/tests/phpunit/includes/serializers/EntityRevisionSerializerTest.php
+++ b/repo/tests/phpunit/includes/serializers/EntityRevisionSerializerTest.php
@@ -8,7 +8,6 @@
 use Wikibase\EntityTitleLookup;
 use Wikibase\LanguageFallbackChain;
 use Wikibase\LanguageWithConversion;
-use Wikibase\Lib\EntityIdFormatter;
 use Wikibase\Property;
 use Wikibase\Serializers\EntityRevisionSerializationOptions;
 use Wikibase\Serializers\EntityRevisionSerializer;
@@ -113,21 +112,44 @@
        }
 
        /**
+        * @dataProvider newForFrontendStoreArgumentsProvider
         * @since 0.5
         */
        public function testNewForFrontendStore() {
-               $titleLookup = $this->getTitleLookupMock();
+               $serializer = call_user_func_array(
+                               
'Wikibase\Serializers\EntityRevisionSerializer::newForFrontendStore',
+                               func_get_args()
+               );
+               $this->assertInstanceOf( $this->getClass(), $serializer );
+       }
 
+       /**
+        * Provides function arguments which are expected to create a valid 
instance when provided to
+        * EntityRevisionSerializer::newForFrontendStore.
+        *
+        * @since 0.5
+        *
+        * @return array[]
+        */
+       public function newForFrontendStoreArgumentsProvider() {
+               $titleLookup = $this->getTitleLookupMock();
                $fallbackChain = new LanguageFallbackChain( array(
                        LanguageWithConversion::factory( 'en' )
                ) );
 
-               $serializer = EntityRevisionSerializer::newForFrontendStore(
+               $cases = array();
+
+               $cases[] = array(
                        $titleLookup,
                        'en',
                        $fallbackChain
                );
 
-               $this->assertInstanceOf( $this->getClass(), $serializer );
+               $cases[] = array(
+                       $titleLookup,
+                       'de'
+               );
+
+               return $cases;
        }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/89102
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8f2e44f047804275fd0e4e9e285d1746621ace54
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Daniel Werner <[email protected]>

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

Reply via email to