Adrian Heine has uploaded a new change for review.
https://gerrit.wikimedia.org/r/282118
Change subject: Introduce LocalizedTextProvider
......................................................................
Introduce LocalizedTextProvider
Change-Id: I96ec3c211c338d3ab8df3ecfebec7370628a848f
---
M repo/includes/Hooks/OutputPageBeforeHTMLHookHandler.php
A repo/includes/MediaWikiLocalizedTextProvider.php
M repo/includes/ParserOutput/EntityParserOutputGenerator.php
M repo/includes/ParserOutput/EntityParserOutputGeneratorFactory.php
M repo/includes/WikibaseRepo.php
M repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorTest.php
M view/src/ClaimHtmlGenerator.php
M view/src/EntityTermsView.php
M view/src/EntityViewPlaceholderExpander.php
M view/src/ItemView.php
A view/src/KeyNameLocalizedTextProvider.php
A view/src/LocalizedTextProvider.php
M view/src/PropertyView.php
M view/src/SiteLinksView.php
M view/src/SnakHtmlGenerator.php
M view/src/StatementSectionsView.php
M view/src/ToolbarEditSectionGenerator.php
M view/src/ViewFactory.php
M view/tests/phpunit/ClaimHtmlGeneratorTest.php
M view/tests/phpunit/EmptyEditSectionGeneratorTest.php
M view/tests/phpunit/EntityTermsViewTest.php
M view/tests/phpunit/EntityViewPlaceholderExpanderTest.php
M view/tests/phpunit/EntityViewTest.php
M view/tests/phpunit/ItemViewTest.php
M view/tests/phpunit/PropertyViewTest.php
M view/tests/phpunit/SiteLinksViewTest.php
M view/tests/phpunit/SnakHtmlGeneratorTest.php
M view/tests/phpunit/StatementGroupListViewTest.php
M view/tests/phpunit/StatementSectionsViewTest.php
M view/tests/phpunit/Template/TemplateRegistryTest.php
M view/tests/phpunit/ToolbarEditSectionGeneratorTest.php
M view/tests/phpunit/ViewFactoryTest.php
32 files changed, 382 insertions(+), 127 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/18/282118/1
diff --git a/repo/includes/Hooks/OutputPageBeforeHTMLHookHandler.php
b/repo/includes/Hooks/OutputPageBeforeHTMLHookHandler.php
index 1e282c1..ed506e1 100644
--- a/repo/includes/Hooks/OutputPageBeforeHTMLHookHandler.php
+++ b/repo/includes/Hooks/OutputPageBeforeHTMLHookHandler.php
@@ -9,6 +9,7 @@
use Wikibase\Lib\Store\EntityRevisionLookup;
use Wikibase\Lib\UserLanguageLookup;
use Wikibase\Repo\BabelUserLanguageLookup;
+use Wikibase\Repo\MediaWikiLocalizedTextProvider;
use Wikibase\Repo\WikibaseRepo;
use Wikibase\View\EntityViewPlaceholderExpander;
use Wikibase\View\Template\TemplateFactory;
@@ -167,7 +168,8 @@
$aliasesProvider,
$this->userLanguageLookup,
$this->termsLanguages,
- $this->languageNameLookup
+ $this->languageNameLookup,
+ new MediaWikiLocalizedTextProvider(
$out->getLanguage()->getCode() )
);
}
diff --git a/repo/includes/MediaWikiLocalizedTextProvider.php
b/repo/includes/MediaWikiLocalizedTextProvider.php
new file mode 100644
index 0000000..6a8ae3c
--- /dev/null
+++ b/repo/includes/MediaWikiLocalizedTextProvider.php
@@ -0,0 +1,56 @@
+<?php
+
+namespace Wikibase\Repo;
+
+use Wikibase\View\LocalizedTextProvider;
+
+/**
+ * A service providing localized texts for keys
+ *
+ * @since 0.5
+ *
+ * @license GPL-2.0+
+ * @author Adrian Heine < [email protected] >
+ */
+class MediaWikiLocalizedTextProvider implements LocalizedTextProvider {
+
+ /**
+ * @var string
+ */
+ private $languageCode;
+
+ /**
+ * @param string $languageCode
+ */
+ public function __construct( $languageCode ) {
+ $this->languageCode = $languageCode;
+ }
+
+ /**
+ * @param string $key
+ * @param string[] $params Parameters that could be used for generating
the text
+ *
+ * @return string The localized text
+ */
+ public function get( $key, $params = [] ) {
+ return wfMessage( $key, $params )->inLanguage(
$this->languageCode )->text();
+ }
+
+ /**
+ * @param string $key
+ *
+ * @return bool
+ */
+ public function has( $key ) {
+ return wfMessage( $key )->exists();
+ }
+
+ /**
+ * @param string $key
+ *
+ * @return string The language of the text returned for a specific key
+ */
+ public function getLanguageOf( $key ) {
+ return $this->languageCode;
+ }
+}
diff --git a/repo/includes/ParserOutput/EntityParserOutputGenerator.php
b/repo/includes/ParserOutput/EntityParserOutputGenerator.php
index 96e8459..2ae2657 100644
--- a/repo/includes/ParserOutput/EntityParserOutputGenerator.php
+++ b/repo/includes/ParserOutput/EntityParserOutputGenerator.php
@@ -17,6 +17,7 @@
use Wikibase\Repo\LinkedData\EntityDataFormatProvider;
use Wikibase\Repo\View\RepoSpecialPageLinker;
use Wikibase\View\EmptyEditSectionGenerator;
+use Wikibase\View\LocalizedTextProvider;
use Wikibase\View\Template\TemplateFactory;
use Wikibase\View\ToolbarEditSectionGenerator;
@@ -24,7 +25,7 @@
* Creates the parser output for an entity.
*
* @note This class relies on Entity and behaves differently when you pass an
item as paramater.
- * We should split this into classes for items and other types of
entities.
+ * We should split this into classes for items and other types of
entities.
*
* @since 0.5
*
@@ -65,6 +66,11 @@
private $templateFactory;
/**
+ * @var LocalizedTextProvider
+ */
+ private $textProvider;
+
+ /**
* @var EntityDataFormatProvider
*/
private $entityDataFormatProvider;
@@ -103,6 +109,7 @@
EntityInfoBuilderFactory $entityInfoBuilderFactory,
LanguageFallbackChain $languageFallbackChain,
TemplateFactory $templateFactory,
+ LocalizedTextProvider $textProvider,
EntityDataFormatProvider $entityDataFormatProvider,
array $dataUpdaters,
$languageCode,
@@ -114,6 +121,7 @@
$this->entityInfoBuilderFactory = $entityInfoBuilderFactory;
$this->languageFallbackChain = $languageFallbackChain;
$this->templateFactory = $templateFactory;
+ $this->textProvider = $textProvider;
$this->entityDataFormatProvider = $entityDataFormatProvider;
$this->dataUpdaters = $dataUpdaters;
$this->languageCode = $languageCode;
@@ -260,7 +268,8 @@
$editSectionGenerator = $this->editable ? new
ToolbarEditSectionGenerator(
new RepoSpecialPageLinker(),
- $this->templateFactory
+ $this->templateFactory,
+ $this->textProvider
) : new EmptyEditSectionGenerator();
$entityView = $this->entityViewFactory->newEntityView(
diff --git a/repo/includes/ParserOutput/EntityParserOutputGeneratorFactory.php
b/repo/includes/ParserOutput/EntityParserOutputGeneratorFactory.php
index c7c5aaa..9f87cc4 100644
--- a/repo/includes/ParserOutput/EntityParserOutputGeneratorFactory.php
+++ b/repo/includes/ParserOutput/EntityParserOutputGeneratorFactory.php
@@ -12,6 +12,7 @@
use Wikibase\Lib\Store\EntityInfoBuilderFactory;
use Wikibase\Lib\Store\EntityTitleLookup;
use Wikibase\Repo\LinkedData\EntityDataFormatProvider;
+use Wikibase\Repo\MediaWikiLocalizedTextProvider;
use Wikibase\View\Template\TemplateFactory;
/**
@@ -134,6 +135,7 @@
$this->entityInfoBuilderFactory,
$this->getLanguageFallbackChain( $userLanguage ),
$this->templateFactory,
+ new MediaWikiLocalizedTextProvider( $userLanguageCode ),
$this->entityDataFormatProvider,
$this->getDataUpdaters(),
$userLanguageCode,
diff --git a/repo/includes/WikibaseRepo.php b/repo/includes/WikibaseRepo.php
index 7b0fe68..ebe1705 100644
--- a/repo/includes/WikibaseRepo.php
+++ b/repo/includes/WikibaseRepo.php
@@ -1569,7 +1569,8 @@
new MediaWikiNumberLocalizer( $wgLang ),
$this->settings->getSetting( 'siteLinkGroups' ),
$this->settings->getSetting( 'specialSiteLinkGroups' ),
- $this->settings->getSetting( 'badgeItems' )
+ $this->settings->getSetting( 'badgeItems' ),
+ new MediaWikiLocalizedTextProvider( $wgLang->getCode() )
);
}
diff --git
a/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorTest.php
b/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorTest.php
index f72eec7..4c31202 100644
---
a/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorTest.php
+++
b/repo/tests/phpunit/includes/ParserOutput/EntityParserOutputGeneratorTest.php
@@ -25,6 +25,7 @@
use Wikibase\Repo\ParserOutput\ParserOutputJsConfigBuilder;
use Wikibase\Repo\ParserOutput\ReferencedEntitiesDataUpdater;
use Wikibase\View\EntityView;
+use Wikibase\View\LocalizedTextProvider;
use Wikibase\View\Template\TemplateFactory;
/**
@@ -166,6 +167,7 @@
new SqlEntityInfoBuilderFactory(),
$this->newLanguageFallbackChain(),
TemplateFactory::getDefaultInstance(),
+ $this->getMock( LocalizedTextProvider::class ),
$entityDataFormatProvider,
$dataUpdaters,
'en',
diff --git a/view/src/ClaimHtmlGenerator.php b/view/src/ClaimHtmlGenerator.php
index 4c5139d..2d7fa79 100644
--- a/view/src/ClaimHtmlGenerator.php
+++ b/view/src/ClaimHtmlGenerator.php
@@ -53,18 +53,26 @@
private $statementRankSelector = array();
/**
+ * @var LocalizedTextProvider
+ */
+ private $textProvider;
+
+ /**
* @param TemplateFactory $templateFactory
* @param SnakHtmlGenerator $snakHtmlGenerator
* @param NumberLocalizer $numberLocalizer
+ * @param LocalizedTextProvider $textProvider
*/
public function __construct(
TemplateFactory $templateFactory,
SnakHtmlGenerator $snakHtmlGenerator,
- NumberLocalizer $numberLocalizer
+ NumberLocalizer $numberLocalizer,
+ LocalizedTextProvider $textProvider
) {
$this->snakHtmlGenerator = $snakHtmlGenerator;
$this->templateFactory = $templateFactory;
$this->numberLocalizer = $numberLocalizer;
+ $this->textProvider = $textProvider;
}
/**
@@ -204,10 +212,10 @@
if ( !array_key_exists( $referenceCount,
$this->referenceHeadings ) ) {
$formattedReferenceCount =
$this->numberLocalizer->localizeNumber( $referenceCount );
- $this->referenceHeadings[ $referenceCount ] =
htmlspecialchars( wfMessage(
+ $this->referenceHeadings[ $referenceCount ] =
htmlspecialchars( $this->textProvider->get(
'wikibase-statementview-referencescounter',
- $formattedReferenceCount
- )->text() );
+ [ $formattedReferenceCount ]
+ ) );
}
return $this->referenceHeadings[ $referenceCount ];
@@ -232,7 +240,7 @@
'wikibase-rankselector',
'ui-state-disabled',
'wikibase-rankselector-' . $rankName,
- htmlspecialchars( wfMessage(
'wikibase-statementview-rank-' . $rankName )->text() )
+ htmlspecialchars( $this->textProvider->get(
'wikibase-statementview-rank-' . $rankName ) )
);
$this->statementRankSelector[ $rank ] = $rankSelector;
diff --git a/view/src/EntityTermsView.php b/view/src/EntityTermsView.php
index a8507df..6d11091 100644
--- a/view/src/EntityTermsView.php
+++ b/view/src/EntityTermsView.php
@@ -2,7 +2,6 @@
namespace Wikibase\View;
-use Message;
use Title;
use Wikibase\DataModel\Entity\EntityId;
use Wikibase\DataModel\Term\AliasGroupList;
@@ -48,22 +47,30 @@
private $languageNameLookup;
/**
+ * @var LocalizedTextProvider
+ */
+ private $textProvider;
+
+ /**
* @param TemplateFactory $templateFactory
* @param EditSectionGenerator|null $sectionEditLinkGenerator
* @param LanguageNameLookup $languageNameLookup
* @param string $languageCode Desired language of the label,
description and aliases in the
* title and header section. Not necessarily identical to the
interface language.
+ * @param LocalizedTextProvider $textProvider
*/
public function __construct(
TemplateFactory $templateFactory,
EditSectionGenerator $sectionEditLinkGenerator = null,
LanguageNameLookup $languageNameLookup,
- $languageCode
+ $languageCode,
+ LocalizedTextProvider $textProvider
) {
$this->sectionEditLinkGenerator = $sectionEditLinkGenerator;
$this->languageCode = $languageCode;
$this->templateFactory = $templateFactory;
$this->languageNameLookup = $languageNameLookup;
+ $this->textProvider = $textProvider;
}
/**
@@ -112,7 +119,7 @@
if ( $entityId !== null ) {
$id = $entityId->getSerialization();
- $idInParenthesesHtml = htmlspecialchars( wfMessage(
'parentheses', $id )->text() );
+ $idInParenthesesHtml = htmlspecialchars(
$this->textProvider->get( 'parentheses', [ $id ] ) );
}
if ( $labels->hasTermForLanguage( $this->languageCode ) ) {
@@ -124,7 +131,7 @@
} else {
return $this->templateFactory->render( 'wikibase-title',
'wb-empty',
- htmlspecialchars( wfMessage(
'wikibase-label-empty' )->text() ),
+ htmlspecialchars( $this->textProvider->get(
'wikibase-label-empty' ) ),
$idInParenthesesHtml
);
}
@@ -139,7 +146,7 @@
if ( $descriptions->hasTermForLanguage( $this->languageCode ) )
{
$text = $descriptions->getByLanguage(
$this->languageCode )->getText();
} else {
- $text = wfMessage( 'wikibase-description-empty'
)->text();
+ $text = $this->textProvider->get(
'wikibase-description-empty' );
}
return htmlspecialchars( $text );
}
@@ -160,7 +167,7 @@
);
}
} else {
- $aliasesHtml = htmlspecialchars( wfMessage(
'wikibase-aliases-empty' )->text() );
+ $aliasesHtml = htmlspecialchars(
$this->textProvider->get( 'wikibase-aliases-empty' ) );
}
return $this->templateFactory->render(
'wikibase-entitytermsview-aliases', $aliasesHtml );
}
@@ -194,10 +201,10 @@
}
return $this->templateFactory->render(
'wikibase-entitytermsforlanguagelistview',
- htmlspecialchars( $this->msg(
'wikibase-entitytermsforlanguagelistview-language' )->text() ),
- htmlspecialchars( $this->msg(
'wikibase-entitytermsforlanguagelistview-label' )->text() ),
- htmlspecialchars( $this->msg(
'wikibase-entitytermsforlanguagelistview-description' )->text() ),
- htmlspecialchars( $this->msg(
'wikibase-entitytermsforlanguagelistview-aliases' )->text() ),
+ 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
);
}
@@ -239,7 +246,7 @@
$hasLabel ? '' : 'wb-empty',
htmlspecialchars( $hasLabel
? $labels->getByLanguage( $languageCode
)->getText()
- : $this->msg( 'wikibase-label-empty'
)->text()
+ : $this->textProvider->get(
'wikibase-label-empty' )
),
''
),
@@ -247,7 +254,7 @@
$hasDescription ? '' : 'wb-empty',
htmlspecialchars( $hasDescription
? $descriptions->getByLanguage(
$languageCode )->getText()
- : $this->msg(
'wikibase-description-empty' )->text()
+ : $this->textProvider->get(
'wikibase-description-empty' )
),
'',
''
@@ -302,15 +309,6 @@
$this->languageCode,
$entityId
);
- }
-
- /**
- * @param string $key
- *
- * @return Message
- */
- private function msg( $key ) {
- return wfMessage( $key );
}
}
diff --git a/view/src/EntityViewPlaceholderExpander.php
b/view/src/EntityViewPlaceholderExpander.php
index 6b867fe..855fde8 100644
--- a/view/src/EntityViewPlaceholderExpander.php
+++ b/view/src/EntityViewPlaceholderExpander.php
@@ -31,6 +31,7 @@
*
* @license GPL-2.0+
* @author Daniel Kinzler
+ * @author Adrian Heine <[email protected]>
*/
class EntityViewPlaceholderExpander {
@@ -90,6 +91,11 @@
private $languageNameLookup;
/**
+ * @var LocalizedTextProvider
+ */
+ private $textProvider;
+
+ /**
* @param TemplateFactory $templateFactory
* @param Title $targetPage the page for which this expander is
supposed to handle expansion.
* @param User $user the current user
@@ -100,6 +106,7 @@
* @param UserLanguageLookup $userLanguageLookup
* @param ContentLanguages $termsLanguages
* @param LanguageNameLookup $languageNameLookup
+ * @param LocalizedTextProvider $textProvider
*/
public function __construct(
TemplateFactory $templateFactory,
@@ -111,7 +118,8 @@
AliasesProvider $aliasesProvider = null,
UserLanguageLookup $userLanguageLookup,
ContentLanguages $termsLanguages,
- LanguageNameLookup $languageNameLookup
+ LanguageNameLookup $languageNameLookup,
+ LocalizedTextProvider $textProvider
) {
$this->targetPage = $targetPage;
$this->user = $user;
@@ -123,6 +131,7 @@
$this->templateFactory = $templateFactory;
$this->termsLanguages = $termsLanguages;
$this->languageNameLookup = $languageNameLookup;
+ $this->textProvider = $textProvider;
}
/**
@@ -225,7 +234,8 @@
$this->templateFactory,
null,
$this->languageNameLookup,
- $this->uiLanguage->getCode()
+ $this->uiLanguage->getCode(),
+ $this->textProvider
);
$html = $entityTermsView->getEntityTermsForLanguageListView(
diff --git a/view/src/ItemView.php b/view/src/ItemView.php
index 30d90d6..f348e9b 100644
--- a/view/src/ItemView.php
+++ b/view/src/ItemView.php
@@ -35,6 +35,11 @@
private $siteLinkGroups;
/**
+ * @var LocalizedTextProvider
+ */
+ private $textProvider;
+
+ /**
* @see EntityView::__construct
*
* @param TemplateFactory $templateFactory
@@ -44,6 +49,7 @@
* @param string $languageCode
* @param SiteLinksView $siteLinksView
* @param string[] $siteLinkGroups
+ * @param LocalizedTextProvider $textProvider
*/
public function __construct(
TemplateFactory $templateFactory,
@@ -52,13 +58,15 @@
StatementSectionsView $statementSectionsView,
$languageCode,
SiteLinksView $siteLinksView,
- array $siteLinkGroups
+ array $siteLinkGroups,
+ LocalizedTextProvider $textProvider
) {
parent::__construct( $templateFactory, $entityTermsView,
$languageDirectionalityLookup, $languageCode );
$this->statementSectionsView = $statementSectionsView;
$this->siteLinksView = $siteLinksView;
$this->siteLinkGroups = $siteLinkGroups;
+ $this->textProvider = $textProvider;
}
/**
@@ -117,7 +125,7 @@
* @return string
*/
protected function getHtmlForPageImage() {
- $helpText = wfMessage( 'wikibase-pageimage-helptext' )->text();
+ $helpText = $this->textProvider->get(
'wikibase-pageimage-helptext' );
return $this->templateFactory->render(
'wikibase-pageimage',
htmlspecialchars( $helpText )
diff --git a/view/src/KeyNameLocalizedTextProvider.php
b/view/src/KeyNameLocalizedTextProvider.php
new file mode 100644
index 0000000..f6a51d2
--- /dev/null
+++ b/view/src/KeyNameLocalizedTextProvider.php
@@ -0,0 +1,54 @@
+<?php
+
+namespace Wikibase\View;
+
+/**
+ * A service providing localized texts for keys
+ *
+ * @since 0.5
+ *
+ * @license GPL-2.0+
+ * @author Adrian Heine < [email protected] >
+ */
+class KeyNameLocalizedTextProvider implements LocalizedTextProvider {
+
+ /**
+ * @var string
+ */
+ private $languageCode;
+
+ /**
+ * @param string $languageCode
+ */
+ public function __construct( $languageCode ) {
+ $this->languageCode = $languageCode;
+ }
+
+ /**
+ * @param string $key
+ * @param string[] $params Parameters that could be used for generating
the text
+ *
+ * @return string The localized text
+ */
+ public function get( $key, $params = [] ) {
+ return "($key" . ( $params !== [] ? ": " . implode( $params, ",
" ) : "" ) . ")";
+ }
+
+ /**
+ * @param string $key
+ *
+ * @return bool
+ */
+ public function has( $key ) {
+ return true;
+ }
+
+ /**
+ * @param string $key
+ *
+ * @return string The language of the text returned for a specific key
+ */
+ public function getLanguageOf( $key ) {
+ return $this->languageCode;
+ }
+}
diff --git a/view/src/LocalizedTextProvider.php
b/view/src/LocalizedTextProvider.php
new file mode 100644
index 0000000..ed91cbc
--- /dev/null
+++ b/view/src/LocalizedTextProvider.php
@@ -0,0 +1,36 @@
+<?php
+
+namespace Wikibase\View;
+
+/**
+ * A service providing localized texts for keys
+ *
+ * @since 0.5
+ *
+ * @license GPL-2.0+
+ * @author Adrian Heine < [email protected] >
+ */
+interface LocalizedTextProvider {
+
+ /**
+ * @param string $key
+ * @param string[] $params Parameters that could be used for generating
the text
+ *
+ * @return string The localized text
+ */
+ public function get( $key, $params = [] );
+
+ /**
+ * @param string $key
+ *
+ * @return bool
+ */
+ public function has( $key );
+
+ /**
+ * @param string $key
+ *
+ * @return string The language of the text returned for a specific key
+ */
+ public function getLanguageOf( $key );
+}
diff --git a/view/src/PropertyView.php b/view/src/PropertyView.php
index 16c6ab6..f36a917 100644
--- a/view/src/PropertyView.php
+++ b/view/src/PropertyView.php
@@ -32,12 +32,20 @@
private $dataTypeFactory;
/**
+ * @var LocalizedTextProvider
+ */
+ private $textProvider;
+
+ /**
+ * @see EntityView::__construct
+ *
* @param TemplateFactory $templateFactory
* @param EntityTermsView $entityTermsView
* @param LanguageDirectionalityLookup $languageDirectionalityLookup
* @param StatementSectionsView $statementSectionsView
* @param DataTypeFactory $dataTypeFactory
* @param string $languageCode
+ * @param LocalizedTextProvider $textProvider
*/
public function __construct(
TemplateFactory $templateFactory,
@@ -45,12 +53,14 @@
LanguageDirectionalityLookup $languageDirectionalityLookup,
StatementSectionsView $statementSectionsView,
DataTypeFactory $dataTypeFactory,
- $languageCode
+ $languageCode,
+ LocalizedTextProvider $textProvider
) {
parent::__construct( $templateFactory, $entityTermsView,
$languageDirectionalityLookup, $languageCode );
$this->statementSectionsView = $statementSectionsView;
$this->dataTypeFactory = $dataTypeFactory;
+ $this->textProvider = $textProvider;
}
/**
@@ -91,7 +101,7 @@
private function getHtmlForDataType( $propertyType ) {
$html = $this->templateFactory->render( 'wb-section-heading',
- htmlspecialchars( wfMessage(
'wikibase-propertypage-datatype' )->text() ),
+ htmlspecialchars( $this->textProvider->get(
'wikibase-propertypage-datatype' ) ),
'datatype',
'wikibase-propertypage-datatype'
);
@@ -102,7 +112,7 @@
$dataTypeLabelHtml = htmlspecialchars(
$dataType->getLabel( $this->languageCode ) );
} catch ( OutOfBoundsException $ex ) {
$dataTypeLabelHtml .= '<span class="error">' .
- htmlspecialchars( wfMessage(
'wikibase-propertypage-bad-datatype', $propertyType )->text() ) .
+ htmlspecialchars( $this->textProvider->get(
'wikibase-propertypage-bad-datatype', [ $propertyType ] ) ) .
'</span>';
}
$html .= $this->templateFactory->render(
'wikibase-propertyview-datatype', $dataTypeLabelHtml );
diff --git a/view/src/SiteLinksView.php b/view/src/SiteLinksView.php
index 85c3c9d..1b5f230 100644
--- a/view/src/SiteLinksView.php
+++ b/view/src/SiteLinksView.php
@@ -58,6 +58,11 @@
private $specialSiteLinkGroups;
/**
+ * @var LocalizedTextProvider
+ */
+ private $textProvider;
+
+ /**
* @param TemplateFactory $templateFactory
* @param SiteList $sites
* @param EditSectionGenerator $sectionEditLinkGenerator
@@ -65,6 +70,7 @@
* @param LanguageNameLookup $languageNameLookup
* @param string[] $badgeItems
* @param string[] $specialSiteLinkGroups
+ * @param LocalizedTextProvider $textProvider
*/
public function __construct(
TemplateFactory $templateFactory,
@@ -73,7 +79,8 @@
EntityIdFormatter $entityIdFormatter,
LanguageNameLookup $languageNameLookup,
array $badgeItems,
- array $specialSiteLinkGroups
+ array $specialSiteLinkGroups,
+ LocalizedTextProvider $textProvider
) {
$this->sites = $sites;
$this->sectionEditLinkGenerator = $sectionEditLinkGenerator;
@@ -82,6 +89,7 @@
$this->templateFactory = $templateFactory;
$this->languageNameLookup = $languageNameLookup;
$this->entityIdFormatter = $entityIdFormatter;
+ $this->textProvider = $textProvider;
}
/**
@@ -125,7 +133,7 @@
private function getHtmlForSectionHeading( $heading ) {
$html = $this->templateFactory->render(
'wb-section-heading',
- htmlspecialchars( wfMessage( $heading )->text() ),
+ htmlspecialchars( $this->textProvider->get( $heading )
),
'sitelinks', // ID - TODO: should not be added if
output page is not the entity's page
$heading
);
@@ -154,14 +162,16 @@
'wikibase-sitelinkgroupview',
// TODO: support entity-id as prefix for element IDs.
htmlspecialchars( 'sitelinks-' . $group, ENT_QUOTES ),
- htmlspecialchars( wfMessage( 'wikibase-sitelinks-' .
$group )->text() ),
- htmlspecialchars( wfMessage( 'parentheses',
- wfMessage(
+ htmlspecialchars( $this->textProvider->get(
'wikibase-sitelinks-' . $group ) ),
+ htmlspecialchars( $this->textProvider->get(
'parentheses', [
+ $this->textProvider->get(
'wikibase-sitelinks-counter',
- $count, // FIXME: NumberLocalizer
- 0
- )->text()
- )->text() ),
+ [
+ $count, // FIXME:
NumberLocalizer
+ 0
+ ]
+ )
+ ] ) ),
$this->templateFactory->render(
'wikibase-sitelinklistview',
$this->getHtmlForSiteLinks( $siteLinksForTable,
$group === 'special' )
@@ -279,8 +289,8 @@
// FIXME: this is a quickfix to allow a custom site-name for
the site groups which are
// special according to the specialSiteLinkGroups setting
if ( $isSpecialGroup ) {
- $siteNameMsg = wfMessage(
'wikibase-sitelinks-sitename-' . $siteId );
- $siteName = $siteNameMsg->exists() ?
$siteNameMsg->text() : $siteId;
+ $siteNameMsg = 'wikibase-sitelinks-sitename-' . $siteId;
+ $siteName = $this->textProvider->has( $siteNameMsg ) ?
$this->textProvider->get( $siteNameMsg ) : $siteId;
} else {
// TODO: get an actual site name rather then just the
language
$siteName = $this->languageNameLookup->getName(
$languageCode );
diff --git a/view/src/SnakHtmlGenerator.php b/view/src/SnakHtmlGenerator.php
index 93b9238..fce3868 100644
--- a/view/src/SnakHtmlGenerator.php
+++ b/view/src/SnakHtmlGenerator.php
@@ -20,6 +20,7 @@
* @author Pragunbhutani
* @author Katie Filbert < [email protected] >
* @author Daniel Kinzler
+ * @author Adrian Heine <[email protected]>
*/
class SnakHtmlGenerator {
@@ -39,16 +40,23 @@
private $propertyIdFormatter;
/**
+ * @var LocalizedTextProvider
+ */
+ private $textProvider;
+
+ /**
* @param TemplateFactory $templateFactory
* @param SnakFormatter $snakFormatter
* @param EntityIdFormatter $propertyIdFormatter
+ * @param LocalizedTextProvider $textProvider
*
* @throws InvalidArgumentException
*/
public function __construct(
TemplateFactory $templateFactory,
SnakFormatter $snakFormatter,
- EntityIdFormatter $propertyIdFormatter
+ EntityIdFormatter $propertyIdFormatter,
+ LocalizedTextProvider $textProvider
) {
if ( $snakFormatter->getFormat() !== SnakFormatter::FORMAT_HTML
&& $snakFormatter->getFormat() !==
SnakFormatter::FORMAT_HTML_WIDGET ) {
@@ -59,6 +67,7 @@
$this->snakFormatter = $snakFormatter;
$this->propertyIdFormatter = $propertyIdFormatter;
$this->templateFactory = $templateFactory;
+ $this->textProvider = $textProvider;
}
/**
@@ -137,14 +146,14 @@
* @return string HTML
*/
private function getInvalidSnakMessage() {
- return htmlspecialchars( wfMessage(
'wikibase-snakformat-invalid-value' )->text() );
+ return htmlspecialchars( $this->textProvider->get(
'wikibase-snakformat-invalid-value' ) );
}
/**
* @return string HTML
*/
private function getPropertyNotFoundMessage() {
- return htmlspecialchars( wfMessage(
'wikibase-snakformat-propertynotfound' )->text() );
+ return htmlspecialchars( $this->textProvider->get(
'wikibase-snakformat-propertynotfound' ) );
}
}
diff --git a/view/src/StatementSectionsView.php
b/view/src/StatementSectionsView.php
index 1865a3c..b8aca88 100644
--- a/view/src/StatementSectionsView.php
+++ b/view/src/StatementSectionsView.php
@@ -12,6 +12,7 @@
*
* @license GPL-2.0+
* @author Thiemo Mättig
+ * @author Adrian Heine <[email protected]>
*/
class StatementSectionsView {
@@ -30,14 +31,21 @@
*/
private $statementListView;
+ /**
+ * @var LocalizedTextProvider
+ */
+ private $textProvider;
+
public function __construct(
TemplateFactory $templateFactory,
StatementGrouper $statementGrouper,
- StatementGroupListView $statementListView
+ StatementGroupListView $statementListView,
+ LocalizedTextProvider $textProvider
) {
$this->templateFactory = $templateFactory;
$this->statementGrouper = $statementGrouper;
$this->statementListView = $statementListView;
+ $this->textProvider = $textProvider;
}
/**
@@ -92,7 +100,7 @@
// TODO: Add link to SpecialPage that allows adding a new
statement.
return $this->templateFactory->render(
'wb-section-heading',
- htmlspecialchars( wfMessage( $messageKey )->text() ),
+ htmlspecialchars( $this->textProvider->get( $messageKey
) ),
$id,
$className
);
diff --git a/view/src/ToolbarEditSectionGenerator.php
b/view/src/ToolbarEditSectionGenerator.php
index 8fa443d..c4ca711 100644
--- a/view/src/ToolbarEditSectionGenerator.php
+++ b/view/src/ToolbarEditSectionGenerator.php
@@ -31,12 +31,23 @@
private $templateFactory;
/**
+ * @var LocalizedTextProvider
+ */
+ private $textProvider;
+
+ /**
* @param SpecialPageLinker $specialPageLinker
* @param TemplateFactory $templateFactory
+ * @param LocalizedTextProvider $textProvider
*/
- public function __construct( SpecialPageLinker $specialPageLinker,
TemplateFactory $templateFactory ) {
+ public function __construct(
+ SpecialPageLinker $specialPageLinker,
+ TemplateFactory $templateFactory,
+ LocalizedTextProvider $textProvider
+ ) {
$this->templateFactory = $templateFactory;
$this->specialPageLinker = $specialPageLinker;
+ $this->textProvider = $textProvider;
}
public function getSiteLinksEditSection( EntityId $entityId = null ) {
@@ -81,7 +92,7 @@
) {
$editUrl = $this->getEditUrl( $specialPageName,
$specialPageUrlParams );
- $toolbarButton = $this->getToolbarButton( 'edit', wfMessage(
'wikibase-edit' )->text(), $editUrl );
+ $toolbarButton = $this->getToolbarButton( 'edit',
$this->textProvider->get( 'wikibase-edit' ), $editUrl );
return $this->getToolbarContainer(
$this->templateFactory->render( 'wikibase-toolbar', '',
$toolbarButton )
diff --git a/view/src/ViewFactory.php b/view/src/ViewFactory.php
index 5a06de0..55deb41 100644
--- a/view/src/ViewFactory.php
+++ b/view/src/ViewFactory.php
@@ -11,6 +11,7 @@
use Wikibase\LanguageFallbackChain;
use Wikibase\Lib\LanguageNameLookup;
use Wikibase\Lib\SnakFormatter;
+use Wikibase\View\LocalizedTextProvider;
use Wikibase\View\Template\TemplateFactory;
/**
@@ -92,6 +93,11 @@
private $badgeItems;
/**
+ * @var LocalizedTextProvider
+ */
+ private $textProvider;
+
+ /**
* @param EntityIdFormatterFactory $htmlIdFormatterFactory
* @param EntityIdFormatterFactory $plainTextIdFormatterFactory
* @param HtmlSnakFormatterFactory $htmlSnakFormatterFactory
@@ -105,6 +111,7 @@
* @param string[] $siteLinkGroups
* @param string[] $specialSiteLinkGroups
* @param string[] $badgeItems
+ * @param LocalizedTextProvider $textProvider
*
* @throws InvalidArgumentException
*/
@@ -121,7 +128,8 @@
NumberLocalizer $numberLocalizer,
array $siteLinkGroups = array(),
array $specialSiteLinkGroups = array(),
- array $badgeItems = array()
+ array $badgeItems = array(),
+ LocalizedTextProvider $textProvider
) {
if ( !$this->hasValidOutputFormat( $htmlIdFormatterFactory,
'text/html' )
|| !$this->hasValidOutputFormat(
$plainTextIdFormatterFactory, 'text/plain' )
@@ -142,6 +150,7 @@
$this->siteLinkGroups = $siteLinkGroups;
$this->specialSiteLinkGroups = $specialSiteLinkGroups;
$this->badgeItems = $badgeItems;
+ $this->textProvider = $textProvider;
}
/**
@@ -196,7 +205,8 @@
$this->plainTextIdFormatterFactory->getEntityIdFormatter(
$labelDescriptionLookup ),
$this->languageNameLookup,
$this->badgeItems,
- $this->specialSiteLinkGroups
+ $this->specialSiteLinkGroups,
+ $this->textProvider
);
return new ItemView(
@@ -206,7 +216,8 @@
$statementSectionsView,
$languageCode,
$siteLinksView,
- $this->siteLinkGroups
+ $this->siteLinkGroups,
+ $this->textProvider
);
}
@@ -241,7 +252,8 @@
$this->languageDirectionalityLookup,
$statementSectionsView,
$this->dataTypeFactory,
- $languageCode
+ $languageCode,
+ $this->textProvider
);
}
@@ -270,12 +282,14 @@
$snakHtmlGenerator = new SnakHtmlGenerator(
$this->templateFactory,
$snakFormatter,
- $propertyIdFormatter
+ $propertyIdFormatter,
+ $this->textProvider
);
$claimHtmlGenerator = new ClaimHtmlGenerator(
$this->templateFactory,
$snakHtmlGenerator,
- $this->numberLocalizer
+ $this->numberLocalizer,
+ $this->textProvider
);
$statementGroupListView = new StatementGroupListView(
$this->templateFactory,
@@ -287,7 +301,8 @@
return new StatementSectionsView(
$this->templateFactory,
$this->statementGrouper,
- $statementGroupListView
+ $statementGroupListView,
+ $this->textProvider
);
}
@@ -302,7 +317,8 @@
$this->templateFactory,
$editSectionGenerator,
$this->languageNameLookup,
- $languageCode
+ $languageCode,
+ $this->textProvider
);
}
diff --git a/view/tests/phpunit/ClaimHtmlGeneratorTest.php
b/view/tests/phpunit/ClaimHtmlGeneratorTest.php
index c19a61e..5e89133 100644
--- a/view/tests/phpunit/ClaimHtmlGeneratorTest.php
+++ b/view/tests/phpunit/ClaimHtmlGeneratorTest.php
@@ -12,6 +12,7 @@
use Wikibase\DataModel\Snak\SnakList;
use Wikibase\DataModel\Statement\Statement;
use Wikibase\View\ClaimHtmlGenerator;
+use Wikibase\View\KeyNameLocalizedTextProvider;
use Wikibase\View\SnakHtmlGenerator;
use Wikibase\View\Template\TemplateFactory;
@@ -61,7 +62,8 @@
$claimHtmlGenerator = new ClaimHtmlGenerator(
$templateFactory,
$snakHtmlGenerator,
- new BasicNumberLocalizer()
+ new BasicNumberLocalizer(),
+ new KeyNameLocalizedTextProvider( 'lkt' )
);
$html = $claimHtmlGenerator->getHtmlForClaim( $statement,
'edit' );
diff --git a/view/tests/phpunit/EmptyEditSectionGeneratorTest.php
b/view/tests/phpunit/EmptyEditSectionGeneratorTest.php
index 120340e..10c5fcf 100644
--- a/view/tests/phpunit/EmptyEditSectionGeneratorTest.php
+++ b/view/tests/phpunit/EmptyEditSectionGeneratorTest.php
@@ -2,7 +2,7 @@
namespace Wikibase\View\Tests;
-use MediaWikiTestCase;
+use PHPUnit_Framework_TestCase;
use Wikibase\DataModel\Entity\PropertyId;
use Wikibase\DataModel\Snak\PropertyNoValueSnak;
use Wikibase\DataModel\Statement\Statement;
@@ -17,7 +17,7 @@
* @license GPL-2.0+
* @author Adrian Heine < [email protected] >
*/
-class EmptyEditSectionGeneratorTest extends MediaWikiTestCase {
+class EmptyEditSectionGeneratorTest extends PHPUnit_Framework_TestCase {
/**
* @dataProvider getAddStatementToGroupSectionProvider
diff --git a/view/tests/phpunit/EntityTermsViewTest.php
b/view/tests/phpunit/EntityTermsViewTest.php
index 992c216..734c3e4 100644
--- a/view/tests/phpunit/EntityTermsViewTest.php
+++ b/view/tests/phpunit/EntityTermsViewTest.php
@@ -2,8 +2,7 @@
namespace Wikibase\View\Tests;
-use MediaWikiLangTestCase;
-use MessageCache;
+use PHPUnit_Framework_TestCase;
use Title;
use Wikibase\DataModel\Entity\Item;
use Wikibase\DataModel\Entity\ItemId;
@@ -11,6 +10,8 @@
use Wikibase\Lib\LanguageNameLookup;
use Wikibase\View\EditSectionGenerator;
use Wikibase\View\EntityTermsView;
+use Wikibase\View\KeyNameLocalizedTextProvider;
+use Wikibase\View\LocalizedTextProvider;
use Wikibase\View\Template\TemplateFactory;
use Wikibase\View\TextInjector;
@@ -22,7 +23,6 @@
* @uses Wikibase\View\Template\TemplateRegistry
* @uses Wikibase\View\TextInjector
*
- * @group Database
* @group Wikibase
* @group WikibaseView
*
@@ -30,18 +30,13 @@
* @author Bene* < [email protected] >
* @author Thiemo Mättig
*/
-class EntityTermsViewTest extends MediaWikiLangTestCase {
-
- protected function setUp() {
- parent::setUp();
-
- $this->setUserLang( 'qqx' );
- }
+class EntityTermsViewTest extends PHPUnit_Framework_TestCase {
private function getEntityTermsView(
$editSectionCalls = 0,
$languageNameCalls = 0,
- $languageCode = 'en'
+ $languageCode = 'en',
+ LocalizedTextProvider $textProvider = null
) {
$editSectionGenerator = $this->getMock(
EditSectionGenerator::class );
$editSectionGenerator->expects( $this->exactly(
$editSectionCalls ) )
@@ -55,11 +50,16 @@
return "<LANGUAGENAME-$languageCode>";
} ) );
+ if ( $textProvider === null ) {
+ $textProvider = new KeyNameLocalizedTextProvider( 'lkt'
);
+ }
+
return new EntityTermsView(
TemplateFactory::getDefaultInstance(),
$editSectionGenerator,
$languageNameLookup,
- $languageCode
+ $languageCode,
+ $textProvider
);
}
@@ -260,19 +260,22 @@
}
public function testGetEntityTermsForLanguageListView_isEscaped() {
- MessageCache::singleton()->enable();
- $this->setUserLang( 'en' );
- $this->insertPage(
'MediaWiki:wikibase-entitytermsforlanguagelistview-language', "''RAW''" );
+ $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();
+ $view = $this->getEntityTermsView( 0, 0, 'en', $textProvider );
$html = $view->getEntityTermsForLanguageListView( $item, $item,
$item, [] );
- $this->assertContains( '''RAW''', $html );
- $this->assertNotContains( "'RAW'", $html );
+ $this->assertContains( '"RAW"', $html );
+ $this->assertNotContains( '"RAW"', $html );
}
public function testGetEntityTermsForLanguageListView_isMarkedAsEmpty()
{
diff --git a/view/tests/phpunit/EntityViewPlaceholderExpanderTest.php
b/view/tests/phpunit/EntityViewPlaceholderExpanderTest.php
index 0e3fd4f..df041d0 100644
--- a/view/tests/phpunit/EntityViewPlaceholderExpanderTest.php
+++ b/view/tests/phpunit/EntityViewPlaceholderExpanderTest.php
@@ -3,7 +3,7 @@
namespace Wikibase\View\Tests;
use Language;
-use MediaWikiTestCase;
+use PHPUnit_Framework_TestCase;
use Title;
use User;
use Wikibase\DataModel\Entity\Item;
@@ -13,6 +13,7 @@
use Wikibase\Lib\MediaWikiContentLanguages;
use Wikibase\Lib\UserLanguageLookup;
use Wikibase\View\EntityViewPlaceholderExpander;
+use Wikibase\View\KeyNameLocalizedTextProvider;
use Wikibase\View\Template\TemplateFactory;
/**
@@ -29,7 +30,7 @@
* @license GPL-2.0+
* @author Daniel Kinzler
*/
-class EntityViewPlaceholderExpanderTest extends MediaWikiTestCase {
+class EntityViewPlaceholderExpanderTest extends PHPUnit_Framework_TestCase {
/**
* @param User $user
@@ -65,7 +66,8 @@
$aliasesProvider,
$userLanguages,
new MediaWikiContentLanguages(),
- $languageNameLookup
+ $languageNameLookup,
+ new KeyNameLocalizedTextProvider( 'lkt' )
);
}
@@ -145,10 +147,10 @@
$itemId = $item->getId();
$expander = $this->newExpander( $this->newUser( true ), $item,
$itemId, $aliasesProvider );
- $this->assertArrayEquals( array(),
$expander->getExtraUserLanguages() );
+ $this->assertEquals( array(),
$expander->getExtraUserLanguages() );
$expander = $this->newExpander( $this->newUser(), $item,
$itemId, $aliasesProvider );
- $this->assertArrayEquals( array( 'de', 'ru' ),
$expander->getExtraUserLanguages() );
+ $this->assertEquals( array( 'de', 'ru' ), array_values(
$expander->getExtraUserLanguages() ) );
}
}
diff --git a/view/tests/phpunit/EntityViewTest.php
b/view/tests/phpunit/EntityViewTest.php
index 991685a..ccd2a82 100644
--- a/view/tests/phpunit/EntityViewTest.php
+++ b/view/tests/phpunit/EntityViewTest.php
@@ -2,7 +2,7 @@
namespace Wikibase\View\Tests;
-use MediaWikiLangTestCase;
+use PHPUnit_Framework_TestCase;
use Wikibase\DataModel\Entity\EntityDocument;
use Wikibase\DataModel\Entity\EntityId;
use Wikibase\DataModel\Statement\Statement;
@@ -18,7 +18,7 @@
* @author H. Snater < [email protected] >
* @author Daniel Kinzler
*/
-abstract class EntityViewTest extends MediaWikiLangTestCase {
+abstract class EntityViewTest extends PHPUnit_Framework_TestCase {
/**
* @param EntityId $id
diff --git a/view/tests/phpunit/ItemViewTest.php
b/view/tests/phpunit/ItemViewTest.php
index 2048a53..54bff61 100644
--- a/view/tests/phpunit/ItemViewTest.php
+++ b/view/tests/phpunit/ItemViewTest.php
@@ -10,6 +10,7 @@
use Wikibase\View\EntityTermsView;
use Wikibase\View\ItemView;
use Wikibase\View\LanguageDirectionalityLookup;
+use Wikibase\View\LocalizedTextProvider;
use Wikibase\View\SiteLinksView;
use Wikibase\View\StatementSectionsView;
use Wikibase\View\Template\TemplateFactory;
@@ -74,7 +75,8 @@
$this->getMockBuilder( SiteLinksView::class )
->disableOriginalConstructor()
->getMock(),
- array()
+ array(),
+ $this->getMock( LocalizedTextProvider::class )
);
return array(
diff --git a/view/tests/phpunit/PropertyViewTest.php
b/view/tests/phpunit/PropertyViewTest.php
index e0819d1..537253f 100644
--- a/view/tests/phpunit/PropertyViewTest.php
+++ b/view/tests/phpunit/PropertyViewTest.php
@@ -11,6 +11,7 @@
use Wikibase\DataModel\Statement\StatementList;
use Wikibase\View\EntityTermsView;
use Wikibase\View\LanguageDirectionalityLookup;
+use Wikibase\View\LocalizedTextProvider;
use Wikibase\View\PropertyView;
use Wikibase\View\StatementSectionsView;
use Wikibase\View\Template\TemplateFactory;
@@ -85,7 +86,8 @@
->disableOriginalConstructor()
->getMock(),
$this->getDataTypeFactory(),
- 'en'
+ 'en',
+ $this->getMock( LocalizedTextProvider::class )
);
return array(
diff --git a/view/tests/phpunit/SiteLinksViewTest.php
b/view/tests/phpunit/SiteLinksViewTest.php
index cc77a9f..9fdff34 100644
--- a/view/tests/phpunit/SiteLinksViewTest.php
+++ b/view/tests/phpunit/SiteLinksViewTest.php
@@ -2,7 +2,7 @@
namespace Wikibase\View\Tests;
-use MediaWikiTestCase;
+use PHPUnit_Framework_TestCase;
use Site;
use SiteList;
use Wikibase\DataModel\Entity\EntityId;
@@ -11,6 +11,7 @@
use Wikibase\DataModel\SiteLink;
use Wikibase\Lib\LanguageNameLookup;
use Wikibase\View\EditSectionGenerator;
+use Wikibase\View\KeyNameLocalizedTextProvider;
use Wikibase\View\SiteLinksView;
use Wikibase\View\Template\TemplateFactory;
use Wikibase\View\Template\TemplateRegistry;
@@ -30,13 +31,7 @@
* @author Bene* < [email protected] >
* @author Thiemo Mättig
*/
-class SiteLinksViewTest extends MediaWikiTestCase {
-
- protected function setUp() {
- parent::setUp();
-
- $this->setUserLang( 'qqx' );
- }
+class SiteLinksViewTest extends PHPUnit_Framework_TestCase {
public function testNoGroups() {
$html = $this->newInstance()->getHtml( array(), null, array() );
@@ -157,7 +152,8 @@
'Q42' => 'wb-badge-featuredarticle',
'Q12' => 'wb-badge-goodarticle'
),
- array( 'special group' )
+ array( 'special group' ),
+ new KeyNameLocalizedTextProvider( 'lkt' )
);
}
diff --git a/view/tests/phpunit/SnakHtmlGeneratorTest.php
b/view/tests/phpunit/SnakHtmlGeneratorTest.php
index 0ffdf25..449f429 100644
--- a/view/tests/phpunit/SnakHtmlGeneratorTest.php
+++ b/view/tests/phpunit/SnakHtmlGeneratorTest.php
@@ -11,6 +11,7 @@
use Wikibase\DataModel\Snak\PropertyValueSnak;
use Wikibase\DataModel\Snak\Snak;
use Wikibase\Lib\SnakFormatter;
+use Wikibase\View\KeyNameLocalizedTextProvider;
use Wikibase\View\SnakHtmlGenerator;
use Wikibase\View\Template\TemplateFactory;
@@ -54,7 +55,8 @@
return new SnakHtmlGenerator(
TemplateFactory::getDefaultInstance(),
$snakFormatter,
- $propertyIdFormatter
+ $propertyIdFormatter,
+ new KeyNameLocalizedTextProvider( 'lkt' )
);
}
diff --git a/view/tests/phpunit/StatementGroupListViewTest.php
b/view/tests/phpunit/StatementGroupListViewTest.php
index 4eee803..90b0a43 100644
--- a/view/tests/phpunit/StatementGroupListViewTest.php
+++ b/view/tests/phpunit/StatementGroupListViewTest.php
@@ -3,7 +3,7 @@
namespace Wikibase\View\Tests;
use DataValues\StringValue;
-use MediaWikiLangTestCase;
+use PHPUnit_Framework_TestCase;
use Wikibase\DataModel\Entity\EntityIdValue;
use Wikibase\DataModel\Entity\ItemId;
use Wikibase\DataModel\Entity\PropertyId;
@@ -33,15 +33,7 @@
* @author Bene* < [email protected] >
* @author Katie Filbert < [email protected] >
*/
-class StatementGroupListViewTest extends MediaWikiLangTestCase {
-
- protected function setUp() {
- parent::setUp();
-
- $this->setMwGlobals( array(
- 'wgArticlePath' => '/wiki/$1'
- ) );
- }
+class StatementGroupListViewTest extends PHPUnit_Framework_TestCase {
public function testGetHtml() {
$propertyId = new PropertyId( 'P77' );
diff --git a/view/tests/phpunit/StatementSectionsViewTest.php
b/view/tests/phpunit/StatementSectionsViewTest.php
index f2c6496..6a02c02 100644
--- a/view/tests/phpunit/StatementSectionsViewTest.php
+++ b/view/tests/phpunit/StatementSectionsViewTest.php
@@ -3,10 +3,11 @@
namespace Wikibase\View\Tests;
use InvalidArgumentException;
-use MediaWikiTestCase;
+use PHPUnit_Framework_TestCase;
use Wikibase\DataModel\Services\Statement\Grouper\StatementGrouper;
use Wikibase\DataModel\Snak\PropertyNoValueSnak;
use Wikibase\DataModel\Statement\StatementList;
+use Wikibase\View\KeyNameLocalizedTextProvider;
use Wikibase\View\StatementGroupListView;
use Wikibase\View\StatementSectionsView;
use Wikibase\View\Template\TemplateFactory;
@@ -25,13 +26,7 @@
* @license GPL-2.0+
* @author Thiemo Mättig
*/
-class StatementSectionsViewTest extends MediaWikiTestCase {
-
- protected function setUp() {
- parent::setUp();
-
- $this->setUserLang( 'qqx' );
- }
+class StatementSectionsViewTest extends PHPUnit_Framework_TestCase {
private function newInstance( array $statementLists = array() ) {
$templateFactory = new TemplateFactory( new TemplateRegistry(
array(
@@ -53,7 +48,8 @@
return new StatementSectionsView(
$templateFactory,
$statementGrouper,
- $statementListView
+ $statementListView,
+ new KeyNameLocalizedTextProvider( 'lkt' )
);
}
diff --git a/view/tests/phpunit/Template/TemplateRegistryTest.php
b/view/tests/phpunit/Template/TemplateRegistryTest.php
index a6e9f7f..9ed1514 100644
--- a/view/tests/phpunit/Template/TemplateRegistryTest.php
+++ b/view/tests/phpunit/Template/TemplateRegistryTest.php
@@ -2,6 +2,7 @@
namespace Wikibase\View\Tests\Template;
+use PHPUnit_Framework_TestCase;
use Wikibase\View\Template\TemplateRegistry;
/**
@@ -13,7 +14,7 @@
* @license GPL-2.0+
* @author Thiemo Mättig
*/
-class TemplateRegistryTest extends \MediaWikiTestCase {
+class TemplateRegistryTest extends PHPUnit_Framework_TestCase {
public function testCanConstructWithEmptyArray() {
$registry = new TemplateRegistry( array() );
diff --git a/view/tests/phpunit/ToolbarEditSectionGeneratorTest.php
b/view/tests/phpunit/ToolbarEditSectionGeneratorTest.php
index 9a48e86..77f85f8 100644
--- a/view/tests/phpunit/ToolbarEditSectionGeneratorTest.php
+++ b/view/tests/phpunit/ToolbarEditSectionGeneratorTest.php
@@ -2,11 +2,12 @@
namespace Wikibase\View\Tests;
-use MediaWikiTestCase;
+use PHPUnit_Framework_TestCase;
use Wikibase\DataModel\Entity\EntityId;
use Wikibase\DataModel\Entity\PropertyId;
use Wikibase\DataModel\Snak\PropertyNoValueSnak;
use Wikibase\DataModel\Statement\Statement;
+use Wikibase\View\LocalizedTextProvider;
use Wikibase\View\SpecialPageLinker;
use Wikibase\View\Template\TemplateFactory;
use Wikibase\View\ToolbarEditSectionGenerator;
@@ -26,7 +27,7 @@
* @author Daniel Kinzler
* @author Adrian Heine
*/
-class ToolbarEditSectionGeneratorTest extends MediaWikiTestCase {
+class ToolbarEditSectionGeneratorTest extends PHPUnit_Framework_TestCase {
/**
* @dataProvider getAddStatementToGroupSectionProvider
@@ -112,7 +113,11 @@
$templateFactory = TemplateFactory::getDefaultInstance();
- return new ToolbarEditSectionGenerator( $specialPageLinker,
$templateFactory );
+ return new ToolbarEditSectionGenerator(
+ $specialPageLinker,
+ $templateFactory,
+ $this->getMock( LocalizedTextProvider::class )
+ );
}
}
diff --git a/view/tests/phpunit/ViewFactoryTest.php
b/view/tests/phpunit/ViewFactoryTest.php
index 58f1661..223b7a7 100644
--- a/view/tests/phpunit/ViewFactoryTest.php
+++ b/view/tests/phpunit/ViewFactoryTest.php
@@ -18,6 +18,7 @@
use Wikibase\View\HtmlSnakFormatterFactory;
use Wikibase\View\ItemView;
use Wikibase\View\LanguageDirectionalityLookup;
+use Wikibase\View\LocalizedTextProvider;
use Wikibase\View\PropertyView;
use Wikibase\View\StatementSectionsView;
use Wikibase\View\ViewFactory;
@@ -76,7 +77,8 @@
new BasicNumberLocalizer(),
array(),
array(),
- array()
+ array(),
+ $this->getMock( LocalizedTextProvider::class )
);
}
--
To view, visit https://gerrit.wikimedia.org/r/282118
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I96ec3c211c338d3ab8df3ecfebec7370628a848f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Adrian Heine <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits