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

Reply via email to