WikidataBuilder has uploaded a new change for review. https://gerrit.wikimedia.org/r/252903
Change subject: New Wikidata Build - 2015-11-13T10:00:01+0000 ...................................................................... New Wikidata Build - 2015-11-13T10:00:01+0000 Change-Id: I41f2a5be414dd02ad44e0be5cb9ad21a281e7e04 --- M composer.lock M extensions/Constraints/specials/SpecialConstraintReport.php M extensions/Constraints/tests/phpunit/Specials/SpecialConstraintReportTest.php M extensions/Wikibase/client/WikibaseClient.hooks.php M extensions/Wikibase/client/WikibaseClient.php M extensions/Wikibase/client/i18n/scn.json A extensions/Wikibase/client/includes/Hooks/ChangesListSpecialPageFilterHandler.php D extensions/Wikibase/client/includes/Hooks/ChangesPageWikibaseFilterHandler.php A extensions/Wikibase/client/tests/phpunit/includes/Hooks/ChangesListSpecialPageFilterHandlerTest.php D extensions/Wikibase/client/tests/phpunit/includes/Hooks/ChangesPageWikibaseFilterHandlerTest.php M extensions/Wikibase/lib/i18n/de.json M extensions/Wikibase/repo/i18n/de.json M extensions/Wikibase/repo/i18n/nb.json M extensions/Wikibase/repo/includes/ItemDisambiguation.php M extensions/Wikibase/repo/includes/rdf/SimpleValueRdfBuilder.php M extensions/Wikibase/repo/tests/phpunit/includes/ItemDisambiguationTest.php M extensions/Wikibase/repo/tests/phpunit/includes/api/GetEntitiesTest.php M extensions/Wikibase/repo/tests/phpunit/includes/rdf/SnakRdfBuilderTest.php M extensions/Wikibase/repo/tests/phpunit/includes/rdf/ValueSnakRdfBuilderFactoryTest.php M extensions/Wikibase/view/tests/phpunit/Template/TemplateFactoryTest.php M vendor/composer/autoload_classmap.php M vendor/composer/installed.json 22 files changed, 564 insertions(+), 519 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikidata refs/changes/03/252903/1 diff --git a/composer.lock b/composer.lock index 5815a18..5081689 100644 --- a/composer.lock +++ b/composer.lock @@ -919,7 +919,7 @@ "source": { "type": "git", "url": "https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQualityConstraints", - "reference": "b2dfdbb94f394964493b6d5bfa65fc93e03b6d97" + "reference": "7a4a4f71ff982edea41e74db87421bfba2ae6745" }, "require": { "php": ">=5.3.0", @@ -965,7 +965,7 @@ "support": { "issues": "https://phabricator.wikimedia.org/project/profile/1202/" }, - "time": "2015-10-23 19:47:04" + "time": "2015-11-11 20:37:51" }, { "name": "wikibase/data-model", @@ -1448,12 +1448,12 @@ "source": { "type": "git", "url": "https://github.com/wikimedia/mediawiki-extensions-Wikibase.git", - "reference": "5b65eea44d1f9867b81b2a3315dc1a98a17e0b6a" + "reference": "0632d215a0a00011ac66ea5f088afd1616fdb76c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/5b65eea44d1f9867b81b2a3315dc1a98a17e0b6a", - "reference": "5b65eea44d1f9867b81b2a3315dc1a98a17e0b6a", + "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/0632d215a0a00011ac66ea5f088afd1616fdb76c", + "reference": "0632d215a0a00011ac66ea5f088afd1616fdb76c", "shasum": "" }, "require": { @@ -1523,7 +1523,7 @@ "wikibaserepo", "wikidata" ], - "time": "2015-11-11 20:57:57" + "time": "2015-11-13 09:50:08" }, { "name": "wikibase/wikimedia-badges", diff --git a/extensions/Constraints/specials/SpecialConstraintReport.php b/extensions/Constraints/specials/SpecialConstraintReport.php index 618c501..d0ee747 100644 --- a/extensions/Constraints/specials/SpecialConstraintReport.php +++ b/extensions/Constraints/specials/SpecialConstraintReport.php @@ -11,8 +11,6 @@ use Wikibase\DataModel\Services\EntityId\EntityIdFormatter; use HTMLForm; use Wikibase\DataModel\Services\Lookup\EntityLookup; -use Wikibase\DataModel\Services\Lookup\LanguageLabelDescriptionLookup; -use Wikibase\DataModel\Services\Lookup\TermLookup; use Wikibase\Lib\OutputFormatValueFormatterFactory; use Wikibase\Lib\SnakFormatter; use DataValues; @@ -27,6 +25,7 @@ use Wikibase\DataModel\Entity\ItemId; use Wikibase\DataModel\Entity\PropertyId; use Wikibase\Lib\Store\EntityTitleLookup; +use Wikibase\Lib\Store\LanguageFallbackLabelDescriptionLookupFactory; use Wikibase\Repo\EntityIdHtmlLinkFormatterFactory; use Wikibase\Repo\EntityIdLabelFormatterFactory; use Wikibase\Repo\WikibaseRepo; @@ -101,10 +100,10 @@ return new self( $wikibaseRepo->getEntityLookup(), - $wikibaseRepo->getTermLookup(), $wikibaseRepo->getEntityTitleLookup(), new EntityIdLabelFormatterFactory(), $wikibaseRepo->getEntityIdHtmlLinkFormatterFactory(), + $wikibaseRepo->getLanguageFallbackLabelDescriptionLookupFactory(), $wikibaseRepo->getEntityIdParser(), $wikibaseRepo->getValueFormatterFactory(), $constraintReportFactory->getConstraintChecker() @@ -113,20 +112,20 @@ /** * @param EntityLookup $entityLookup - * @param TermLookup $termLookup * @param EntityTitleLookup $entityTitleLookup * @param EntityIdLabelFormatterFactory $entityIdLabelFormatterFactory * @param EntityIdHtmlLinkFormatterFactory $entityIdHtmlLinkFormatterFactory + * @param LanguageFallbackLabelDescriptionLookupFactory $fallbackLabelDescLookupFactory * @param EntityIdParser $entityIdParser * @param OutputFormatValueFormatterFactory $valueFormatterFactory * @param DelegatingConstraintChecker $constraintChecker */ public function __construct( EntityLookup $entityLookup, - TermLookup $termLookup, EntityTitleLookup $entityTitleLookup, EntityIdLabelFormatterFactory $entityIdLabelFormatterFactory, EntityIdHtmlLinkFormatterFactory $entityIdHtmlLinkFormatterFactory, + LanguageFallbackLabelDescriptionLookupFactory $fallbackLabelDescLookupFactory, EntityIdParser $entityIdParser, OutputFormatValueFormatterFactory $valueFormatterFactory, DelegatingConstraintChecker $constraintChecker @@ -137,13 +136,24 @@ $this->entityTitleLookup = $entityTitleLookup; $this->entityIdParser = $entityIdParser; - $formatterOptions = new FormatterOptions(); - $formatterOptions->setOption( SnakFormatter::OPT_LANG, $this->getLanguage()->getCode() ); - $this->dataValueFormatter = $valueFormatterFactory->getValueFormatter( SnakFormatter::FORMAT_HTML, $formatterOptions ); + $language = $this->getLanguage(); - $labelLookup = new LanguageLabelDescriptionLookup( $termLookup, $this->getLanguage()->getCode() ); - $this->entityIdLabelFormatter = $entityIdLabelFormatterFactory->getEntityIdFormatter( $labelLookup ); - $this->entityIdLinkFormatter = $entityIdHtmlLinkFormatterFactory->getEntityIdFormatter( $labelLookup ); + $formatterOptions = new FormatterOptions(); + $formatterOptions->setOption( SnakFormatter::OPT_LANG, $language->getCode() ); + $this->dataValueFormatter = $valueFormatterFactory->getValueFormatter( + SnakFormatter::FORMAT_HTML, + $formatterOptions + ); + + $labelLookup = $fallbackLabelDescLookupFactory->newLabelDescriptionLookup( $language ); + + $this->entityIdLabelFormatter = $entityIdLabelFormatterFactory->getEntityIdFormatter( + $labelLookup + ); + + $this->entityIdLinkFormatter = $entityIdHtmlLinkFormatterFactory->getEntityIdFormatter( + $labelLookup + ); $this->constraintChecker = $constraintChecker; } diff --git a/extensions/Constraints/tests/phpunit/Specials/SpecialConstraintReportTest.php b/extensions/Constraints/tests/phpunit/Specials/SpecialConstraintReportTest.php index 04eeb54..93ba09e 100644 --- a/extensions/Constraints/tests/phpunit/Specials/SpecialConstraintReportTest.php +++ b/extensions/Constraints/tests/phpunit/Specials/SpecialConstraintReportTest.php @@ -73,10 +73,10 @@ return new SpecialConstraintReport( $wikibaseRepo->getEntityLookup(), - $wikibaseRepo->getTermLookup(), $wikibaseRepo->getEntityTitleLookup(), new EntityIdLabelFormatterFactory(), $wikibaseRepo->getEntityIdHtmlLinkFormatterFactory(), + $wikibaseRepo->getLanguageFallbackLabelDescriptionLookupFactory(), $wikibaseRepo->getEntityIdParser(), $wikibaseRepo->getValueFormatterFactory(), $constraintReportFactory->getConstraintChecker() diff --git a/extensions/Wikibase/client/WikibaseClient.hooks.php b/extensions/Wikibase/client/WikibaseClient.hooks.php index dbf0e26..9178629 100644 --- a/extensions/Wikibase/client/WikibaseClient.hooks.php +++ b/extensions/Wikibase/client/WikibaseClient.hooks.php @@ -439,54 +439,6 @@ } /** - * Adds a toggle for showing/hiding Wikidata entries in recent changes - * - * @param SpecialRecentChanges $special - * @param array &$filters - * - * @return bool - */ - public static function onSpecialRecentChangesFilters( SpecialRecentChanges $special, array &$filters ) { - $hookHandler = new ChangesPageWikibaseFilterHandler( - $special->getContext(), - WikibaseClient::getDefaultInstance()->getSettings()->getSetting( 'showExternalRecentChanges' ), - 'hidewikidata', - 'rcshowwikidata', - 'wikibase-rc-hide-wikidata' - ); - - // @fixme remove wikidata-specific stuff! - $filters = $hookHandler->addFilterIfEnabled( $filters ); - - return true; - } - - /** - * Modifies watchlist options to show a toggle for Wikibase changes - * @see https://www.mediawiki.org/wiki/Manual:Hooks/SpecialWatchlistFilters - * - * @since 0.4 - * - * @param SpecialWatchlist $special - * @param array $filters - * - * @return bool - */ - public static function onSpecialWatchlistFilters( $special, &$filters ) { - $hookHandler = new ChangesPageWikibaseFilterHandler( - $special->getContext(), - WikibaseClient::getDefaultInstance()->getSettings()->getSetting( 'showExternalRecentChanges' ), - 'hideWikibase', - 'wlshowwikibase', - 'wikibase-rc-hide-wikidata' - ); - - $filters = $hookHandler->addFilterIfEnabled( $filters ); - - return true; - } - - /** * Adds a preference for showing or hiding Wikidata entries in recent changes * * @param User $user diff --git a/extensions/Wikibase/client/WikibaseClient.php b/extensions/Wikibase/client/WikibaseClient.php index f59b086..0140d0a 100644 --- a/extensions/Wikibase/client/WikibaseClient.php +++ b/extensions/Wikibase/client/WikibaseClient.php @@ -36,6 +36,8 @@ * @defgroup WikibaseClient Wikibase Client */ +// @codingStandardsIgnoreFile + if ( !defined( 'MEDIAWIKI' ) ) { die( "Not an entry point.\n" ); } @@ -110,14 +112,10 @@ $wgHooks['ParserGetVariableValueSwitch'][] = '\Wikibase\ClientHooks::onParserGetVariableValueSwitch'; $wgHooks['SkinTemplateOutputPageBeforeExec'][] = '\Wikibase\ClientHooks::onSkinTemplateOutputPageBeforeExec'; $wgHooks['SpecialMovepageAfterMove'][] = '\Wikibase\Client\Hooks\MovePageNotice::onSpecialMovepageAfterMove'; - $wgHooks['SpecialWatchlistQuery'][] = '\Wikibase\ClientHooks::onSpecialWatchlistQuery'; - $wgHooks['SpecialRecentChangesQuery'][] = '\Wikibase\ClientHooks::onSpecialRecentChangesQuery'; - $wgHooks['SpecialRecentChangesFilters'][] = '\Wikibase\ClientHooks::onSpecialRecentChangesFilters'; $wgHooks['GetPreferences'][] = '\Wikibase\ClientHooks::onGetPreferences'; $wgHooks['BeforePageDisplay'][] = '\Wikibase\ClientHooks::onBeforePageDisplay'; $wgHooks['BeforePageDisplay'][] = '\Wikibase\ClientHooks::onBeforePageDisplayAddJsConfig'; $wgHooks['ScribuntoExternalLibraries'][] = '\Wikibase\ClientHooks::onScribuntoExternalLibraries'; - $wgHooks['SpecialWatchlistFilters'][] = '\Wikibase\ClientHooks::onSpecialWatchlistFilters'; $wgHooks['InfoAction'][] = '\Wikibase\ClientHooks::onInfoAction'; $wgHooks['TitleMoveComplete'][] = '\Wikibase\Client\Hooks\UpdateRepoHookHandlers::onTitleMoveComplete'; $wgHooks['BaseTemplateAfterPortlet'][] = '\Wikibase\ClientHooks::onBaseTemplateAfterPortlet'; @@ -128,6 +126,11 @@ $wgHooks['ParserLimitReportPrepare'][] = '\Wikibase\Client\Hooks\ParserLimitHookHandlers::onParserLimitReportPrepare'; $wgHooks['FormatAutocomments'][] = '\Wikibase\ClientHooks::onFormat'; + // recent changes / watchlist hooks + $wgHooks['ChangesListSpecialPageFilters'][] = '\Wikibase\Client\Hooks\ChangesListSpecialPageFilterHandler::onChangesListSpecialPageFilters'; + $wgHooks['SpecialWatchlistQuery'][] = '\Wikibase\ClientHooks::onSpecialWatchlistQuery'; + $wgHooks['SpecialRecentChangesQuery'][] = '\Wikibase\ClientHooks::onSpecialRecentChangesQuery'; + // update hooks $wgHooks['LoadExtensionSchemaUpdates'][] = '\Wikibase\Client\Usage\Sql\SqlUsageTrackerSchemaUpdater::onSchemaUpdate'; diff --git a/extensions/Wikibase/client/i18n/scn.json b/extensions/Wikibase/client/i18n/scn.json index 20e5042..3f2e81b 100644 --- a/extensions/Wikibase/client/i18n/scn.json +++ b/extensions/Wikibase/client/i18n/scn.json @@ -62,6 +62,7 @@ "unconnectedpages": "Pàggini nun assuciati a suggetti", "wikibase-unconnectedpages-format-row": "($1 {{PLURAL:$1|culligamentu|culligamenti}} di lingua ntâ pàggina)", "wikibase-unconnectedpages-submit": "Vai", + "pageswithbadges": "Pàggini cu distintivi", "wikibase-pageinfo-entity-id": "ID dû suggetttu supra a {{WBREPONAME}}", "wikibase-pageinfo-entity-id-none": "Nuddu", "wikibase-property-render-error": "Nun s'arriniscìu a rènniri lu valuri dâ prupità $1: $2", diff --git a/extensions/Wikibase/client/includes/Hooks/ChangesListSpecialPageFilterHandler.php b/extensions/Wikibase/client/includes/Hooks/ChangesListSpecialPageFilterHandler.php new file mode 100644 index 0000000..0b0ecad --- /dev/null +++ b/extensions/Wikibase/client/includes/Hooks/ChangesListSpecialPageFilterHandler.php @@ -0,0 +1,164 @@ +<?php + +namespace Wikibase\Client\Hooks; + +use ChangesListSpecialPage; +use User; +use WebRequest; +use Wikibase\Client\WikibaseClient; + +/** + * @since 0.5 + * + * @licence GNU GPL v2+ + * @author Katie Filbert < aude.w...@gmail.com > + */ +class ChangesListSpecialPageFilterHandler { + + /** + * @var WebRequest + */ + private $request; + + /** + * @var User + */ + private $user; + + /** + * @var string + */ + private $pageName; + + /** + * @var bool + */ + private $showExternalChanges; + + /** + * @param WebRequest $request + * @param User $user + * @param string $pageName + * @param bool $showExternalChanges + */ + public function __construct( + WebRequest $request, + User $user, + $pageName, + $showExternalChanges + ) { + $this->request = $request; + $this->user = $user; + $this->pageName = $pageName; + $this->showExternalChanges = $showExternalChanges; + } + + /** + * @param ChangesListSpecialPage $specialPage + * + * @return ChangesListSpecialPageFilterHandler + */ + private static function newFromGlobalState( + ChangesListSpecialPage $specialPage + ) { + $context = $specialPage->getContext(); + $settings = WikibaseClient::getDefaultInstance()->getSettings(); + + return new self( + $context->getRequest(), + $context->getUser(), + $specialPage->getName(), + $settings->getSetting( 'showExternalRecentChanges' ) + ); + } + + /** + * Modifies recent changes and watchlist options to show a toggle for Wikibase changes + * @see https://www.mediawiki.org/wiki/Manual:Hooks/ChangesListSpecialPageFilters + * + * @param ChangesListSpecialPage $specialPage + * @param array &$filters + * + * @return bool + */ + public static function onChangesListSpecialPageFilters( + ChangesListSpecialPage $specialPage, + array &$filters + ) { + $hookHandler = self::newFromGlobalState( $specialPage ); + $hookHandler->addFilterIfEnabled( $filters ); + + return true; + } + + /** + * @param array &$filters + */ + public function addFilterIfEnabled( array &$filters ) { + if ( $this->shouldAddFilter() ) { + // if preference enabled, then Wikibase edits are included by default and + // the toggle default value needs to be the inverse to hide them, and vice versa. + $toggleDefault = !$this->hasShowWikibaseEditsPrefEnabled(); + $this->addFilter( $filters, $toggleDefault ); + } + } + + /** + * @return bool + */ + private function shouldAddFilter() { + return $this->showExternalChanges && !$this->isEnhancedChangesEnabled(); + } + + /** + * @param array &$filters + * @param bool $toggleDefault + */ + private function addFilter( array &$filters, $toggleDefault ) { + $filterName = $this->getFilterName(); + + $filters[$filterName] = array( + 'msg' => 'wikibase-rc-hide-wikidata', + 'default' => $toggleDefault + ); + } + + /** + * @return bool + */ + private function hasShowWikibaseEditsPrefEnabled() { + return (bool)$this->user->getOption( $this->getOptionName() ); + } + + /** + * @return bool + */ + private function isEnhancedChangesEnabled() { + $enhancedChangesUserOption = $this->user->getOption( 'usenewrc' ); + + return $this->request->getBool( 'enhanced', $enhancedChangesUserOption ); + } + + /** + * @return string + */ + private function getFilterName() { + if ( $this->pageName === 'Watchlist' ) { + return 'hideWikibase'; + } + + return 'hidewikidata'; + } + + /** + * @return string + */ + private function getOptionName() { + if ( $this->pageName === 'Watchlist' ) { + return 'wlshowwikibase'; + } + + return 'rcshowwikidata'; + } + +} diff --git a/extensions/Wikibase/client/includes/Hooks/ChangesPageWikibaseFilterHandler.php b/extensions/Wikibase/client/includes/Hooks/ChangesPageWikibaseFilterHandler.php deleted file mode 100644 index 45f358b..0000000 --- a/extensions/Wikibase/client/includes/Hooks/ChangesPageWikibaseFilterHandler.php +++ /dev/null @@ -1,130 +0,0 @@ -<?php - -namespace Wikibase\Client\Hooks; - -use IContextSource; -use User; - -/** - * @since 0.5 - * - * @licence GNU GPL v2+ - * @author Katie Filbert < aude.w...@gmail.com > - */ -class ChangesPageWikibaseFilterHandler { - - /** - * @var IContextSource - */ - private $context; - - /** - * @var boolean - */ - private $showExternalChanges; - - /** - * @var string - */ - private $filterName; - - /** - * @var string - */ - private $optionName; - - /** - * @var string - */ - private $toggleMessageKey; - - /** - * @param IContextSource $context - * @param boolean $showExternalChanges - * @param string $filterName - name for Wikibase toggle in FormOptions - * @param string $optionName - user option name for showing Wikibase edits by default - * @param string $toggleMessageKey - */ - public function __construct( - IContextSource $context, - $showExternalChanges, - $filterName, - $optionName, - $toggleMessageKey - ) { - $this->context = $context; - $this->showExternalChanges = $showExternalChanges; - $this->filterName = $filterName; - $this->optionName = $optionName; - $this->toggleMessageKey = $toggleMessageKey; - } - - /** - * @param array $filters - * - * @return array - */ - public function addFilterIfEnabled( array $filters ) { - $user = $this->context->getUser(); - - if ( !$this->shouldAddFilter( $user ) ) { - return $filters; - } - - $toggleDefault = $this->showWikibaseEditsByDefault( $user ); - $filters = $this->addFilter( $filters, $toggleDefault ); - - return $filters; - } - - /** - * @param User $user - * - * @return boolean - */ - private function shouldAddFilter( User $user ) { - if ( $this->showExternalChanges && !$this->isEnhancedChangesEnabled( $user ) ) { - return true; - } - - return false; - } - - /** - * @param array $filters - * @param boolean $toggleDefault - * - * @return array - */ - private function addFilter( array $filters, $toggleDefault ) { - $filters["{$this->filterName}"] = array( - 'msg' => $this->toggleMessageKey, - 'default' => $toggleDefault - ); - - return $filters; - } - - /** - * @param User $user - * - * @return boolean - */ - private function showWikibaseEditsByDefault( User $user ) { - return !$user->getOption( $this->optionName ); - } - - /** - * @param User $user - * - * @return boolean - */ - private function isEnhancedChangesEnabled( User $user ) { - $enhancedChangesUserOption = $user->getOption( 'usenewrc' ); - - $isEnabled = $this->context->getRequest()->getBool( 'enhanced', $enhancedChangesUserOption ); - - return $isEnabled; - } - -} diff --git a/extensions/Wikibase/client/tests/phpunit/includes/Hooks/ChangesListSpecialPageFilterHandlerTest.php b/extensions/Wikibase/client/tests/phpunit/includes/Hooks/ChangesListSpecialPageFilterHandlerTest.php new file mode 100644 index 0000000..eb18101 --- /dev/null +++ b/extensions/Wikibase/client/tests/phpunit/includes/Hooks/ChangesListSpecialPageFilterHandlerTest.php @@ -0,0 +1,224 @@ +<?php + +namespace Wikibase\Client\Tests\Hooks; + +use FauxRequest; +use Wikibase\Client\Hooks\ChangesListSpecialPageFilterHandler; + +/** + * @covers Wikibase\Client\Hooks\ChangesListSpecialPageFilterHandler + * + * @group WikibaseClientHooks + * @group WikibaseClient + * @group Wikibase + */ +class ChangesListSpecialPageFilterHandlerTest extends \PHPUnit_Framework_TestCase { + + /** + * @dataProvider filterNotAddedWhenUsingEnhancedChangesProvider + */ + public function testFilterNotAddedWhenUsingEnhancedChanges( + array $requestParams, + array $userPreferences, + $pageName, + $message + ) { + $hookHandler = new ChangesListSpecialPageFilterHandler( + $this->getRequest( $requestParams ), + $this->getUser( $userPreferences ), + $pageName, + true + ); + + $filters = array(); + $hookHandler->addFilterIfEnabled( $filters ); + + $this->assertSame( array(), $filters, $message ); + } + + public function filterNotAddedWhenUsingEnhancedChangesProvider() { + return array( + array( + array(), + array( 'usenewrc' => 1 ), + 'Watchlist', + 'enhanced default pref for Watchlist' + ), + array( + array(), + array( 'usenewrc' => 1 ), + 'RecentChanges', + 'enhanced default pref for RecentChanges' + ), + array( + array( 'enhanced' => 1 ), + array( 'usenewrc' => 0 ), + 'Watchlist', + 'enhanced not default but has enhanced=1 req param' + ), + array( + array( 'enhanced' => 1 ), + array( 'usenewrc' => 0 ), + 'RecentChanges', + 'enhanced not default but has enhanced=1 req param' + ), + array( + array( 'enhanced' => 1 ), + array( 'usenewrc' => 1 ), + 'Watchlist', + 'enhanced default and has enhanced=1 req param' + ), + array( + array( 'enhanced' => 1 ), + array( 'usenewrc' => 1 ), + 'RecentChangesLinked', + 'enhanced default and has enhanced=1 req param' + ), + ); + } + + /** + * @dataProvider filterAddedWhenNotUsingEnhancedChangesProvider + */ + public function testFilterAddedWhenNotUsingEnhancedChanges_notShowWikibaseEditsByDefault( + array $requestParams, + array $userPreferences, + $expectedFilterName, + $specialPageName + ) { + $hookHandler = new ChangesListSpecialPageFilterHandler( + $this->getRequest( $requestParams ), + $this->getUser( $userPreferences ), + $specialPageName, + true + ); + + $filters = array(); + $hookHandler->addFilterIfEnabled( $filters ); + + $expected = array( + $expectedFilterName => array( + 'msg' => 'wikibase-rc-hide-wikidata', + 'default' => true + ) + ); + + $this->assertSame( $expected, $filters ); + } + + public function filterAddedWhenNotUsingEnhancedChangesProvider() { + return array( + array( + array(), + array( 'usenewrc' => 0 ), + 'hideWikibase', + 'Watchlist' + ), + array( + array( 'enhanced' => 0 ), + array( 'usenewrc' => 1 ), + 'hidewikidata', + 'RecentChanges' + ), + array( + array(), + array( 'usenewrc' => 0 ), + 'hidewikidata', + 'RecentChangesLinked' + ) + ); + } + + /** + * @dataProvider filterAddedInNonEnhanced_withPrefToShowWikibaseEditsByDefaultProvider + */ + public function testFilterAddedInNonEnhanced_withPrefToShowWikibaseEditsByDefault( + array $userPreferences, + $expectedFilterName, + $specialPageName + ) { + $hookHandler = new ChangesListSpecialPageFilterHandler( + $this->getRequest( array() ), + $this->getUser( $userPreferences ), + $specialPageName, + true + ); + + $filters = array(); + $hookHandler->addFilterIfEnabled( $filters ); + + $expected = array( + $expectedFilterName => array( + 'msg' => 'wikibase-rc-hide-wikidata', + 'default' => false + ) + ); + + $this->assertSame( $expected, $filters ); + } + + public function filterAddedInNonEnhanced_withPrefToShowWikibaseEditsByDefaultProvider() { + return array( + array( + array( 'wlshowwikibase' => 1, 'usenewrc' => 0 ), + 'hideWikibase', + 'Watchlist' + ), + array( + array( 'rcshowwikidata' => 1, 'usenewrc' => 0 ), + 'hidewikidata', + 'RecentChanges' + ) + ); + } + + /** + * @dataProvider filterNotAddedWhenExternalRecentChangesDisabledProvider() { + */ + public function testFilterNotAddedWhenExternalRecentChangesDisabled( $specialPageName ) { + $hookHandler = new ChangesListSpecialPageFilterHandler( + $this->getRequest( array() ), + $this->getUser( array( 'usenewrc' => 0 ) ), + $specialPageName, + false + ); + + $filters = array(); + $hookHandler->addFilterIfEnabled( $filters ); + + $this->assertSame( array(), $filters ); + } + + public function filterNotAddedWhenExternalRecentChangesDisabledProvider() { + return array( + array( 'Watchlist' ), + array( 'RecentChanges' ), + array( 'RecentChangesLinked' ) + ); + } + + private function getRequest( array $requestParams ) { + return new FauxRequest( $requestParams ); + } + + private function getUser( array $options ) { + $user = $this->getMockBuilder( 'User' ) + ->disableOriginalConstructor() + ->getMock(); + + $user->expects( $this->any() ) + ->method( 'getOption' ) + ->will( $this->returnCallback( function( $optionName ) use ( $options ) { + foreach ( $options as $key => $value ) { + if ( $optionName === $key ) { + return $value; + } + } + + return null; + } ) ); + + return $user; + } + +} diff --git a/extensions/Wikibase/client/tests/phpunit/includes/Hooks/ChangesPageWikibaseFilterHandlerTest.php b/extensions/Wikibase/client/tests/phpunit/includes/Hooks/ChangesPageWikibaseFilterHandlerTest.php deleted file mode 100644 index e557709..0000000 --- a/extensions/Wikibase/client/tests/phpunit/includes/Hooks/ChangesPageWikibaseFilterHandlerTest.php +++ /dev/null @@ -1,117 +0,0 @@ -<?php - -namespace Wikibase\Client\Tests\Hooks; - -use DerivativeContext; -use FauxRequest; -use RequestContext; -use Wikibase\Client\Hooks\ChangesPageWikibaseFilterHandler; - -/** - * @covers Wikibase\Client\Hooks\ChangesPageWikibaseFilterHandler - * - * @group WikibaseClientHooks - * @group WikibaseClient - * @group Wikibase - */ -class ChangesPageWikibaseFilterHandlerTest extends \PHPUnit_Framework_TestCase { - - /** - * @dataProvider filterNotAddedWhenUsingEnhancedChangesProvider - */ - public function testFilterNotAddedWhenUsingEnhancedChanges( - $enhancedChangesDefault, - $useEnhancedChanges - ) { - $context = $this->getContext( $enhancedChangesDefault, $useEnhancedChanges, false ); - $hookHandler = new ChangesPageWikibaseFilterHandler( $context, true, 'foo', 'bar', 'foobar' ); - - $filters = array(); - $filters = $hookHandler->addFilterIfEnabled( $filters ); - - $this->assertEquals( array(), $filters ); - } - - public function filterNotAddedWhenUsingEnhancedChangesProvider() { - return array( - array( true, true, 'enhanced changes default preference and using' ), - array( false, true, 'enhanced changes not default but using' ) - ); - } - - public function testFilterAddedWhenNotUsingEnhancedChanges() { - $context = $this->getContext( false, false, true ); - $hookHandler = new ChangesPageWikibaseFilterHandler( $context, true, 'foo', 'bar', 'foobar' ); - - $filters = array(); - $filters = $hookHandler->addFilterIfEnabled( $filters ); - - $expected = array( - 'foo' => array( - 'msg' => 'foobar', - 'default' => false - ) - ); - - $this->assertEquals( $expected, $filters ); - } - - public function testFilterAddedAndEnabledByDefault_WhenNotUsingEnhancedChanges() { - $context = $this->getContext( false, false, false ); - $hookHandler = new ChangesPageWikibaseFilterHandler( $context, true, 'foo', 'bar', 'foobar' ); - - $filters = array(); - $filters = $hookHandler->addFilterIfEnabled( $filters ); - - $expected = array( - 'foo' => array( - 'msg' => 'foobar', - 'default' => true - ) - ); - - $this->assertEquals( $expected, $filters ); - } - - public function testFilterNotAddedWhenExternalRecentChangesDisabled() { - $context = $this->getContext( false, false, false ); - $hookHandler = new ChangesPageWikibaseFilterHandler( $context, false, 'foo', 'bar', 'foobar' ); - - $filters = array(); - $filters = $hookHandler->addFilterIfEnabled( $filters ); - - $this->assertEquals( array(), $filters ); - } - - private function getContext( $enhancedChangesPref, $useEnhanced, $hideWikibaseEditsByDefault ) { - $context = new DerivativeContext( RequestContext::getMain() ); - $context->setUser( $this->getUser( $enhancedChangesPref, $hideWikibaseEditsByDefault ) ); - - $request = new FauxRequest( array( 'enhanced' => $useEnhanced ) ); - $context->setRequest( $request ); - - return $context; - } - - private function getUser( $enhancedChangesPref, $hideWikibaseEditsByDefault ) { - $user = $this->getMockBuilder( 'User' ) - ->disableOriginalConstructor() - ->getMock(); - - $user->expects( $this->any() ) - ->method( 'getOption' ) - ->will( $this->returnCallback( function( $optionName ) use ( - $enhancedChangesPref, - $hideWikibaseEditsByDefault - ) { - if ( $optionName === 'usenewrc' ) { - return $enhancedChangesPref; - } else { - return $hideWikibaseEditsByDefault; - } - } ) ); - - return $user; - } - -} diff --git a/extensions/Wikibase/lib/i18n/de.json b/extensions/Wikibase/lib/i18n/de.json index 2a8f48e..afe41db 100644 --- a/extensions/Wikibase/lib/i18n/de.json +++ b/extensions/Wikibase/lib/i18n/de.json @@ -9,7 +9,8 @@ "TMg", "Sebastian Wallroth", "Flow", - "Yellowcard" + "Yellowcard", + "Lydia Pintscher (WMDE)" ] }, "wikibase-lib-desc": "Stellt dem Repositorium strukturierter Daten gemeinsam nutzbare Funktionen bereit", @@ -100,9 +101,9 @@ "wikibase-entity-summary-wbeditentity-create": "Ein neues Objekt erstellt", "wikibase-entity-summary-wbeditentity-update": "Ein Objekt geändert", "wikibase-entity-summary-wbeditentity-override": "Ein Objekt geleert", - "wikibase-entity-summary-wbsetreference": "Referenz festgelegt", + "wikibase-entity-summary-wbsetreference": "Fundstelle festgelegt", "wikibase-entity-summary-wbsetreference-add": "Fundstelle der Aussage hinzugefügt", - "wikibase-entity-summary-wbsetreference-set": "Einzelnachweis der Aussage geändert", + "wikibase-entity-summary-wbsetreference-set": "Fundstelle der Aussage geändert", "wikibase-entity-summary-wbsetlabel-add": "Bezeichnung für [$2] hinzugefügt", "wikibase-entity-summary-wbsetlabel-set": "Bezeichnung für [$2] geändert", "wikibase-entity-summary-wbsetlabel-remove": "Bezeichnung für [$2] entfernt", @@ -134,7 +135,7 @@ "wikibase-entity-summary-wbsetclaim-update": "{{PLURAL:$3|Aussage|Aussagen}} geändert", "wikibase-entity-summary-wbsetclaim-create": "{{PLURAL:$3|Aussage|Aussagen}} erstellt", "wikibase-entity-summary-wbsetclaim-update-qualifiers": "{{PLURAL:$4|Einen Qualifikator|$4 Qualifikatoren}} {{PLURAL:$3|einer Aussage|von Aussagen}} geändert", - "wikibase-entity-summary-wbsetclaim-update-references": "{{PLURAL:$4|Eine Referenz|$4 Referenzen}} {{PLURAL:$3|einer Aussage|von Aussagen}} geändert", + "wikibase-entity-summary-wbsetclaim-update-references": "{{PLURAL:$4|Eine Fundstelle|$4 Fundstellen}} {{PLURAL:$3|einer Aussage|von Aussagen}} geändert", "wikibase-entity-summary-wbsetclaim-update-rank": "Den Rang der {{PLURAL:$3|Aussage|Aussagen}} geändert", "wikibase-entity-summary-clientsitelink-update": "Seite von [$3] nach [$4] verschoben", "wikibase-entity-summary-clientsitelink-remove": "Seite auf [$3] gelöscht", diff --git a/extensions/Wikibase/repo/i18n/de.json b/extensions/Wikibase/repo/i18n/de.json index 973be23..85f6fef 100644 --- a/extensions/Wikibase/repo/i18n/de.json +++ b/extensions/Wikibase/repo/i18n/de.json @@ -21,7 +21,8 @@ "Zolo", "Sebastian Wallroth", "Tiin", - "Yellowcard" + "Yellowcard", + "Lydia Pintscher (WMDE)" ] }, "wikibase-desc": "Ermöglicht ein Repositorium strukturierter Daten", @@ -34,7 +35,7 @@ "wikibase-cancel": "abbrechen", "wikibase-add": "hinzufügen", "wikibase-addqualifier": "Qualifikator hinzufügen", - "wikibase-addreference": "Einzelnachweis hinzufügen", + "wikibase-addreference": "Fundstelle hinzufügen", "wikibase-save-inprogress": "Speichere …", "wikibase-remove-inprogress": "Entferne …", "wikibase-entitytermsview-entitytermsforlanguagelistview-toggler": "In weiteren Sprachen", @@ -53,7 +54,7 @@ "wikibase-description-edit-placeholder-language-aware": "Beschreibung auf $1 eingeben", "wikibase-aliases-edit-placeholder": "Einige Aliasse eingeben", "wikibase-aliases-edit-placeholder-language-aware": "Einige Aliasse auf $1 angeben", - "wikibase-diffview-reference": "Referenz", + "wikibase-diffview-reference": "Fundstelle", "wikibase-diffview-rank": "Rang", "wikibase-diffview-rank-preferred": "Vorrangig", "wikibase-diffview-rank-normal": "Normaler Rang", diff --git a/extensions/Wikibase/repo/i18n/nb.json b/extensions/Wikibase/repo/i18n/nb.json index 0ed3157..12c1b61 100644 --- a/extensions/Wikibase/repo/i18n/nb.json +++ b/extensions/Wikibase/repo/i18n/nb.json @@ -191,7 +191,7 @@ "wikibase-itemmerge-permissiondenied": "Ingen tilgang.", "wikibase-itemmerge-failed-modify": "Klarte ikke å flette elementene, vennligst løs eventuelle konflikter først.", "wikibase-itemmerge-no-such-entity": "Elementet ble ikke funnet.", - "wikibase-itemmerge-cant-load-entity-content": "Kunne ikke laste elementet.", + "wikibase-itemmerge-cant-load-entity-content": "Klarte ikke laste elementet.", "wikibase-itemmerge-cant-merge-self": "Kan ikke flettet et element med seg selv.", "wikibase-tokencheck-missingtoken": "Redigeringstoken kreves.", "wikibase-tokencheck-mustposttoken": "Redigering er kun mulig med POST-forespørsler", diff --git a/extensions/Wikibase/repo/includes/ItemDisambiguation.php b/extensions/Wikibase/repo/includes/ItemDisambiguation.php index 3c776e3..48dc8c5 100644 --- a/extensions/Wikibase/repo/includes/ItemDisambiguation.php +++ b/extensions/Wikibase/repo/includes/ItemDisambiguation.php @@ -214,7 +214,7 @@ $matchElement = $descriptionElement = Html::element( 'span', array( 'class' => 'wb-itemlink-match' ), - wfMessage( 'wikibase-itemlink-userlang-wrapper' )->params( $language, $text )->parse() + wfMessage( 'wikibase-itemlink-userlang-wrapper' )->params( $language, $text )->text() ); return $matchElement; diff --git a/extensions/Wikibase/repo/includes/rdf/SimpleValueRdfBuilder.php b/extensions/Wikibase/repo/includes/rdf/SimpleValueRdfBuilder.php index d390a78..af6310c 100644 --- a/extensions/Wikibase/repo/includes/rdf/SimpleValueRdfBuilder.php +++ b/extensions/Wikibase/repo/includes/rdf/SimpleValueRdfBuilder.php @@ -2,7 +2,6 @@ namespace Wikibase\Rdf; -use DataValues\DataValue; use DataValues\DecimalValue; use DataValues\Geo\Values\GlobeCoordinateValue; use DataValues\MonolingualTextValue; @@ -10,7 +9,6 @@ use DataValues\StringValue; use DataValues\TimeValue; use Wikibase\DataModel\Entity\EntityIdValue; -use Wikibase\DataModel\Services\Lookup\PropertyDataTypeLookup; use Wikibase\DataModel\Snak\PropertyValueSnak; use Wikimedia\Purtle\RdfWriter; @@ -36,6 +34,11 @@ private $dateCleaner; /** + * @var RdfVocabulary + */ + protected $vocabulary; + + /** * @param RdfVocabulary $vocabulary */ public function __construct( RdfVocabulary $vocabulary ) { diff --git a/extensions/Wikibase/repo/tests/phpunit/includes/ItemDisambiguationTest.php b/extensions/Wikibase/repo/tests/phpunit/includes/ItemDisambiguationTest.php index 646d48f..72ec78c 100644 --- a/extensions/Wikibase/repo/tests/phpunit/includes/ItemDisambiguationTest.php +++ b/extensions/Wikibase/repo/tests/phpunit/includes/ItemDisambiguationTest.php @@ -2,12 +2,11 @@ namespace Wikibase\Test; +use Language; use MediaWikiTestCase; -use Title; use Wikibase\DataModel\Entity\ItemId; use Wikibase\DataModel\Term\Term; use Wikibase\ItemDisambiguation; -use Wikibase\Lib\Store\EntityTitleLookup; use Wikibase\Lib\Interactors\TermSearchResult; /** @@ -20,185 +19,98 @@ * @group Database * * @licence GNU GPL v2+ - * @author Daniel Kinzler - * @author Adam Shorland + * @author Thiemo Mättig */ -class ItemDisambiguationTest extends \MediaWikiTestCase { +class ItemDisambiguationTest extends MediaWikiTestCase { - /** - * @return EntityTitleLookup - */ - private function getMockEntityTitleLookup() { - $entityIdFormatter = $this->getMock( 'Wikibase\Lib\Store\EntityTitleLookup' ); + protected function setUp() { + parent::setUp(); - $entityIdFormatter->expects( $this->any() ) - ->method( 'getTitleForId' ) - ->will( $this->returnCallback( function( ItemId $id ) { - return Title::makeTitle( NS_MAIN, $id->getSerialization() ); - } ) ); - - return $entityIdFormatter; + $this->setMwGlobals( array( + 'wgLang' => Language::factory( 'qqx' ), + ) ); } /** * @return ItemDisambiguation */ - private function newItemDisambiguation() { + private function newInstance() { + $entityTitleLookup = $this->getMock( 'Wikibase\Lib\Store\EntityTitleLookup' ); + $entityTitleLookup->expects( $this->any() ) + ->method( 'getTitleForId' ) + ->will( $this->returnValue( $this->getMock( 'Title' ) ) ); + $languageNameLookup = $this->getMock( 'Wikibase\Lib\LanguageNameLookup' ); + $languageNameLookup->expects( $this->any() ) + ->method( 'getName' ) + ->will( $this->returnValue( '<LANG>' ) ); return new ItemDisambiguation( - $this->getMockEntityTitleLookup(), + $entityTitleLookup, $languageNameLookup, 'en' ); } - public function getHTMLProvider() { - $cases = array(); - $matchers = array(); + public function testNoResults() { + $html = $this->newInstance()->getHTML( array() ); - // No results - $matchers['matches'] = array( - 'tag' => 'ul', - 'content' => '', - 'attributes' => array( 'class' => 'wikibase-disambiguation' ), - ); - $cases['No Results'] = array( array(), $matchers ); - - // One label match in the display language - $matchers['matches'] = array( - 'tag' => 'ul', - 'children' => array( 'count' => 1 ), - 'attributes' => array( 'class' => 'wikibase-disambiguation' ), - ); - $matchers['one'] = array( - 'tag' => 'li', - 'content' => 'regexp:/^Q1[^1]/s', - ); - $matchers['one/label'] = array( - 'tag' => 'span', - 'content' => 'Foo', - 'attributes' => array( 'class' => 'wb-itemlink-label' ), - ); - $matchers['one/desc'] = array( - 'tag' => 'span', - 'content' => 'DisplayDescription', - 'attributes' => array( 'class' => 'wb-itemlink-description' ), - ); - $cases['One label match in the display language'] = array( - array( - new TermSearchResult( - new Term( 'en', 'Foo' ), - 'label', - new ItemId( 'Q1' ), - new Term( 'en', 'Foo' ), - new Term( 'en', 'DisplayDescription' ) - ), - ), - $matchers - ); - - // One alias match of another language - $matchers['matches'] = array( - 'tag' => 'ul', - 'children' => array( 'count' => 1 ), - 'attributes' => array( 'class' => 'wikibase-disambiguation' ), - ); - $matchers['one'] = array( - 'tag' => 'li', - 'content' => 'regexp:/^Q1[^1]/s', - ); - $matchers['one/label'] = array( - 'tag' => 'span', - 'content' => 'DisplayLabel', - 'attributes' => array( 'class' => 'wb-itemlink-label' ), - ); - $matchers['one/desc'] = array( - 'tag' => 'span', - 'content' => 'DisplayDescription', - 'attributes' => array( 'class' => 'wb-itemlink-description' ), - ); - $matchers['one/match'] = array( - 'tag' => 'span', - 'content' => 'regexp:/Foo/s', - 'attributes' => array( 'class' => 'wb-itemlink-match' ), - ); - $cases['One alias match of another language'] = array( - array( - new TermSearchResult( - new Term( 'de', 'Foo' ), - 'alias', - new ItemId( 'Q1' ), - new Term( 'en', 'DisplayLabel' ), - new Term( 'en', 'DisplayDescription' ) - ), - ), - $matchers - ); - - // Two Results - (1 - No Label in display Language, 2 - No Description) - unset( $matchers['one/label'] ); - $matchers['matches'] = array( - 'tag' => 'ul', - 'children' => array( 'count' => 2 ), - 'attributes' => array( 'class' => 'wikibase-disambiguation' ), - ); - $matchers['one'] = array( - 'tag' => 'li', - 'content' => 'regexp:/^Q2[^1]/s', - ); - $matchers['one/desc'] = array( - 'tag' => 'span', - 'content' => 'DisplayDescription', - 'attributes' => array( 'class' => 'wb-itemlink-description' ), - ); - $matchers['one/match'] = array( - 'tag' => 'span', - 'content' => 'regexp:/Foo/s', - 'attributes' => array( 'class' => 'wb-itemlink-match' ), - ); - $matchers['two'] = array( - 'tag' => 'li', - 'content' => 'regexp:/^Q3[^1]/s', - ); - $matchers['two/match'] = array( - 'tag' => 'span', - 'content' => 'regexp:/Foo/s', - 'attributes' => array( 'class' => 'wb-itemlink-match' ), - ); - $cases['Two Results'] = array( - array( - new TermSearchResult( - new Term( 'de', 'Foo' ), - 'label', - new ItemId( 'Q2' ), - null, - new Term( 'en', 'DisplayDescription' ) - ), - new TermSearchResult( - new Term( 'de', 'Foo' ), - 'label', - new ItemId( 'Q3' ), - new Term( 'en', 'DisplayLabel' ) - ), - ), - $matchers - ); - - return $cases; + $this->assertSame( '<ul class="wikibase-disambiguation"></ul>', $html ); } - /** - * @dataProvider getHTMLProvider - */ - public function testGetHTML( array $searchResults, array $matchers ) { - $disambig = $this->newItemDisambiguation(); + public function testOneResult() { + $searchResult = new TermSearchResult( + new Term( 'en', '<MATCH>' ), + '<TYPE>', + new ItemId( 'Q1' ), + new Term( 'en', '<LABEL>' ), + new Term( 'en', '<DESC>' ) + ); + $html = $this->newInstance()->getHTML( array( $searchResult ) ); - $html = $disambig->getHTML( $searchResults ); + $this->assertContains( '<ul class="wikibase-disambiguation">', $html ); + $this->assertSame( 1, substr_count( $html, '<li ' ) ); - foreach ( $matchers as $key => $matcher ) { - MediaWikiTestCase::assertTag( $matcher, $html, "Failed to match HTML output with tag '{$key}'" ); - } + $this->assertContains( '>Q1</a>', $html ); + $this->assertContains( '<span class="wb-itemlink-label"><LABEL></span>', $html ); + $this->assertContains( '<span class="wb-itemlink-description"><DESC></span>', $html ); + $this->assertContains( '(wikibase-itemlink-userlang-wrapper: <LANG>, <MATCH>)', + $html + ); + } + + public function testTwoResults() { + $searchResults = array( + new TermSearchResult( + new Term( 'de', '<MATCH1>' ), + '<TYPE1>', + new ItemId( 'Q1' ), + null, + new Term( 'en', '<DESC1>' ) + ), + new TermSearchResult( + new Term( 'de', '<MATCH2>' ), + '<TYPE2>', + new ItemId( 'Q2' ), + new Term( 'en', '<LABEL2>' ) + ), + ); + $html = $this->newInstance()->getHTML( $searchResults ); + + $this->assertContains( '<ul class="wikibase-disambiguation">', $html ); + $this->assertSame( 2, substr_count( $html, '<li ' ) ); + + $this->assertContains( '>Q1</a>', $html ); + $this->assertContains( '<span class="wb-itemlink-description"><DESC1></span>', $html ); + $this->assertContains( '(wikibase-itemlink-userlang-wrapper: <LANG>, <MATCH1>)', + $html + ); + + $this->assertContains( '>Q2</a>', $html ); + $this->assertContains( '<span class="wb-itemlink-label"><LABEL2></span>', $html ); + $this->assertContains( '(wikibase-itemlink-userlang-wrapper: <LANG>, <MATCH2>)', + $html + ); } } diff --git a/extensions/Wikibase/repo/tests/phpunit/includes/api/GetEntitiesTest.php b/extensions/Wikibase/repo/tests/phpunit/includes/api/GetEntitiesTest.php index 3e62712..c9d97b5 100644 --- a/extensions/Wikibase/repo/tests/phpunit/includes/api/GetEntitiesTest.php +++ b/extensions/Wikibase/repo/tests/phpunit/includes/api/GetEntitiesTest.php @@ -121,9 +121,6 @@ 'json', 'php', 'xml', - 'yaml', - 'txt', - 'dbg', ); /** diff --git a/extensions/Wikibase/repo/tests/phpunit/includes/rdf/SnakRdfBuilderTest.php b/extensions/Wikibase/repo/tests/phpunit/includes/rdf/SnakRdfBuilderTest.php index 0e8536e..6c08d0c 100644 --- a/extensions/Wikibase/repo/tests/phpunit/includes/rdf/SnakRdfBuilderTest.php +++ b/extensions/Wikibase/repo/tests/phpunit/includes/rdf/SnakRdfBuilderTest.php @@ -2,7 +2,6 @@ namespace Wikibase\Test\Rdf; -use DataValues\DataValue; use DataValues\StringValue; use Wikibase\DataModel\Entity\EntityId; use Wikibase\DataModel\Entity\EntityIdValue; @@ -130,8 +129,7 @@ new PropertyId( 'P9' ), new StringValue( 'http://acme.com' ) ), - 'url', - array() + 'url' ), ); } diff --git a/extensions/Wikibase/repo/tests/phpunit/includes/rdf/ValueSnakRdfBuilderFactoryTest.php b/extensions/Wikibase/repo/tests/phpunit/includes/rdf/ValueSnakRdfBuilderFactoryTest.php index 676bac2..c55fc56 100644 --- a/extensions/Wikibase/repo/tests/phpunit/includes/rdf/ValueSnakRdfBuilderFactoryTest.php +++ b/extensions/Wikibase/repo/tests/phpunit/includes/rdf/ValueSnakRdfBuilderFactoryTest.php @@ -3,6 +3,8 @@ namespace Wikibase\Test\Rdf; use Closure; +use PHPUnit_Framework_Assert; +use PHPUnit_Framework_TestCase; use Wikibase\Rdf\ValueSnakRdfBuilderFactory; use Wikibase\Rdf\RdfVocabulary; use Wikibase\Rdf\NullEntityMentionListener; @@ -22,18 +24,22 @@ * @licence GNU GPL v2+ * @author Daniel Kinzler */ -class ValueSnakRdfBuilderFactoryTest extends \PHPUnit_Framework_TestCase { +class ValueSnakRdfBuilderFactoryTest extends PHPUnit_Framework_TestCase { public function testGetSimpleValueSnakRdfBuilder() { $vocab = new RdfVocabulary( RdfBuilderTestData::URI_BASE, RdfBuilderTestData::URI_DATA ); $writer = new NTriplesRdfWriter(); $tracker = new NullEntityMentionListener(); $dedupe = new NullDedupeBag(); + $called = false; - $constructor = $this->newRdfBuilderConstructorCallback( 'simple', $vocab, $writer, $tracker, $dedupe ); + $constructor = $this->newRdfBuilderConstructorCallback( + 'simple', $vocab, $writer, $tracker, $dedupe, $called + ); $factory = new ValueSnakRdfBuilderFactory( array( 'PT:test' => $constructor ) ); $factory->getSimpleValueSnakRdfBuilder( $vocab, $writer, $tracker, $dedupe ); + $this->assertTrue( $called ); } public function testGetComplexValueSnakRdfBuilder() { @@ -41,21 +47,26 @@ $writer = new NTriplesRdfWriter(); $tracker = new NullEntityMentionListener(); $dedupe = new NullDedupeBag(); + $called = false; - $constructor = $this->newRdfBuilderConstructorCallback( 'complex', $vocab, $writer, $tracker, $dedupe ); + $constructor = $this->newRdfBuilderConstructorCallback( + 'complex', $vocab, $writer, $tracker, $dedupe, $called + ); $factory = new ValueSnakRdfBuilderFactory( array( 'PT:test' => $constructor ) ); $factory->getComplexValueSnakRdfBuilder( $vocab, $writer, $tracker, $dedupe ); + $this->assertTrue( $called ); } /** * Constructs a closure that asserts that it is being called with the expected parameters. * - * @param $expectedMode + * @param string $expectedMode * @param RdfVocabulary $expectedVocab * @param RdfWriter $expectedWriter * @param EntityMentionListener $expectedTracker * @param DedupeBag $expectedDedupe + * @param bool &$called Will be set to true once the returned function has been called. * * @return Closure */ @@ -64,9 +75,10 @@ RdfVocabulary $expectedVocab, RdfWriter $expectedWriter, EntityMentionListener $expectedTracker, - DedupeBag $expectedDedupe + DedupeBag $expectedDedupe, + &$called ) { - $mockBuilder = $this->getMock( 'Wikibase\Rdf\ValueSnakRdfBuilder' ); + $valueSnakRdfBuilder = $this->getMock( 'Wikibase\Rdf\ValueSnakRdfBuilder' ); return function( $mode, @@ -74,21 +86,23 @@ RdfWriter $writer, EntityMentionListener $tracker, DedupeBag $dedupe - ) use( + ) use ( $expectedMode, $expectedVocab, $expectedWriter, $expectedTracker, $expectedDedupe, - $mockBuilder + $valueSnakRdfBuilder, + &$called ) { - \PHPUnit_Framework_Assert::assertSame( $expectedMode, $mode ); - \PHPUnit_Framework_Assert::assertSame( $expectedVocab, $vocab ); - \PHPUnit_Framework_Assert::assertSame( $expectedWriter, $writer ); - \PHPUnit_Framework_Assert::assertSame( $expectedTracker, $tracker ); - \PHPUnit_Framework_Assert::assertSame( $expectedDedupe, $dedupe ); + PHPUnit_Framework_Assert::assertSame( $expectedMode, $mode ); + PHPUnit_Framework_Assert::assertSame( $expectedVocab, $vocab ); + PHPUnit_Framework_Assert::assertSame( $expectedWriter, $writer ); + PHPUnit_Framework_Assert::assertSame( $expectedTracker, $tracker ); + PHPUnit_Framework_Assert::assertSame( $expectedDedupe, $dedupe ); + $called = true; - return $mockBuilder; + return $valueSnakRdfBuilder; }; } diff --git a/extensions/Wikibase/view/tests/phpunit/Template/TemplateFactoryTest.php b/extensions/Wikibase/view/tests/phpunit/Template/TemplateFactoryTest.php index 007a3f5..2bddaa4 100644 --- a/extensions/Wikibase/view/tests/phpunit/Template/TemplateFactoryTest.php +++ b/extensions/Wikibase/view/tests/phpunit/Template/TemplateFactoryTest.php @@ -40,9 +40,21 @@ $this->assertSame( '<PARAM>', $template->plain() ); } - public function testRender() { - $rendered = $this->newInstance()->render( 'basic', '<PARAM>' ); - $this->assertSame( '<PARAM>', $rendered ); + /** + * @dataProvider renderParamsProvider + */ + public function testRender( $params, $expected ) { + $rendered = $this->newInstance()->render( 'basic', $params ); + $this->assertSame( $expected, $rendered ); + } + + public function renderParamsProvider() { + return array( + array( '<PARAM>', '<PARAM>' ), + array( array(), '$1' ), + array( array( '<PARAM>' ), '<PARAM>' ), + array( array( '<PARAM>', 'ignored' ), '<PARAM>' ), + ); } } diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index f9ec0e5..7d8cae5 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -362,7 +362,7 @@ 'Wikibase\\Client\\ForbiddenSerializer' => $baseDir . '/extensions/Wikibase/client/includes/ForbiddenSerializer.php', 'Wikibase\\Client\\Hooks\\BaseTemplateAfterPortletHandler' => $baseDir . '/extensions/Wikibase/client/includes/Hooks/BaseTemplateAfterPortletHandler.php', 'Wikibase\\Client\\Hooks\\BeforePageDisplayHandler' => $baseDir . '/extensions/Wikibase/client/includes/Hooks/BeforePageDisplayHandler.php', - 'Wikibase\\Client\\Hooks\\ChangesPageWikibaseFilterHandler' => $baseDir . '/extensions/Wikibase/client/includes/Hooks/ChangesPageWikibaseFilterHandler.php', + 'Wikibase\\Client\\Hooks\\ChangesListSpecialPageFilterHandler' => $baseDir . '/extensions/Wikibase/client/includes/Hooks/ChangesListSpecialPageFilterHandler.php', 'Wikibase\\Client\\Hooks\\DataUpdateHookHandlers' => $baseDir . '/extensions/Wikibase/client/includes/Hooks/DataUpdateHookHandlers.php', 'Wikibase\\Client\\Hooks\\DeletePageNoticeCreator' => $baseDir . '/extensions/Wikibase/client/includes/Hooks/DeletePageNoticeCreator.php', 'Wikibase\\Client\\Hooks\\InfoActionHookHandler' => $baseDir . '/extensions/Wikibase/client/includes/Hooks/InfoActionHookHandler.php', @@ -429,7 +429,7 @@ 'Wikibase\\Client\\Tests\\DataAccess\\WikibaseDataAccessTestItemSetUpHelper' => $baseDir . '/extensions/Wikibase/client/tests/phpunit/includes/DataAccess/WikibaseDataAccessTestItemSetUpHelper.php', 'Wikibase\\Client\\Tests\\Hooks\\BaseTemplateAfterPortletHandlerTest' => $baseDir . '/extensions/Wikibase/client/tests/phpunit/includes/Hooks/BaseTemplateAfterPortalHandlerTest.php', 'Wikibase\\Client\\Tests\\Hooks\\BeforePageDisplayHandlerTest' => $baseDir . '/extensions/Wikibase/client/tests/phpunit/includes/Hooks/BeforePageDisplayHandlerTest.php', - 'Wikibase\\Client\\Tests\\Hooks\\ChangesPageWikibaseFilterHandlerTest' => $baseDir . '/extensions/Wikibase/client/tests/phpunit/includes/Hooks/ChangesPageWikibaseFilterHandlerTest.php', + 'Wikibase\\Client\\Tests\\Hooks\\ChangesListSpecialPageFilterHandlerTest' => $baseDir . '/extensions/Wikibase/client/tests/phpunit/includes/Hooks/ChangesListSpecialPageFilterHandlerTest.php', 'Wikibase\\Client\\Tests\\Hooks\\DataUpdateHookHandlersTest' => $baseDir . '/extensions/Wikibase/client/tests/phpunit/includes/Hooks/DataUpdateHookHandlersTest.php', 'Wikibase\\Client\\Tests\\Hooks\\DeletePageNoticeCreatorTest' => $baseDir . '/extensions/Wikibase/client/tests/phpunit/includes/Hooks/DeletePageNoticeCreatorTest.php', 'Wikibase\\Client\\Tests\\Hooks\\InfoActionHookHandlerTest' => $baseDir . '/extensions/Wikibase/client/tests/phpunit/includes/Hooks/InfoActionHookHandlerTest.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index be152b4..794866f 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1236,12 +1236,12 @@ "source": { "type": "git", "url": "https://github.com/wikimedia/mediawiki-extensions-Wikibase.git", - "reference": "5b65eea44d1f9867b81b2a3315dc1a98a17e0b6a" + "reference": "0632d215a0a00011ac66ea5f088afd1616fdb76c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/5b65eea44d1f9867b81b2a3315dc1a98a17e0b6a", - "reference": "5b65eea44d1f9867b81b2a3315dc1a98a17e0b6a", + "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/0632d215a0a00011ac66ea5f088afd1616fdb76c", + "reference": "0632d215a0a00011ac66ea5f088afd1616fdb76c", "shasum": "" }, "require": { @@ -1273,7 +1273,7 @@ "jakub-onderka/php-parallel-lint": "0.9", "mediawiki/mediawiki-codesniffer": "0.4.0|0.5.0" }, - "time": "2015-11-11 20:57:57", + "time": "2015-11-13 09:50:08", "type": "mediawiki-extension", "installation-source": "dist", "autoload": { @@ -1567,7 +1567,7 @@ "source": { "type": "git", "url": "https://gerrit.wikimedia.org/r/mediawiki/extensions/WikibaseQualityConstraints", - "reference": "b2dfdbb94f394964493b6d5bfa65fc93e03b6d97" + "reference": "7a4a4f71ff982edea41e74db87421bfba2ae6745" }, "require": { "php": ">=5.3.0", @@ -1579,7 +1579,7 @@ "phpunit/phpunit": "^3.7.37|~4.5", "satooshi/php-coveralls": "master-dev" }, - "time": "2015-10-23 19:47:04", + "time": "2015-11-11 20:37:51", "type": "mediawiki-extension", "installation-source": "source", "autoload": { -- To view, visit https://gerrit.wikimedia.org/r/252903 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I41f2a5be414dd02ad44e0be5cb9ad21a281e7e04 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikidata Gerrit-Branch: master Gerrit-Owner: WikidataBuilder <wikidata-servi...@wikimedia.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits