[MediaWiki-commits] [Gerrit] mediawiki...Wikibase[master]: Fix b/c in mw.wikibase.renderSnak(s)
jenkins-bot has submitted this change and it was merged. Change subject: Fix b/c in mw.wikibase.renderSnak(s) .. Fix b/c in mw.wikibase.renderSnak(s) By also switching it to using DataAccessSnakFormatterFactory::newEscapedPlainTextSnakFormatter I forgot to also change this to DataAccessSnakFormatterFactory and later to FORMAT_PLAIN in 6c8e26b73070b26e3fcf1bac1b5cb1b99f394d7a and in 628bc406eb8e8ec67e5b5d0710a257d7cdbea7b7 respectively. This has one side effect: It enables language fallbacks for said functions. This has apparently been forgotten in 9efbaaf23d23d202aa78df86b4d496f6d78f0bd7. Change-Id: I9c055f0bd36e1ed309098538fc14f149f0431a45 --- M client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php M client/tests/phpunit/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibraryTest.php 2 files changed, 28 insertions(+), 13 deletions(-) Approvals: Aude: Looks good to me, approved jenkins-bot: Verified diff --git a/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php b/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php index c8eb800..18c23e2 100644 --- a/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php +++ b/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php @@ -7,12 +7,10 @@ use Language; use Scribunto_LuaLibraryBase; use ScribuntoException; -use ValueFormatters\FormatterOptions; use Wikibase\Client\DataAccess\PropertyIdResolver; use Wikibase\Client\PropertyLabelNotResolvedException; use Wikibase\Client\RepoLinker; use Wikibase\Client\Usage\ParserOutputUsageAccumulator; -use Wikibase\Client\Usage\UsageTrackingSnakFormatter; use Wikibase\Client\Usage\UsageTrackingTermLookup; use Wikibase\Client\WikibaseClient; use Wikibase\DataModel\Entity\EntityIdParser; @@ -20,7 +18,6 @@ use Wikibase\DataModel\SerializerFactory; use Wikibase\DataModel\Services\Lookup\EntityAccessLimitException; use Wikibase\LanguageFallbackChain; -use Wikibase\Lib\SnakFormatter; use Wikibase\Lib\Store\LanguageFallbackLabelDescriptionLookup; use Wikibase\Lib\Store\PropertyOrderProvider; @@ -223,16 +220,10 @@ private function newSnakSerializationRenderer() { $wikibaseClient = WikibaseClient::getDefaultInstance(); - $formatterOptions = new FormatterOptions( array( - SnakFormatter::OPT_LANG => $this->getLanguage()->getCode() - ) ); - - $snakFormatter = new UsageTrackingSnakFormatter( - $wikibaseClient->getSnakFormatterFactory()->getSnakFormatter( - SnakFormatter::FORMAT_WIKI, $formatterOptions - ), - $this->getUsageAccumulator(), - $this->getLanguageFallbackChain()->getFetchLanguageCodes() + $snakFormatterFactory = $wikibaseClient->getDataAccessSnakFormatterFactory(); + $snakFormatter = $snakFormatterFactory->newEscapedPlainTextSnakFormatter( + $this->getLanguage(), + $this->getUsageAccumulator() ); $snakDeserializer = $wikibaseClient->getExternalFormatDeserializerFactory()->newSnakDeserializer(); diff --git a/client/tests/phpunit/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibraryTest.php b/client/tests/phpunit/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibraryTest.php index f9c829d..b3e3d72 100644 --- a/client/tests/phpunit/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibraryTest.php +++ b/client/tests/phpunit/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibraryTest.php @@ -281,6 +281,30 @@ $this->assertSame( $allowDataAccessInUserLanguage, $cacheSplit ); } + public function testRenderSnak_languageFallback() { + $this->setAllowDataAccessInUserLanguage( true ); + $cacheSplit = false; + $lang = Language::factory( 'ku' ); + + $luaWikibaseLibrary = $this->newScribuntoLuaWikibaseLibrary( $cacheSplit, $lang ); + $entityArr = $luaWikibaseLibrary->getEntity( 'Q32488' ); + + $snak = $entityArr[0]['claims']['P456'][1]['mainsnak']; + $this->assertSame( + [ 'Pisîk' ], + $luaWikibaseLibrary->renderSnak( $snak ) + ); + + // All languages in the fallback chain for 'ku-arab' count as "used". + $usage = $luaWikibaseLibrary->getUsageAccumulator()->getUsages(); + $this->assertArrayHasKey( 'Q885588#L.ku', $usage ); + $this->assertArrayHasKey( 'Q885588#L.ku-arab', $usage ); + $this->assertArrayHasKey( 'Q885588#L.ku-latn', $usage ); + $this->assertArrayHasKey( 'Q885588#T', $usage ); + + $this->assertSame( true, $cacheSplit ); + } +
[MediaWiki-commits] [Gerrit] mediawiki...Wikibase[master]: Fix b/c in mw.wikibase.renderSnak(s)
Hoo man has uploaded a new change for review. https://gerrit.wikimedia.org/r/317568 Change subject: Fix b/c in mw.wikibase.renderSnak(s) .. Fix b/c in mw.wikibase.renderSnak(s) By also switching it to using DataAccessSnakFormatterFactory::newEscapedPlainTextSnakFormatter I forgot to also change this to DataAccessSnakFormatterFactory and later to FORMAT_PLAIN in 6c8e26b73070b26e3fcf1bac1b5cb1b99f394d7a and in 628bc406eb8e8ec67e5b5d0710a257d7cdbea7b7 respectively. This has one side effect: It enables language fallbacks for said functions. This has apparently been forgotten in 9efbaaf23d23d202aa78df86b4d496f6d78f0bd7. Change-Id: I9c055f0bd36e1ed309098538fc14f149f0431a45 --- M client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php M client/tests/phpunit/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibraryTest.php 2 files changed, 28 insertions(+), 13 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/68/317568/1 diff --git a/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php b/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php index c8eb800..18c23e2 100644 --- a/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php +++ b/client/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibrary.php @@ -7,12 +7,10 @@ use Language; use Scribunto_LuaLibraryBase; use ScribuntoException; -use ValueFormatters\FormatterOptions; use Wikibase\Client\DataAccess\PropertyIdResolver; use Wikibase\Client\PropertyLabelNotResolvedException; use Wikibase\Client\RepoLinker; use Wikibase\Client\Usage\ParserOutputUsageAccumulator; -use Wikibase\Client\Usage\UsageTrackingSnakFormatter; use Wikibase\Client\Usage\UsageTrackingTermLookup; use Wikibase\Client\WikibaseClient; use Wikibase\DataModel\Entity\EntityIdParser; @@ -20,7 +18,6 @@ use Wikibase\DataModel\SerializerFactory; use Wikibase\DataModel\Services\Lookup\EntityAccessLimitException; use Wikibase\LanguageFallbackChain; -use Wikibase\Lib\SnakFormatter; use Wikibase\Lib\Store\LanguageFallbackLabelDescriptionLookup; use Wikibase\Lib\Store\PropertyOrderProvider; @@ -223,16 +220,10 @@ private function newSnakSerializationRenderer() { $wikibaseClient = WikibaseClient::getDefaultInstance(); - $formatterOptions = new FormatterOptions( array( - SnakFormatter::OPT_LANG => $this->getLanguage()->getCode() - ) ); - - $snakFormatter = new UsageTrackingSnakFormatter( - $wikibaseClient->getSnakFormatterFactory()->getSnakFormatter( - SnakFormatter::FORMAT_WIKI, $formatterOptions - ), - $this->getUsageAccumulator(), - $this->getLanguageFallbackChain()->getFetchLanguageCodes() + $snakFormatterFactory = $wikibaseClient->getDataAccessSnakFormatterFactory(); + $snakFormatter = $snakFormatterFactory->newEscapedPlainTextSnakFormatter( + $this->getLanguage(), + $this->getUsageAccumulator() ); $snakDeserializer = $wikibaseClient->getExternalFormatDeserializerFactory()->newSnakDeserializer(); diff --git a/client/tests/phpunit/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibraryTest.php b/client/tests/phpunit/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibraryTest.php index f9c829d..b3e3d72 100644 --- a/client/tests/phpunit/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibraryTest.php +++ b/client/tests/phpunit/includes/DataAccess/Scribunto/Scribunto_LuaWikibaseLibraryTest.php @@ -281,6 +281,30 @@ $this->assertSame( $allowDataAccessInUserLanguage, $cacheSplit ); } + public function testRenderSnak_languageFallback() { + $this->setAllowDataAccessInUserLanguage( true ); + $cacheSplit = false; + $lang = Language::factory( 'ku' ); + + $luaWikibaseLibrary = $this->newScribuntoLuaWikibaseLibrary( $cacheSplit, $lang ); + $entityArr = $luaWikibaseLibrary->getEntity( 'Q32488' ); + + $snak = $entityArr[0]['claims']['P456'][1]['mainsnak']; + $this->assertSame( + [ 'Pisîk' ], + $luaWikibaseLibrary->renderSnak( $snak ) + ); + + // All languages in the fallback chain for 'ku-arab' count as "used". + $usage = $luaWikibaseLibrary->getUsageAccumulator()->getUsages(); + $this->assertArrayHasKey( 'Q885588#L.ku', $usage ); + $this->assertArrayHasKey( 'Q885588#L.ku-arab', $usage ); + $this->assertArrayHasKey( 'Q885588#L.ku-latn', $usage ); + $this->assertArrayHasKey( 'Q885588#T', $usage ); + +