jenkins-bot has submitted this change and it was merged. Change subject: Split TermsListView out of EntityTermsView ......................................................................
Split TermsListView out of EntityTermsView Change-Id: Ia516f1fd341ef30f4ced754b2969476ada3919a5 --- M view/src/EntityTermsView.php M view/src/EntityViewPlaceholderExpander.php A view/src/TermsListView.php M view/src/ViewFactory.php M view/tests/phpunit/EntityTermsViewTest.php M view/tests/phpunit/EntityViewPlaceholderExpanderTest.php A view/tests/phpunit/TermsListViewTest.php 7 files changed, 351 insertions(+), 245 deletions(-) Approvals: Daniel Kinzler: Looks good to me, approved jenkins-bot: Verified diff --git a/view/src/EntityTermsView.php b/view/src/EntityTermsView.php index 680e3eb..372a3e4 100644 --- a/view/src/EntityTermsView.php +++ b/view/src/EntityTermsView.php @@ -9,7 +9,6 @@ use Wikibase\DataModel\Term\Fingerprint; use Wikibase\DataModel\Term\LabelsProvider; use Wikibase\DataModel\Term\TermList; -use Wikibase\Lib\LanguageNameLookup; use Wikibase\View\Template\TemplateFactory; /** @@ -22,6 +21,7 @@ * @author Thiemo Mättig * @author Bene* < [email protected] > * @author H. Snater < [email protected] > + * @author Adrian Heine <[email protected]> */ class EntityTermsView { @@ -31,14 +31,9 @@ private $templateFactory; /** - * @var EditSectionGenerator|null + * @var EditSectionGenerator */ private $sectionEditLinkGenerator; - - /** - * @var LanguageNameLookup - */ - private $languageNameLookup; /** * @var LocalizedTextProvider @@ -47,19 +42,16 @@ /** * @param TemplateFactory $templateFactory - * @param EditSectionGenerator|null $sectionEditLinkGenerator - * @param LanguageNameLookup $languageNameLookup + * @param EditSectionGenerator $sectionEditLinkGenerator * @param LocalizedTextProvider $textProvider */ public function __construct( TemplateFactory $templateFactory, - EditSectionGenerator $sectionEditLinkGenerator = null, - LanguageNameLookup $languageNameLookup, + EditSectionGenerator $sectionEditLinkGenerator, LocalizedTextProvider $textProvider ) { $this->sectionEditLinkGenerator = $sectionEditLinkGenerator; $this->templateFactory = $templateFactory; - $this->languageNameLookup = $languageNameLookup; $this->textProvider = $textProvider; } @@ -171,140 +163,12 @@ } /** - * @param LabelsProvider $labelsProvider - * @param DescriptionsProvider $descriptionsProvider - * @param AliasesProvider|null $aliasesProvider - * @param string[] $languageCodes The languages the user requested to be shown - * - * @return string HTML - */ - public function getEntityTermsForLanguageListView( - LabelsProvider $labelsProvider, - DescriptionsProvider $descriptionsProvider, - AliasesProvider $aliasesProvider = null, - array $languageCodes - ) { - $entityTermsForLanguageViewsHtml = ''; - - foreach ( $languageCodes as $languageCode ) { - $entityTermsForLanguageViewsHtml .= $this->getEntityTermsForLanguageView( - $labelsProvider, - $descriptionsProvider, - $aliasesProvider, - $languageCode - ); - } - - return $this->templateFactory->render( 'wikibase-entitytermsforlanguagelistview', - htmlspecialchars( $this->textProvider->get( 'wikibase-entitytermsforlanguagelistview-language' ) ), - htmlspecialchars( $this->textProvider->get( 'wikibase-entitytermsforlanguagelistview-label' ) ), - htmlspecialchars( $this->textProvider->get( 'wikibase-entitytermsforlanguagelistview-description' ) ), - htmlspecialchars( $this->textProvider->get( 'wikibase-entitytermsforlanguagelistview-aliases' ) ), - $entityTermsForLanguageViewsHtml - ); - } - - /** - * @param LabelsProvider $labelsProvider - * @param DescriptionsProvider $descriptionsProvider - * @param AliasesProvider|null $aliasesProvider - * @param string $languageCode - * - * @return string HTML - */ - private function getEntityTermsForLanguageView( - LabelsProvider $labelsProvider, - DescriptionsProvider $descriptionsProvider, - AliasesProvider $aliasesProvider = null, - $languageCode - ) { - $languageName = $this->languageNameLookup->getName( $languageCode ); - $labels = $labelsProvider->getLabels(); - $descriptions = $descriptionsProvider->getDescriptions(); - - return $this->templateFactory->render( 'wikibase-entitytermsforlanguageview', - 'tr', - 'td', - $languageCode, - htmlspecialchars( $languageName ), - $this->getTermView( - $labels, - 'wikibase-labelview', // Template - 'wikibase-label-empty', // Text key - $languageCode - ), - $this->getTermView( - $descriptions, - 'wikibase-descriptionview', // Template - 'wikibase-description-empty', // Text key - $languageCode - ), - $aliasesProvider ? $this->getAliasesView( $aliasesProvider->getAliasGroups(), $languageCode ) : '', - '', - 'th' - ); - } - - private function getTermView( TermList $termList, $templateName, $emptyTextKey, $languageCode ) { - $hasTerm = $termList->hasTermForLanguage( $languageCode ); - return $this->templateFactory->render( $templateName, - $hasTerm ? '' : 'wb-empty', - htmlspecialchars( $hasTerm - ? $termList->getByLanguage( $languageCode )->getText() - : $this->textProvider->get( $emptyTextKey ) - ), - '', - 'auto', // FIXME DirLookup - $hasTerm ? $languageCode : $this->textProvider->getLanguageOf( $emptyTextKey ) - ); - } - - /** - * @param AliasGroupList $aliasGroups - * @param string $languageCode - * - * @return string HTML - */ - private function getAliasesView( AliasGroupList $aliasGroups, $languageCode ) { - if ( !$aliasGroups->hasGroupForLanguage( $languageCode ) ) { - return $this->templateFactory->render( 'wikibase-aliasesview', - 'wb-empty', - '', - '', - 'auto', // FIXME DirLookup - '' - ); - } else { - $aliasesHtml = ''; - $aliases = $aliasGroups->getByLanguage( $languageCode )->getAliases(); - foreach ( $aliases as $alias ) { - $aliasesHtml .= $this->templateFactory->render( - 'wikibase-aliasesview-list-item', - htmlspecialchars( $alias ) - ); - } - - return $this->templateFactory->render( 'wikibase-aliasesview', - '', - $aliasesHtml, - '', - 'auto', // FIXME DirLookup - $languageCode - ); - } - } - - /** * @param $languageCode The language for which terms should be edited * @param EntityId|null $entityId * * @return string HTML */ private function getHtmlForLabelDescriptionAliasesEditSection( $languageCode, EntityId $entityId = null ) { - if ( $this->sectionEditLinkGenerator === null ) { - return ''; - } - return $this->sectionEditLinkGenerator->getLabelDescriptionAliasesEditSection( $languageCode, $entityId diff --git a/view/src/EntityViewPlaceholderExpander.php b/view/src/EntityViewPlaceholderExpander.php index e53c55b..2832a8d 100644 --- a/view/src/EntityViewPlaceholderExpander.php +++ b/view/src/EntityViewPlaceholderExpander.php @@ -166,14 +166,13 @@ */ public function renderTermBox() { - $entityTermsView = new EntityTermsView( + $termsListView = new TermsListView( $this->templateFactory, - null, $this->languageNameLookup, $this->textProvider ); - $html = $entityTermsView->getEntityTermsForLanguageListView( + $html = $termsListView->getHtml( $this->labelsProvider, $this->descriptionsProvider, $this->aliasesProvider, diff --git a/view/src/TermsListView.php b/view/src/TermsListView.php new file mode 100644 index 0000000..02471a6 --- /dev/null +++ b/view/src/TermsListView.php @@ -0,0 +1,192 @@ +<?php + +namespace Wikibase\View; + +use Wikibase\DataModel\Term\AliasGroupList; +use Wikibase\DataModel\Term\AliasesProvider; +use Wikibase\DataModel\Term\DescriptionsProvider; +use Wikibase\DataModel\Term\LabelsProvider; +use Wikibase\DataModel\Term\TermList; +use Wikibase\Lib\LanguageNameLookup; +use Wikibase\View\Template\TemplateFactory; + +/** + * Generates HTML to display terms of an entity in a list. + * + * @since 0.5 + * + * @license GPL-2.0+ + * @author Thiemo Mättig + * @author Bene* < [email protected] > + * @author H. Snater < [email protected] > + * @author Adrian Heine <[email protected]> + */ +class TermsListView { + + /** + * @var TemplateFactory + */ + private $templateFactory; + + /** + * @var LanguageNameLookup + */ + private $languageNameLookup; + + /** + * @var LocalizedTextProvider + */ + private $textProvider; + + /** + * @param TemplateFactory $templateFactory + * @param LanguageNameLookup $languageNameLookup + * @param LocalizedTextProvider $textProvider + */ + public function __construct( + TemplateFactory $templateFactory, + LanguageNameLookup $languageNameLookup, + LocalizedTextProvider $textProvider + ) { + $this->templateFactory = $templateFactory; + $this->languageNameLookup = $languageNameLookup; + $this->textProvider = $textProvider; + } + + /** + * @param LabelsProvider $labelsProvider + * @param DescriptionsProvider $descriptionsProvider + * @param AliasesProvider|null $aliasesProvider + * @param string[] $languageCodes The languages the user requested to be shown + * + * @return string HTML + */ + public function getHtml( + LabelsProvider $labelsProvider, + DescriptionsProvider $descriptionsProvider, + AliasesProvider $aliasesProvider = null, + array $languageCodes + ) { + $entityTermsForLanguageViewsHtml = ''; + + foreach ( $languageCodes as $languageCode ) { + $entityTermsForLanguageViewsHtml .= $this->getListItemHtml( + $labelsProvider, + $descriptionsProvider, + $aliasesProvider, + $languageCode + ); + } + + return $this->getListViewHtml( $entityTermsForLanguageViewsHtml ); + } + + /** + * @param string $contentHtml + * + * @return string HTML + */ + private function getListViewHtml( $contentHtml ) { + return $this->templateFactory->render( 'wikibase-entitytermsforlanguagelistview', + htmlspecialchars( $this->textProvider->get( 'wikibase-entitytermsforlanguagelistview-language' ) ), + htmlspecialchars( $this->textProvider->get( 'wikibase-entitytermsforlanguagelistview-label' ) ), + htmlspecialchars( $this->textProvider->get( 'wikibase-entitytermsforlanguagelistview-description' ) ), + htmlspecialchars( $this->textProvider->get( 'wikibase-entitytermsforlanguagelistview-aliases' ) ), + $contentHtml + ); + + } + + /** + * @param LabelsProvider $labelsProvider + * @param DescriptionsProvider $descriptionsProvider + * @param AliasesProvider|null $aliasesProvider + * @param string $languageCode + * + * @return string HTML + */ + private function getListItemHtml( + LabelsProvider $labelsProvider, + DescriptionsProvider $descriptionsProvider, + AliasesProvider $aliasesProvider = null, + $languageCode + ) { + $languageName = $this->languageNameLookup->getName( $languageCode ); + $labels = $labelsProvider->getLabels(); + $descriptions = $descriptionsProvider->getDescriptions(); + $hasLabel = $labels->hasTermForLanguage( $languageCode ); + $hasDescription = $descriptions->hasTermForLanguage( $languageCode ); + + return $this->templateFactory->render( 'wikibase-entitytermsforlanguageview', + 'tr', + 'td', + $languageCode, + htmlspecialchars( $languageName ), + $this->getTermView( + $labels, + 'wikibase-labelview', // Template + 'wikibase-label-empty', // Text key + $languageCode + ), + $this->getTermView( + $descriptions, + 'wikibase-descriptionview', // Template + 'wikibase-description-empty', // Text key + $languageCode + ), + $aliasesProvider ? $this->getAliasesView( $aliasesProvider->getAliasGroups(), $languageCode ) : '', + '', + 'th' + ); + } + + private function getTermView( TermList $termList, $templateName, $emptyTextKey, $languageCode ) { + $hasTerm = $termList->hasTermForLanguage( $languageCode ); + return $this->templateFactory->render( $templateName, + $hasTerm ? '' : 'wb-empty', + htmlspecialchars( $hasTerm + ? $termList->getByLanguage( $languageCode )->getText() + : $this->textProvider->get( $emptyTextKey ) + ), + '', + 'auto', // FIXME DirLookup + $hasTerm ? $languageCode : $this->textProvider->getLanguageOf( $emptyTextKey ) + ); + } + + /** + * @param AliasGroupList $aliasGroups + * @param string $languageCode + * + * @return string HTML + */ + private function getAliasesView( AliasGroupList $aliasGroups, $languageCode ) { + if ( !$aliasGroups->hasGroupForLanguage( $languageCode ) ) { + return $this->templateFactory->render( 'wikibase-aliasesview', + 'wb-empty', + '', + '', + 'auto', // FIXME DirLookup + '' + ); + } else { + $aliasesHtml = ''; + $aliases = $aliasGroups->getByLanguage( $languageCode )->getAliases(); + foreach ( $aliases as $alias ) { + $aliasesHtml .= $this->templateFactory->render( + 'wikibase-aliasesview-list-item', + htmlspecialchars( $alias ) + ); + } + + return $this->templateFactory->render( 'wikibase-aliasesview', + '', + $aliasesHtml, + '', + 'auto', // FIXME DirLookup + $languageCode + ); + } + } + +} diff --git a/view/src/ViewFactory.php b/view/src/ViewFactory.php index 9a31799..f20ea48 100644 --- a/view/src/ViewFactory.php +++ b/view/src/ViewFactory.php @@ -315,7 +315,6 @@ return new EntityTermsView( $this->templateFactory, $editSectionGenerator, - $this->languageNameLookup, $this->textProvider ); } diff --git a/view/tests/phpunit/EntityTermsViewTest.php b/view/tests/phpunit/EntityTermsViewTest.php index 66375a5..4884be0 100644 --- a/view/tests/phpunit/EntityTermsViewTest.php +++ b/view/tests/phpunit/EntityTermsViewTest.php @@ -6,7 +6,6 @@ use Wikibase\DataModel\Entity\Item; use Wikibase\DataModel\Entity\ItemId; use Wikibase\DataModel\Term\Fingerprint; -use Wikibase\Lib\LanguageNameLookup; use Wikibase\View\EditSectionGenerator; use Wikibase\View\EntityTermsView; use Wikibase\View\DummyLocalizedTextProvider; @@ -41,19 +40,11 @@ ->method( 'getLabelDescriptionAliasesEditSection' ) ->will( $this->returnValue( '<EDITSECTION>' ) ); - $languageNameLookup = $this->getMock( LanguageNameLookup::class ); - $languageNameLookup->expects( $this->exactly( $languageNameCalls ) ) - ->method( 'getName' ) - ->will( $this->returnCallback( function( $languageCode ) { - return "<LANGUAGENAME-$languageCode>"; - } ) ); - $textProvider = $textProvider ?: new DummyLocalizedTextProvider( 'lkt' ); return new EntityTermsView( TemplateFactory::getDefaultInstance(), $editSectionGenerator, - $languageNameLookup, $textProvider ); } @@ -210,97 +201,6 @@ $this->assertNotContains( 'wb-empty', $html ); $this->assertNotContains( '(wikibase-label-empty)', $html ); - } - - public function testGetEntityTermsForLanguageListView() { - $item = new Item( - new ItemId( 'Q1' ), - $this->getFingerprint() - ); - $view = $this->getEntityTermsView( 0, 1 ); - $html = $view->getEntityTermsForLanguageListView( $item, $item, $item, array( 'en' ) ); - - $this->assertContains( '(wikibase-entitytermsforlanguagelistview-language)', $html ); - $this->assertContains( '(wikibase-entitytermsforlanguagelistview-label)', $html ); - $this->assertContains( '(wikibase-entitytermsforlanguagelistview-description)', $html ); - $this->assertContains( '(wikibase-entitytermsforlanguagelistview-aliases)', $html ); - - $this->assertContains( 'wikibase-entitytermsforlanguageview-en', $html ); - $this->assertContains( '<LANGUAGENAME-en>', $html ); - $this->assertContains( '<LABEL>', $html ); - $this->assertContains( '<DESCRIPTION>', $html ); - $this->assertContains( '<ALIAS1>', $html ); - $this->assertContains( '<ALIAS2>', $html ); - $this->assertNotContains( '&', $html, 'no double escaping' ); - } - - public function testGetEntityTermsForLanguageListView_newEntity() { - $item = new Item( - null, - new Fingerprint() - ); - $view = $this->getEntityTermsView( 0, 1 ); - $html = $view->getEntityTermsForLanguageListView( $item, $item, $item, [ 'en' ] ); - - $this->assertContains( 'wb-empty', $html ); - $this->assertContains( '(wikibase-label-empty)', $html ); - $this->assertContains( '(wikibase-description-empty)', $html ); - $this->assertNotContains( '(wikibase-aliases-empty)', $html ); - } - - public function testGetEntityTermsForLanguageListView_isEscaped() { - $textProvider = $this->getMock( LocalizedTextProvider::class ); - $textProvider->expects( $this->any() ) - ->method( 'get' ) - ->will( $this->returnCallback( function( $key ) { - return $key === 'wikibase-entitytermsforlanguagelistview-language' ? '"RAW"' : "($key)"; - } ) ); - - $item = new Item( - new ItemId( 'Q1' ), - new Fingerprint() - ); - $view = $this->getEntityTermsView( 0, 0, $textProvider ); - $html = $view->getEntityTermsForLanguageListView( $item, $item, $item, [] ); - - $this->assertContains( '"RAW"', $html ); - $this->assertNotContains( '"RAW"', $html ); - } - - public function testGetEntityTermsForLanguageListView_isMarkedAsEmpty() { - $item = new Item( - new ItemId( 'Q1' ), - new Fingerprint() - ); - $view = $this->getEntityTermsView( 0, 1 ); - $html = $view->getEntityTermsForLanguageListView( $item, $item, $item, [ 'en' ] ); - - $this->assertContains( 'wb-empty', $html ); - $this->assertContains( '(wikibase-label-empty)', $html ); - $this->assertContains( '(wikibase-description-empty)', $html ); - $this->assertNotContains( '(wikibase-aliases-empty)', $html ); - } - - public function testGetEntityTermsForLanguageListView_noAliasesProvider() { - $item = new Item( - new ItemId( 'Q1' ), - $this->getFingerprint() - ); - $view = $this->getEntityTermsView( 0, 1 ); - $html = $view->getEntityTermsForLanguageListView( $item, $item, null, array( 'en' ) ); - - $this->assertContains( '(wikibase-entitytermsforlanguagelistview-language)', $html ); - $this->assertContains( '(wikibase-entitytermsforlanguagelistview-label)', $html ); - $this->assertContains( '(wikibase-entitytermsforlanguagelistview-description)', $html ); - $this->assertContains( '(wikibase-entitytermsforlanguagelistview-aliases)', $html ); - - $this->assertContains( 'wikibase-entitytermsforlanguageview-en', $html ); - $this->assertContains( '<LANGUAGENAME-en>', $html ); - $this->assertContains( '<LABEL>', $html ); - $this->assertContains( '<DESCRIPTION>', $html ); - $this->assertNotContains( '<ALIAS1>', $html ); - $this->assertNotContains( '<ALIAS2>', $html ); - $this->assertNotContains( '&', $html, 'no double escaping' ); } } diff --git a/view/tests/phpunit/EntityViewPlaceholderExpanderTest.php b/view/tests/phpunit/EntityViewPlaceholderExpanderTest.php index 0af1bc2..a6a0f29 100644 --- a/view/tests/phpunit/EntityViewPlaceholderExpanderTest.php +++ b/view/tests/phpunit/EntityViewPlaceholderExpanderTest.php @@ -16,7 +16,7 @@ /** * @covers Wikibase\View\EntityViewPlaceholderExpander * - * @uses Wikibase\View\EntityTermsView + * @uses Wikibase\View\TermsListView * @uses Wikibase\View\Template\Template * @uses Wikibase\View\Template\TemplateFactory * @uses Wikibase\View\Template\TemplateRegistry diff --git a/view/tests/phpunit/TermsListViewTest.php b/view/tests/phpunit/TermsListViewTest.php new file mode 100644 index 0000000..86d248a --- /dev/null +++ b/view/tests/phpunit/TermsListViewTest.php @@ -0,0 +1,152 @@ +<?php + +namespace Wikibase\View\Tests; + +use PHPUnit_Framework_TestCase; +use Wikibase\DataModel\Entity\Item; +use Wikibase\DataModel\Entity\ItemId; +use Wikibase\DataModel\Term\Fingerprint; +use Wikibase\Lib\LanguageNameLookup; +use Wikibase\View\TermsListView; +use Wikibase\View\DummyLocalizedTextProvider; +use Wikibase\View\LocalizedTextProvider; +use Wikibase\View\Template\TemplateFactory; + +/** + * @covers Wikibase\View\TermsListView + * + * @uses Wikibase\View\Template\Template + * @uses Wikibase\View\Template\TemplateFactory + * @uses Wikibase\View\Template\TemplateRegistry + * + * @group Wikibase + * @group WikibaseView + * + * @license GPL-2.0+ + * @author Bene* < [email protected] > + * @author Thiemo Mättig + * @author Adrian Heine <[email protected]> + */ +class TermsListViewTest extends PHPUnit_Framework_TestCase { + + private function getTermsListView( + $languageNameCalls = 0, + LocalizedTextProvider $textProvider = null + ) { + + $languageNameLookup = $this->getMock( LanguageNameLookup::class ); + $languageNameLookup->expects( $this->exactly( $languageNameCalls ) ) + ->method( 'getName' ) + ->will( $this->returnCallback( function( $languageCode ) { + return "<LANGUAGENAME-$languageCode>"; + } ) ); + + $textProvider = $textProvider ?: new DummyLocalizedTextProvider( 'lkt' ); + + return new TermsListView( + TemplateFactory::getDefaultInstance(), + $languageNameLookup, + $textProvider + ); + } + + private function getFingerprint( $languageCode = 'en' ) { + $fingerprint = new Fingerprint(); + $fingerprint->setLabel( $languageCode, '<LABEL>' ); + $fingerprint->setDescription( $languageCode, '<DESCRIPTION>' ); + $fingerprint->setAliasGroup( $languageCode, array( '<ALIAS1>', '<ALIAS2>' ) ); + return $fingerprint; + } + + public function testGetEntityTermsForLanguageListView() { + $item = new Item( + new ItemId( 'Q1' ), + $this->getFingerprint() + ); + $view = $this->getTermsListView( 1 ); + $html = $view->getHtml( $item, $item, $item, array( 'en' ) ); + + $this->assertContains( '(wikibase-entitytermsforlanguagelistview-language)', $html ); + $this->assertContains( '(wikibase-entitytermsforlanguagelistview-label)', $html ); + $this->assertContains( '(wikibase-entitytermsforlanguagelistview-description)', $html ); + $this->assertContains( '(wikibase-entitytermsforlanguagelistview-aliases)', $html ); + + $this->assertContains( 'wikibase-entitytermsforlanguageview-en', $html ); + $this->assertContains( '<LANGUAGENAME-en>', $html ); + $this->assertContains( '<LABEL>', $html ); + $this->assertContains( '<DESCRIPTION>', $html ); + $this->assertContains( '<ALIAS1>', $html ); + $this->assertContains( '<ALIAS2>', $html ); + $this->assertNotContains( '&', $html, 'no double escaping' ); + } + + public function testGetEntityTermsForLanguageListView_newEntity() { + $item = new Item( + null, + new Fingerprint() + ); + $view = $this->getTermsListView( 1 ); + $html = $view->getHtml( $item, $item, $item, [ 'en' ] ); + + $this->assertContains( 'wb-empty', $html ); + $this->assertContains( '(wikibase-label-empty)', $html ); + $this->assertContains( '(wikibase-description-empty)', $html ); + $this->assertNotContains( '(wikibase-aliases-empty)', $html ); + } + + public function testGetEntityTermsForLanguageListView_isEscaped() { + $textProvider = $this->getMock( LocalizedTextProvider::class ); + $textProvider->expects( $this->any() ) + ->method( 'get' ) + ->will( $this->returnCallback( function( $key ) { + return $key === 'wikibase-entitytermsforlanguagelistview-language' ? '"RAW"' : "($key)"; + } ) ); + + $item = new Item( + new ItemId( 'Q1' ), + new Fingerprint() + ); + $view = $this->getTermsListView( 0, $textProvider ); + $html = $view->getHtml( $item, $item, $item, [] ); + + $this->assertContains( '"RAW"', $html ); + $this->assertNotContains( '"RAW"', $html ); + } + + public function testGetEntityTermsForLanguageListView_isMarkedAsEmpty() { + $item = new Item( + new ItemId( 'Q1' ), + new Fingerprint() + ); + $view = $this->getTermsListView( 1 ); + $html = $view->getHtml( $item, $item, $item, [ 'en' ] ); + + $this->assertContains( 'wb-empty', $html ); + $this->assertContains( '(wikibase-label-empty)', $html ); + $this->assertContains( '(wikibase-description-empty)', $html ); + $this->assertNotContains( '(wikibase-aliases-empty)', $html ); + } + + public function testGetEntityTermsForLanguageListView_noAliasesProvider() { + $item = new Item( + new ItemId( 'Q1' ), + $this->getFingerprint() + ); + $view = $this->getTermsListView( 1 ); + $html = $view->getHtml( $item, $item, null, array( 'en' ) ); + + $this->assertContains( '(wikibase-entitytermsforlanguagelistview-language)', $html ); + $this->assertContains( '(wikibase-entitytermsforlanguagelistview-label)', $html ); + $this->assertContains( '(wikibase-entitytermsforlanguagelistview-description)', $html ); + $this->assertContains( '(wikibase-entitytermsforlanguagelistview-aliases)', $html ); + + $this->assertContains( 'wikibase-entitytermsforlanguageview-en', $html ); + $this->assertContains( '<LANGUAGENAME-en>', $html ); + $this->assertContains( '<LABEL>', $html ); + $this->assertContains( '<DESCRIPTION>', $html ); + $this->assertNotContains( '<ALIAS1>', $html ); + $this->assertNotContains( '<ALIAS2>', $html ); + $this->assertNotContains( '&', $html, 'no double escaping' ); + } + +} -- To view, visit https://gerrit.wikimedia.org/r/284357 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ia516f1fd341ef30f4ced754b2969476ada3919a5 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Adrian Heine <[email protected]> Gerrit-Reviewer: Daniel Kinzler <[email protected]> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
