WMDE-leszek has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/358541 )
Change subject: [WIP] Display statements on Senses ...................................................................... [WIP] Display statements on Senses TODO: browser test Bug: TODO add Change-Id: Ic61ab1937690efa5ff59e1f7f8805393c3324f03 --- M resources/templates.php M src/View/LexemeViewFactory.php M src/View/SensesView.php M tests/phpunit/mediawiki/View/SensesViewTest.php 4 files changed, 47 insertions(+), 9 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikibaseLexeme refs/changes/41/358541/1 diff --git a/resources/templates.php b/resources/templates.php index a904476..dd2e8da 100644 --- a/resources/templates.php +++ b/resources/templates.php @@ -39,6 +39,7 @@ <span class="wikibase-lexeme-sense-gloss-text $3">$4</span> <span class="wikibase-lexeme-sense-id wikibase-title-id"> $5</span> </h3> + $6 </div> HTML; diff --git a/src/View/LexemeViewFactory.php b/src/View/LexemeViewFactory.php index c39c8b2..4e9e258 100644 --- a/src/View/LexemeViewFactory.php +++ b/src/View/LexemeViewFactory.php @@ -82,13 +82,6 @@ $languageDirectionalityLookup = new MediaWikiLanguageDirectionalityLookup(); $localizedTextProvider = new MediaWikiLocalizedTextProvider( $this->languageCode ); - $sensesView = new SensesView( - $localizedTextProvider, - $languageDirectionalityLookup, - $templateFactory, - $this->languageCode - ); - $wikibaseRepo = WikibaseRepo::getDefaultInstance(); $statementSectionsView = $wikibaseRepo->getViewFactory()->newStatementSectionsView( $this->languageCode, @@ -118,6 +111,14 @@ $statementSectionsView ); + $sensesView = new SensesView( + $localizedTextProvider, + $languageDirectionalityLookup, + $templateFactory, + $statementSectionsView, + $this->languageCode + ); + return new LexemeView( TemplateFactory::getDefaultInstance(), $this->entityTermsView, diff --git a/src/View/SensesView.php b/src/View/SensesView.php index 3d2dc9d..ad1148d 100644 --- a/src/View/SensesView.php +++ b/src/View/SensesView.php @@ -6,6 +6,7 @@ use Wikibase\Lexeme\View\Template\LexemeTemplateFactory; use Wikibase\View\LanguageDirectionalityLookup; use Wikibase\View\LocalizedTextProvider; +use Wikibase\View\StatementSectionsView; /** * @license GPL-2.0+ @@ -28,6 +29,11 @@ private $templateFactory; /** + * @var StatementSectionsView + */ + private $statementSectionsView; + + /** * @var string */ private $languageCode; @@ -36,17 +42,20 @@ * @param LocalizedTextProvider $textProvider * @param LanguageDirectionalityLookup $languageDirectionalityLookup * @param LexemeTemplateFactory $templateFactory + * @param StatementSectionsView $statementSectionsView * @param string $languageCode */ public function __construct( LocalizedTextProvider $textProvider, LanguageDirectionalityLookup $languageDirectionalityLookup, LexemeTemplateFactory $templateFactory, + StatementSectionsView $statementSectionsView, $languageCode ) { $this->textProvider = $textProvider; $this->languageDirectionalityLookup = $languageDirectionalityLookup; $this->templateFactory = $templateFactory; + $this->statementSectionsView = $statementSectionsView; $this->languageCode = $languageCode; } @@ -95,7 +104,8 @@ // TODO: should it rather fallback to gloss in language that exists? : $this->textProvider->get( $emptyTextKey ), wfMessage( 'parentheses' )->rawParams( htmlspecialchars( $sense->getId()->getSerialization() ) ) - ->text() + ->text(), + $this->statementSectionsView->getHtml( $sense->getStatements() ) ] ); } diff --git a/tests/phpunit/mediawiki/View/SensesViewTest.php b/tests/phpunit/mediawiki/View/SensesViewTest.php index 375d89d..97254ba 100644 --- a/tests/phpunit/mediawiki/View/SensesViewTest.php +++ b/tests/phpunit/mediawiki/View/SensesViewTest.php @@ -12,6 +12,7 @@ use Wikibase\Lexeme\View\Template\LexemeTemplateFactory; use Wikibase\Repo\MediaWikiLanguageDirectionalityLookup; use Wikibase\View\DummyLocalizedTextProvider; +use Wikibase\View\StatementSectionsView; /** * @covers Wikibase\Lexeme\View\LexemeSensesView @@ -21,6 +22,8 @@ * @license GPL-2.0+ */ class SensesViewTest extends PHPUnit_Framework_TestCase { + + const STATEMENT_SECTION_HTML = '<div class="statement-section"/>'; public function testHtmlContainsTheSensesHeadline() { $view = $this->newSensesView(); @@ -90,13 +93,36 @@ ); } + public function testHtmlContainsStatementSection() { + $view = $this->newSensesView(); + $html = $view->getHtml( [ + new Sense( + new SenseId( 'S1' ), + new TermList( [ new Term( 'en', 'test gloss' ) ] ), + new StatementList() + ) + ] ); + + assertThat( + $html, + is( htmlPiece( havingChild( tagMatchingOutline( self::STATEMENT_SECTION_HTML ) ) ) ) + ); + } + private function newSensesView() { + $statementSectionView = $this->getMockBuilder( StatementSectionsView::class ) + ->disableOriginalConstructor() + ->getMock(); + $statementSectionView->method( 'getHtml' ) + ->will( $this->returnValue( self::STATEMENT_SECTION_HTML ) ); + return new SensesView( new DummyLocalizedTextProvider(), new MediaWikiLanguageDirectionalityLookup(), new LexemeTemplateFactory( [ - 'wikibase-lexeme-sense' => '<h3 dir="$1" lang="$2"><span class="$3">$4</span> $5</h3>', + 'wikibase-lexeme-sense' => '<h3 dir="$1" lang="$2"><span class="$3">$4</span> $5</h3>$6', ] ), + $statementSectionView, 'en' ); } -- To view, visit https://gerrit.wikimedia.org/r/358541 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic61ab1937690efa5ff59e1f7f8805393c3324f03 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/WikibaseLexeme Gerrit-Branch: master Gerrit-Owner: WMDE-leszek <leszek.mani...@wikimedia.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits