WikidataBuilder has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/332033 )
Change subject: New Wikidata Build - 2017-01-14T10:00:01+0000 ...................................................................... New Wikidata Build - 2017-01-14T10:00:01+0000 Change-Id: I4b7436067c353a850b201df24c79f465080da03a --- M composer.lock M extensions/Wikibase/client/includes/Hooks/DataUpdateHookHandlers.php M extensions/Wikibase/client/includes/Hooks/NoLangLinkHandler.php M extensions/Wikibase/client/includes/Hooks/ParserOutputUpdateHookHandlers.php M extensions/Wikibase/repo/Wikibase.php M extensions/Wikibase/repo/includes/ClaimSummaryBuilder.php M extensions/Wikibase/repo/includes/Content/ItemContent.php M extensions/Wikibase/repo/includes/Content/PropertyContent.php M extensions/Wikibase/repo/includes/Hooks/LabelPrefetchHookHandlers.php M extensions/Wikibase/repo/includes/Specials/SpecialSetSiteLink.php M extensions/Wikibase/repo/tests/phpunit/includes/Specials/SpecialSetSiteLinkTest.php M extensions/Wikibase/repo/tests/phpunit/includes/ValueParserFactoryTest.php M vendor/composer/installed.json 13 files changed, 153 insertions(+), 69 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikidata refs/changes/33/332033/1 diff --git a/composer.lock b/composer.lock index cb78ea3..72b8c61 100644 --- a/composer.lock +++ b/composer.lock @@ -1606,12 +1606,12 @@ "source": { "type": "git", "url": "https://github.com/wikimedia/mediawiki-extensions-Wikibase.git", - "reference": "1b3dcf8d1315722793a0354e00e636dcad2b6a4c" + "reference": "97b8f7fc8d7391ac4b6df0eb25faea0fe7fdd008" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/1b3dcf8d1315722793a0354e00e636dcad2b6a4c", - "reference": "1b3dcf8d1315722793a0354e00e636dcad2b6a4c", + "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/97b8f7fc8d7391ac4b6df0eb25faea0fe7fdd008", + "reference": "97b8f7fc8d7391ac4b6df0eb25faea0fe7fdd008", "shasum": "" }, "require": { @@ -1686,7 +1686,7 @@ "wikibaserepo", "wikidata" ], - "time": "2017-01-12 14:42:28" + "time": "2017-01-13 17:12:25" }, { "name": "wikibase/wikimedia-badges", diff --git a/extensions/Wikibase/client/includes/Hooks/DataUpdateHookHandlers.php b/extensions/Wikibase/client/includes/Hooks/DataUpdateHookHandlers.php index 32f348a..28196c4 100644 --- a/extensions/Wikibase/client/includes/Hooks/DataUpdateHookHandlers.php +++ b/extensions/Wikibase/client/includes/Hooks/DataUpdateHookHandlers.php @@ -44,8 +44,11 @@ */ private $jobScheduler; + /** + * @return self + */ public static function newFromGlobalState() { - return new DataUpdateHookHandlers( + return new self( WikibaseClient::getDefaultInstance()->getStore()->getUsageUpdater(), JobQueueGroup::singleton() ); diff --git a/extensions/Wikibase/client/includes/Hooks/NoLangLinkHandler.php b/extensions/Wikibase/client/includes/Hooks/NoLangLinkHandler.php index 4803a49..1de6693 100644 --- a/extensions/Wikibase/client/includes/Hooks/NoLangLinkHandler.php +++ b/extensions/Wikibase/client/includes/Hooks/NoLangLinkHandler.php @@ -43,6 +43,9 @@ $handler->doHandle( $parser, $langs ); } + /** + * @return self + */ private static function newFromGlobalState() { $wikibaseClient = WikibaseClient::getDefaultInstance(); $settings = $wikibaseClient->getSettings(); @@ -52,7 +55,7 @@ $settings->getSetting( 'namespaces' ) ); - return new NoLangLinkHandler( $namespaceChecker ); + return new self( $namespaceChecker ); } public function __construct( NamespaceChecker $namespaceChecker ) { diff --git a/extensions/Wikibase/client/includes/Hooks/ParserOutputUpdateHookHandlers.php b/extensions/Wikibase/client/includes/Hooks/ParserOutputUpdateHookHandlers.php index 0620588..ddaeea5 100644 --- a/extensions/Wikibase/client/includes/Hooks/ParserOutputUpdateHookHandlers.php +++ b/extensions/Wikibase/client/includes/Hooks/ParserOutputUpdateHookHandlers.php @@ -37,13 +37,16 @@ */ private $parserOutputDataUpdater; + /** + * @return self + */ public static function newFromGlobalState() { global $wgLang; StubUserLang::unstub( $wgLang ); $wikibaseClient = WikibaseClient::getDefaultInstance(); - return new ParserOutputUpdateHookHandlers( + return new self( $wikibaseClient->getNamespaceChecker(), $wikibaseClient->getLangLinkHandler(), $wikibaseClient->getParserOutputDataUpdater() diff --git a/extensions/Wikibase/repo/Wikibase.php b/extensions/Wikibase/repo/Wikibase.php index 47039a3..a056e5d 100644 --- a/extensions/Wikibase/repo/Wikibase.php +++ b/extensions/Wikibase/repo/Wikibase.php @@ -274,7 +274,27 @@ $wgSpecialPages['SetAliases'] = Wikibase\Repo\Specials\SpecialSetAliases::class; $wgSpecialPages['SetLabelDescriptionAliases'] = Wikibase\Repo\Specials\SpecialSetLabelDescriptionAliases::class; - $wgSpecialPages['SetSiteLink'] = Wikibase\Repo\Specials\SpecialSetSiteLink::class; + $wgSpecialPages['SetSiteLink'] = function() { + $wikibaseRepo = \Wikibase\Repo\WikibaseRepo::getDefaultInstance(); + $siteLookup = $wikibaseRepo->getSiteLookup(); + $settings = $wikibaseRepo->getSettings(); + + $siteLinkChangeOpFactory = $wikibaseRepo->getChangeOpFactoryProvider()->getSiteLinkChangeOpFactory(); + $siteLinkTargetProvider = new \Wikibase\Repo\SiteLinkTargetProvider( + $siteLookup, + $settings->getSetting( 'specialSiteLinkGroups' ) + ); + + $labelDescriptionLookupFactory = $wikibaseRepo->getLanguageFallbackLabelDescriptionLookupFactory(); + return new Wikibase\Repo\Specials\SpecialSetSiteLink( + $siteLookup, + $siteLinkTargetProvider, + $settings->getSetting( 'siteLinkGroups' ), + $settings->getSetting( 'badgeItems' ), + $labelDescriptionLookupFactory, + $siteLinkChangeOpFactory + ); + }; $wgSpecialPages['EntitiesWithoutLabel'] = array( Wikibase\Repo\Specials\SpecialEntitiesWithoutPageFactory::class, 'newSpecialEntitiesWithoutLabel' diff --git a/extensions/Wikibase/repo/includes/ClaimSummaryBuilder.php b/extensions/Wikibase/repo/includes/ClaimSummaryBuilder.php index 40388c0..0badd77 100644 --- a/extensions/Wikibase/repo/includes/ClaimSummaryBuilder.php +++ b/extensions/Wikibase/repo/includes/ClaimSummaryBuilder.php @@ -28,8 +28,6 @@ private $claimDiffer; /** - * Constructs a new ClaimSummaryBuilder - * * @since 0.4 * * @param string $apiModuleName diff --git a/extensions/Wikibase/repo/includes/Content/ItemContent.php b/extensions/Wikibase/repo/includes/Content/ItemContent.php index 4a046f3..366fbe8 100644 --- a/extensions/Wikibase/repo/includes/Content/ItemContent.php +++ b/extensions/Wikibase/repo/includes/Content/ItemContent.php @@ -153,8 +153,6 @@ } /** - * Returns a new empty ItemContent. - * * @return self */ public static function newEmpty() { diff --git a/extensions/Wikibase/repo/includes/Content/PropertyContent.php b/extensions/Wikibase/repo/includes/Content/PropertyContent.php index 59e2ea2..2bfaece 100644 --- a/extensions/Wikibase/repo/includes/Content/PropertyContent.php +++ b/extensions/Wikibase/repo/includes/Content/PropertyContent.php @@ -66,8 +66,6 @@ } /** - * Returns a new empty PropertyContent. - * * @return self */ public static function newEmpty() { diff --git a/extensions/Wikibase/repo/includes/Hooks/LabelPrefetchHookHandlers.php b/extensions/Wikibase/repo/includes/Hooks/LabelPrefetchHookHandlers.php index 12fd0e4..fdce841 100644 --- a/extensions/Wikibase/repo/includes/Hooks/LabelPrefetchHookHandlers.php +++ b/extensions/Wikibase/repo/includes/Hooks/LabelPrefetchHookHandlers.php @@ -53,7 +53,7 @@ private $languageCodes; /** - * @return null|LabelPrefetchHookHandlers + * @return self|null */ private static function newFromGlobalState() { $wikibaseRepo = WikibaseRepo::getDefaultInstance(); @@ -70,7 +70,7 @@ $languageFallbackChainFactory = $wikibaseRepo->getLanguageFallbackChainFactory(); $languageFallbackChain = $languageFallbackChainFactory->newFromContext( $context ); - return new LabelPrefetchHookHandlers( + return new self( $termBuffer, $wikibaseRepo->getEntityIdLookup(), new TitleFactory(), diff --git a/extensions/Wikibase/repo/includes/Specials/SpecialSetSiteLink.php b/extensions/Wikibase/repo/includes/Specials/SpecialSetSiteLink.php index 4c6d853..7b5dc32 100644 --- a/extensions/Wikibase/repo/includes/Specials/SpecialSetSiteLink.php +++ b/extensions/Wikibase/repo/includes/Specials/SpecialSetSiteLink.php @@ -14,7 +14,6 @@ use Wikibase\DataModel\Entity\ItemId; use Wikibase\Lib\Store\LanguageFallbackLabelDescriptionLookupFactory; use Wikibase\Repo\SiteLinkTargetProvider; -use Wikibase\Repo\WikibaseRepo; use Wikibase\Summary; /** @@ -26,6 +25,36 @@ * @author Bene* < benestar.wikime...@googlemail.com > */ class SpecialSetSiteLink extends SpecialModifyEntity { + + /** + * @var SiteLookup + */ + private $siteLookup; + + /** + * @var SiteLinkTargetProvider + */ + private $siteLinkTargetProvider; + + /** + * @var string[] + */ + private $siteLinkGroups; + + /** + * @var string[] + */ + private $badgeItems; + + /** + * @var LanguageFallbackLabelDescriptionLookupFactory + */ + private $labelDescriptionLookupFactory; + + /** + * @var SiteLinkChangeOpFactory + */ + private $siteLinkChangeOpFactory; /** * The site of the site link. @@ -49,56 +78,29 @@ private $badges; /** - * @var string[] + * @param SiteLookup $siteLookup + * @param SiteLinkTargetProvider $siteLinkTargetProvider + * @param string[] $siteLinkGroups + * @param string[] $badgeItems + * @param LanguageFallbackLabelDescriptionLookupFactory $labelDescriptionLookupFactory + * @param SiteLinkChangeOpFactory $siteLinkChangeOpFactory */ - private $badgeItems; - - /** - * @var string[] - */ - private $siteLinkGroups; - - /** - * @var SiteLinkChangeOpFactory - */ - private $siteLinkChangeOpFactory; - - /** - * @var SiteLinkTargetProvider - */ - private $siteLinkTargetProvider; - - /** - * @var LanguageFallbackLabelDescriptionLookupFactory - */ - private $labelDescriptionLookupFactory; - - /** - * @var SiteLookup - */ - private $siteLookup; - - /** - * @since 0.4 - */ - public function __construct() { + public function __construct( + SiteLookup $siteLookup, + SiteLinkTargetProvider $siteLinkTargetProvider, + array $siteLinkGroups, + array $badgeItems, + LanguageFallbackLabelDescriptionLookupFactory $labelDescriptionLookupFactory, + SiteLinkChangeOpFactory $siteLinkChangeOpFactory + ) { parent::__construct( 'SetSiteLink' ); - $wikibaseRepo = WikibaseRepo::getDefaultInstance(); - $settings = $wikibaseRepo->getSettings(); - - $this->siteLookup = $wikibaseRepo->getSiteLookup(); - - $this->badgeItems = $settings->getSetting( 'badgeItems' ); - $this->siteLinkGroups = $settings->getSetting( 'siteLinkGroups' ); - - $this->siteLinkChangeOpFactory = $wikibaseRepo->getChangeOpFactoryProvider()->getSiteLinkChangeOpFactory(); - $this->siteLinkTargetProvider = new SiteLinkTargetProvider( - $this->siteLookup, - $settings->getSetting( 'specialSiteLinkGroups' ) - ); - - $this->labelDescriptionLookupFactory = $wikibaseRepo->getLanguageFallbackLabelDescriptionLookupFactory(); + $this->siteLookup = $siteLookup; + $this->siteLinkTargetProvider = $siteLinkTargetProvider; + $this->siteLinkGroups = $siteLinkGroups; + $this->badgeItems = $badgeItems; + $this->labelDescriptionLookupFactory = $labelDescriptionLookupFactory; + $this->siteLinkChangeOpFactory = $siteLinkChangeOpFactory; } public function doesWrites() { diff --git a/extensions/Wikibase/repo/tests/phpunit/includes/Specials/SpecialSetSiteLinkTest.php b/extensions/Wikibase/repo/tests/phpunit/includes/Specials/SpecialSetSiteLinkTest.php index 7538e6d..ce938d9 100644 --- a/extensions/Wikibase/repo/tests/phpunit/includes/Specials/SpecialSetSiteLinkTest.php +++ b/extensions/Wikibase/repo/tests/phpunit/includes/Specials/SpecialSetSiteLinkTest.php @@ -10,6 +10,7 @@ use Wikibase\DataModel\Entity\EntityRedirect; use Wikibase\DataModel\Entity\Item; use Wikibase\DataModel\Entity\ItemId; +use Wikibase\Repo\SiteLinkTargetProvider; use Wikibase\Repo\Specials\SpecialSetSiteLink; use Wikibase\Repo\WikibaseRepo; @@ -88,7 +89,25 @@ private static $oldBadgeItemsSetting; protected function newSpecialPage() { - return new SpecialSetSiteLink(); + $wikibaseRepo = WikibaseRepo::getDefaultInstance(); + $siteLookup = $wikibaseRepo->getSiteLookup(); + $settings = $wikibaseRepo->getSettings(); + + $siteLinkChangeOpFactory = $wikibaseRepo->getChangeOpFactoryProvider()->getSiteLinkChangeOpFactory(); + $siteLinkTargetProvider = new SiteLinkTargetProvider( + $siteLookup, + $settings->getSetting( 'specialSiteLinkGroups' ) + ); + + $labelDescriptionLookupFactory = $wikibaseRepo->getLanguageFallbackLabelDescriptionLookupFactory(); + return new SpecialSetSiteLink( + $siteLookup, + $siteLinkTargetProvider, + $settings->getSetting( 'siteLinkGroups' ), + $settings->getSetting( 'badgeItems' ), + $labelDescriptionLookupFactory, + $siteLinkChangeOpFactory + ); } protected function setUp() { diff --git a/extensions/Wikibase/repo/tests/phpunit/includes/ValueParserFactoryTest.php b/extensions/Wikibase/repo/tests/phpunit/includes/ValueParserFactoryTest.php index a9e096e..e0f4730 100644 --- a/extensions/Wikibase/repo/tests/phpunit/includes/ValueParserFactoryTest.php +++ b/extensions/Wikibase/repo/tests/phpunit/includes/ValueParserFactoryTest.php @@ -2,6 +2,9 @@ namespace Wikibase\Repo\Tests; +use InvalidArgumentException; +use LogicException; +use OutOfBoundsException; use ValueParsers\NullParser; use ValueParsers\ParserOptions; use ValueParsers\ValueParser; @@ -14,10 +17,47 @@ * * @license GPL-2.0+ * @author Adrian Heine <adrian.he...@wikimedia.de> + * @author Thiemo Mättig */ class ValueParserFactoryTest extends \PHPUnit_Framework_TestCase { /** + * @dataProvider provideInvalidConstructorArgument + */ + public function testInvalidConstructorArgument( array $valueParsers ) { + $this->setExpectedException( InvalidArgumentException::class ); + new ValueParserFactory( $valueParsers ); + } + + public function provideInvalidConstructorArgument() { + return [ + 'value is not a callable' => [ [ + 'id' => 'not a callable', + ] ], + 'id is not a string' => [ [ + function () { + }, + ] ], + ]; + } + + public function testNewParser_withUnknownParserId() { + $factory = new ValueParserFactory( [] ); + + $this->setExpectedException( OutOfBoundsException::class ); + $factory->newParser( 'unknown', new ParserOptions() ); + } + + public function testNewParser_withInvalidReturnValue() { + $factory = new ValueParserFactory( [ 'id' => function () { + return 'invalid'; + } ] ); + + $this->setExpectedException( LogicException::class ); + $factory->newParser( 'id', new ParserOptions() ); + } + + /** * @dataProvider provideFactoryFunctions */ public function testGetParserIds( $factoryFunctions ) { diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index e04d415..2075814 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1409,12 +1409,12 @@ "source": { "type": "git", "url": "https://github.com/wikimedia/mediawiki-extensions-Wikibase.git", - "reference": "1b3dcf8d1315722793a0354e00e636dcad2b6a4c" + "reference": "97b8f7fc8d7391ac4b6df0eb25faea0fe7fdd008" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/1b3dcf8d1315722793a0354e00e636dcad2b6a4c", - "reference": "1b3dcf8d1315722793a0354e00e636dcad2b6a4c", + "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/97b8f7fc8d7391ac4b6df0eb25faea0fe7fdd008", + "reference": "97b8f7fc8d7391ac4b6df0eb25faea0fe7fdd008", "shasum": "" }, "require": { @@ -1447,7 +1447,7 @@ "jakub-onderka/php-parallel-lint": "0.9.2", "mediawiki/mediawiki-codesniffer": "0.4.0|0.5.0" }, - "time": "2017-01-12 14:42:28", + "time": "2017-01-13 17:12:25", "type": "mediawiki-extension", "installation-source": "dist", "autoload": { -- To view, visit https://gerrit.wikimedia.org/r/332033 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I4b7436067c353a850b201df24c79f465080da03a 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