jenkins-bot has submitted this change and it was merged.
Change subject: Rework and simplify WikibaseRepo tests
......................................................................
Rework and simplify WikibaseRepo tests
* Inlined trivial closures.
* Dropped more unused code from EditEntityTest.
* Made stuff non-"static" if possible.
* Made stuff "private" if possible.
* Renamed odd "$this_" to "$self", similar to JavaScript.
* Renamed some other misleading variables.
* Fixed indention.
In PS1 I tried to use willReturn() and willReturnCallback() but didn't
realized I used a version of PHPUnit that's "to new". I reverted these
changes.
Change-Id: Id990caf8193f8b7b11dccac5715c8d3fbbbf50fa
---
M repo/tests/phpunit/includes/ChangeOp/ChangeOpTestMockProvider.php
M repo/tests/phpunit/includes/Dumpers/JsonDumpGeneratorTest.php
M repo/tests/phpunit/includes/EditEntityTest.php
M repo/tests/phpunit/includes/EntityParserOutputGeneratorTest.php
M repo/tests/phpunit/includes/ParserOutputJsConfigBuilderTest.php
M repo/tests/phpunit/includes/UpdateRepo/UpdateRepoOnMoveJobTest.php
M repo/tests/phpunit/includes/View/ClaimHtmlGeneratorTest.php
M repo/tests/phpunit/includes/View/ClaimsViewTest.php
M repo/tests/phpunit/includes/View/SiteLinksViewTest.php
M repo/tests/phpunit/includes/View/SnakHtmlGeneratorTest.php
M repo/tests/phpunit/includes/rdf/RdfBuilderTest.php
M repo/tests/phpunit/includes/rdf/RdfSerializerTest.php
M repo/tests/phpunit/includes/specials/SpecialGoToLinkedPageTest.php
M repo/tests/phpunit/includes/specials/SpecialItemByTitleTest.php
M repo/tests/phpunit/includes/specials/SpecialMergeItemsTest.php
M repo/tests/phpunit/includes/store/sql/DispatchStatsTest.php
16 files changed, 230 insertions(+), 263 deletions(-)
Approvals:
Aude: Looks good to me, approved
jenkins-bot: Verified
diff --git a/repo/tests/phpunit/includes/ChangeOp/ChangeOpTestMockProvider.php
b/repo/tests/phpunit/includes/ChangeOp/ChangeOpTestMockProvider.php
index f17ec61..aaba7e1 100644
--- a/repo/tests/phpunit/includes/ChangeOp/ChangeOpTestMockProvider.php
+++ b/repo/tests/phpunit/includes/ChangeOp/ChangeOpTestMockProvider.php
@@ -193,7 +193,7 @@
->getMock();
$mock->expects( PHPUnit_Framework_TestCase::any() )
->method( 'getType' )
- ->will( PHPUnit_Framework_TestCase::returnCallback(
function ( $id ) use ( $types ) {
+ ->will( PHPUnit_Framework_TestCase::returnCallback(
function( $id ) use ( $types ) {
if ( !isset( $types[$id] ) ) {
throw new OutOfBoundsException( "No
such type: $id" );
}
@@ -363,11 +363,9 @@
}
if ( $returnValue instanceof Result ) {
- $detectLabelConflictsForEntity = function() use (
$returnValue ) {
+ $detectTermConflicts = function() use ( $returnValue ) {
return $returnValue;
};
-
- $detectTermConflicts = $detectLabelConflictsForEntity;
} else {
$detectTermConflicts = array( $this,
'detectTermConflicts' );
}
diff --git a/repo/tests/phpunit/includes/Dumpers/JsonDumpGeneratorTest.php
b/repo/tests/phpunit/includes/Dumpers/JsonDumpGeneratorTest.php
index 507a4e2..9a98266 100644
--- a/repo/tests/phpunit/includes/Dumpers/JsonDumpGeneratorTest.php
+++ b/repo/tests/phpunit/includes/Dumpers/JsonDumpGeneratorTest.php
@@ -103,18 +103,17 @@
$entityLookup = $this->getMock(
'Wikibase\Lib\Store\EntityLookup' );
$entityLookup->expects( $this->any() )
->method( 'getEntity' )
- ->will( $this->returnCallback( function ( EntityId $id
) use ( $entities, $missingIds, $redirectedIds ) {
- if ( in_array( $id, $missingIds ) ) {
- return null;
- }
- if ( in_array( $id, $redirectedIds ) ) {
- throw new
UnresolvedRedirectException( new ItemId( 'Q123' ) );
- }
-
- $key = $id->getSerialization();
- return $entities[$key];
+ ->will( $this->returnCallback( function( EntityId $id )
use ( $entities, $missingIds, $redirectedIds ) {
+ if ( in_array( $id, $missingIds ) ) {
+ return null;
}
- ) );
+ if ( in_array( $id, $redirectedIds ) ) {
+ throw new UnresolvedRedirectException(
new ItemId( 'Q123' ) );
+ }
+
+ $key = $id->getSerialization();
+ return $entities[$key];
+ } ) );
return new JsonDumpGenerator( $out, $entityLookup, $serializer
);
}
@@ -155,17 +154,14 @@
protected function makeIdPager( array $ids, $entityType = null ) {
$pager = $this->getMock( 'Wikibase\Repo\Store\EntityIdPager' );
- $this_ = $this;
+ $self = $this;
$offset = 0;
$pager->expects( $this->any() )
->method( 'fetchIds' )
- ->will( $this->returnCallback(
- function ( $limit ) use ( $ids, $entityType,
&$offset, $this_ ) {
- $res = $this_->listEntities( $ids,
$entityType, $limit, $offset );
- return $res;
- }
- ) );
+ ->will( $this->returnCallback( function( $limit ) use (
$ids, $entityType, &$offset, $self ) {
+ return $self->listEntities( $ids, $entityType,
$limit, $offset );
+ } ) );
return $pager;
}
@@ -212,10 +208,9 @@
$entityLookup = $this->getMock(
'Wikibase\Lib\Store\EntityLookup' );
$entityLookup->expects( $this->any() )
->method( 'getEntity' )
- ->will( $this->returnCallback( function ( EntityId $id
) {
- throw new
MWContentSerializationException( 'cannot deserialize!' );
- }
- ) );
+ ->will( $this->returnCallback( function( EntityId $id )
{
+ throw new MWContentSerializationException(
'cannot deserialize!' );
+ } ) );
return $entityLookup;
}
@@ -518,4 +513,5 @@
$this->assertSame( 9, count( json_decode( $json ) ),
'Redirected Item Q9 not in dump' );
}
+
}
diff --git a/repo/tests/phpunit/includes/EditEntityTest.php
b/repo/tests/phpunit/includes/EditEntityTest.php
index 3f09ac0..770123d 100644
--- a/repo/tests/phpunit/includes/EditEntityTest.php
+++ b/repo/tests/phpunit/includes/EditEntityTest.php
@@ -17,7 +17,6 @@
use Wikibase\EditEntity;
use Wikibase\Lib\Store\EntityRevisionLookup;
use Wikibase\Lib\Store\EntityTitleLookup;
-use Wikibase\Repo\Content\EntityContentFactory;
use Wikibase\Repo\Store\EntityPermissionChecker;
use Wikibase\Repo\WikibaseRepo;
@@ -36,10 +35,7 @@
*/
class EditEntityTest extends \MediaWikiTestCase {
- protected $permissions;
- protected $userGroups;
-
- protected static function getUser( $name ) {
+ private function getUser( $name ) {
$user = User::newFromName( $name );
if ( $user->getId() === 0 ) {
@@ -49,34 +45,20 @@
return $user;
}
- protected function setUp() {
- global $wgGroupPermissions;
-
- parent::setUp();
-
- $this->permissions = $wgGroupPermissions;
- $this->userGroups = array( 'user' );
- }
-
- protected function tearDown() {
- global $wgGroupPermissions;
-
- $wgGroupPermissions = $this->permissions;
-
- parent::tearDown();
- }
-
/**
* @return EntityTitleLookup
*/
- protected function newTitleLookupMock() {
+ private function getEntityTitleLookup() {
$titleLookup = $this->getMock(
'Wikibase\Lib\Store\EntityTitleLookup' );
$titleLookup->expects( $this->any() )
->method( 'getTitleForID' )
- ->will( $this->returnCallback( function ( EntityId $id
) {
- return Title::makeTitle( NS_MAIN,
$id->getEntityType() . '/' . $id->getSerialization() );
- }));
+ ->will( $this->returnCallback( function( EntityId $id )
{
+ return Title::makeTitle(
+ NS_MAIN,
+ $id->getEntityType() . '/' .
$id->getSerialization()
+ );
+ } ) );
$titleLookup->expects( $this->any() )
->method( 'getNamespaceForType' )
@@ -90,13 +72,13 @@
*
* @return EntityPermissionChecker
*/
- protected function newEntityPermissionCheckerMock( $permissions ) {
+ private function getEntityPermissionChecker( $permissions ) {
$permissionChecker = $this->getMock(
'Wikibase\Repo\Store\EntityPermissionChecker' );
- $checkAction = function ( $user, $action ) use( $permissions ) {
- if ( $permissions === null ) {
- return Status::newGood( true );
- } elseif ( isset( $permissions[$action] ) &&
$permissions[$action] ) {
+ $checkAction = function( $user, $action ) use ( $permissions ) {
+ if ( $permissions === null
+ || ( isset( $permissions[$action] ) &&
$permissions[$action] )
+ ) {
return Status::newGood( true );
} else {
return Status::newFatal( 'badaccess-group0' );
@@ -119,7 +101,7 @@
}
/**
- * @param MockRepository $repo
+ * @param MockRepository $mockRepository
* @param Entity $entity
* @param EntityTitleLookup $titleLookup
* @param User|null $user
@@ -129,8 +111,13 @@
*
* @return EditEntity
*/
- protected function makeEditEntity( MockRepository $repo, Entity $entity,
- EntityTitleLookup $titleLookup, User $user = null, $baseRevId =
false, $permissions = null
+ private function makeEditEntity(
+ MockRepository $mockRepository,
+ Entity $entity,
+ EntityTitleLookup $titleLookup,
+ User $user = null,
+ $baseRevId = false,
+ $permissions = null
) {
$context = new RequestContext();
$context->setRequest( new FauxRequest() );
@@ -139,21 +126,28 @@
$user = User::newFromName( 'EditEntityTestUser' );
}
- $permissionChecker = $this->newEntityPermissionCheckerMock(
$permissions );
+ $permissionChecker = $this->getEntityPermissionChecker(
$permissions );
- $edit = new EditEntity( $titleLookup, $repo, $repo,
$permissionChecker, $entity, $user, $baseRevId, $context );
-
- return $edit;
+ return new EditEntity(
+ $titleLookup,
+ $mockRepository,
+ $mockRepository,
+ $permissionChecker,
+ $entity,
+ $user,
+ $baseRevId,
+ $context
+ );
}
/**
* @return MockRepository
*/
- protected function makeMockRepo() {
+ private function getMockRepository() {
$repo = new MockRepository();
- $user = self::getUser( 'EditEntityTestUser1' );
- $otherUser = self::getUser( 'EditEntityTestUser2' );
+ $user = $this->getUser( 'EditEntityTestUser1' );
+ $otherUser = $this->getUser( 'EditEntityTestUser2' );
/* @var Item $item */
$item = Item::newEmpty();
@@ -258,15 +252,21 @@
/**
* @dataProvider provideHasEditConflict
*/
- public function testHasEditConflict( $inputData, $baseRevisionId,
$expectedConflict, $expectedFix, array $expectedData = null ) {
- $repo = $this->makeMockRepo();
+ public function testHasEditConflict(
+ array $inputData = null,
+ $baseRevisionId,
+ $expectedConflict,
+ $expectedFix,
+ array $expectedData = null
+ ) {
+ $repo = $this->getMockRepository();
$entityId = new ItemId( 'Q17' );
$revision = $repo->getEntityRevision( $entityId,
$baseRevisionId );
$entity = $revision->getEntity( $entityId );
// NOTE: the user name must be the one used in makeMockRepo()
- $user = self::getUser( 'EditEntityTestUser1' );
+ $user = $this->getUser( 'EditEntityTestUser1' );
// change entity ----------------------------------
if ( $inputData === null ) {
@@ -292,7 +292,7 @@
}
// save entity ----------------------------------
- $titleLookup = $this->newTitleLookupMock();
+ $titleLookup = $this->getEntityTitleLookup();
$editEntity = $this->makeEditEntity( $repo, $entity,
$titleLookup, $user, $baseRevisionId );
$conflict = $editEntity->hasEditConflict();
@@ -338,7 +338,7 @@
$item = Item::newEmpty();
$item->setLabel( 'en', 'omg' );
- $editEntity = $this->makeEditEntity( $this->makeMockRepo(),
$item, $titleLookup );
+ $editEntity = $this->makeEditEntity(
$this->getMockRepository(), $item, $titleLookup );
$editEntity->attemptSave( "Testing", EDIT_NEW, false );
}
@@ -360,9 +360,9 @@
* @dataProvider provideAttemptSaveWithLateConflict
*/
public function testAttemptSaveWithLateConflict( $baseRevId,
$expectedConflict ) {
- $repo = $this->makeMockRepo();
+ $repo = $this->getMockRepository();
- $user = self::getUser( 'EditEntityTestUser' );
+ $user = $this->getUser( 'EditEntityTestUser' );
// create item
$entity = Item::newEmpty();
@@ -374,7 +374,7 @@
$entity = $entity->copy();
$entity->getFingerprint()->setLabel( 'en', 'Trust' );
- $titleLookup = $this->newTitleLookupMock();
+ $titleLookup = $this->getEntityTitleLookup();
$editEntity = $this->makeEditEntity( $repo, $entity,
$titleLookup, $user, $baseRevId );
$editEntity->getLatestRevision(); // make sure EditEntity has
page and revision
@@ -382,7 +382,7 @@
// create independent Entity instance for the same entity, and
modify and save it
$entity2 = $entity->copy();
- $user2 = self::getUser( "EditEntityTestUser2" );
+ $user2 = $this->getUser( 'EditEntityTestUser2' );
$entity2->setLabel( 'en', 'Toast' );
$repo->putEntity( $entity2, 0, 0, $user2 );
@@ -413,17 +413,17 @@
}
public function testErrorPage_DoesNotDoubleEscapeHtmlCharacters() {
- $repo = $this->makeMockRepo();
+ $repo = $this->getMockRepository();
$permissions = array();
$context = new RequestContext();
// Can not reuse makeEditEntity because we need the access the
context
$editEntity = new EditEntity(
- $this->newTitleLookupMock(),
+ $this->getEntityTitleLookup(),
$repo,
$repo,
- $this->newEntityPermissionCheckerMock( $permissions ),
+ $this->getEntityPermissionChecker( $permissions ),
Item::newEmpty(),
- self::getUser( 'EditEntityTestUser' ),
+ $this->getUser( 'EditEntityTestUser' ),
false,
$context
);
@@ -451,12 +451,12 @@
);
}
- protected function prepareItemForPermissionCheck( User $user,
MockRepository $repo, $create ) {
+ private function prepareItemForPermissionCheck( User $user,
MockRepository $mockRepository, $create ) {
$item = Item::newEmpty();
if ( $create ) {
$item->setLabel( 'de', 'Test' );
- $repo->putEntity( $item, 0, 0, $user );
+ $mockRepository->putEntity( $item, 0, 0, $user );
}
return $item;
@@ -466,12 +466,12 @@
* @dataProvider dataCheckEditPermissions
*/
public function testCheckEditPermissions( $permissions, $create,
$expectedOK ) {
- $repo = $this->makeMockRepo();
+ $repo = $this->getMockRepository();
- $user = self::getUser( "EditEntityTestUser" );
+ $user = $this->getUser( 'EditEntityTestUser' );
$item = $this->prepareItemForPermissionCheck( $user, $repo,
$create );
- $titleLookup = $this->newTitleLookupMock();
+ $titleLookup = $this->getEntityTitleLookup();
$edit = $this->makeEditEntity( $repo, $item, $titleLookup,
$user, false, $permissions );
$edit->checkEditPermissions();
@@ -483,10 +483,10 @@
* @dataProvider dataCheckEditPermissions
*/
public function testAttemptSavePermissions( $permissions, $create,
$expectedOK ) {
- $repo = $this->makeMockRepo();
- $titleLookup = $this->newTitleLookupMock();
+ $repo = $this->getMockRepository();
+ $titleLookup = $this->getEntityTitleLookup();
- $user = self::getUser( "EditEntityTestUser" );
+ $user = $this->getUser( 'EditEntityTestUser' );
$item = $this->prepareItemForPermissionCheck( $user, $repo,
$create );
$token = $user->getEditToken();
@@ -504,7 +504,7 @@
* @param User $user
* @param array $groups
*/
- protected function setUserGroups( User $user, array $groups ) {
+ private function setUserGroups( User $user, array $groups ) {
if ( $user->getId() === 0 ) {
$user = User::createNew( $user->getName() );
}
@@ -624,7 +624,7 @@
* @dataProvider dataAttemptSaveRateLimit
*/
public function testAttemptSaveRateLimit( $limits, $groups, $edits ) {
- $repo = $this->makeMockRepo();
+ $repo = $this->getMockRepository();
$this->setMwGlobals(
'wgRateLimits',
@@ -637,11 +637,11 @@
new HashBagOStuff()
);
- $user = self::getUser( "UserForTestAttemptSaveRateLimit" );
+ $user = $this->getUser( 'UserForTestAttemptSaveRateLimit' );
$this->setUserGroups( $user, $groups );
$items = array();
- $titleLookup = $this->newTitleLookupMock();
+ $titleLookup = $this->getEntityTitleLookup();
foreach ( $edits as $e ) {
$name = $e[ 'item' ];
@@ -692,11 +692,11 @@
* @dataProvider provideIsTokenOk
*/
public function testIsTokenOk( $token, $shouldWork ) {
- $repo = $this->makeMockRepo();
- $user = self::getUser( "EditEntityTestUser" );
+ $repo = $this->getMockRepository();
+ $user = $this->getUser( 'EditEntityTestUser' );
$item = Item::newEmpty();
- $titleLookup = $this->newTitleLookupMock();
+ $titleLookup = $this->getEntityTitleLookup();
$edit = $this->makeEditEntity( $repo, $item, $titleLookup,
$user );
// check valid token --------------------
@@ -733,9 +733,9 @@
* @dataProvider provideAttemptSaveWatch
*/
public function testAttemptSaveWatch( $watchdefault, $watchcreations,
$new, $watched, $watch, $expected ) {
- $repo = $this->makeMockRepo();
+ $repo = $this->getMockRepository();
- $user = self::getUser( "EditEntityTestUser2" );
+ $user = $this->getUser( 'EditEntityTestUser2' );
if ( $user->getId() === 0 ) {
$user->addToDatabase();
@@ -752,7 +752,7 @@
$repo->updateWatchlist( $user, $item->getId(), $watched
);
}
- $titleLookup = $this->newTitleLookupMock();
+ $titleLookup = $this->getEntityTitleLookup();
$edit = $this->makeEditEntity( $repo, $item, $titleLookup,
$user );
$status = $edit->attemptSave( "testing", $new ? EDIT_NEW :
EDIT_UPDATE, false, $watch );
diff --git a/repo/tests/phpunit/includes/EntityParserOutputGeneratorTest.php
b/repo/tests/phpunit/includes/EntityParserOutputGeneratorTest.php
index 8bfead7..4ab42a9 100644
--- a/repo/tests/phpunit/includes/EntityParserOutputGeneratorTest.php
+++ b/repo/tests/phpunit/includes/EntityParserOutputGeneratorTest.php
@@ -189,8 +189,10 @@
$entityTitleLookup->expects( $this->any() )
->method( 'getTitleForId' )
->will( $this->returnCallback( function( EntityId $id )
{
- $name = $id->getEntityType() . ':' .
$id->getSerialization();
- return Title::makeTitle( NS_MAIN, $name );
+ return Title::makeTitle(
+ NS_MAIN,
+ $id->getEntityType() . ':' .
$id->getSerialization()
+ );
} ) );
return $entityTitleLookup;
diff --git a/repo/tests/phpunit/includes/ParserOutputJsConfigBuilderTest.php
b/repo/tests/phpunit/includes/ParserOutputJsConfigBuilderTest.php
index a223cca..8eb32ce 100644
--- a/repo/tests/phpunit/includes/ParserOutputJsConfigBuilderTest.php
+++ b/repo/tests/phpunit/includes/ParserOutputJsConfigBuilderTest.php
@@ -84,7 +84,7 @@
private function getConfigBuilder( $languageCode, array $languageCodes
) {
$configBuilder = new ParserOutputJsConfigBuilder(
new BasicEntityIdParser(),
- $this->getEntityTitleLookupMock(),
+ $this->getEntityTitleLookup(),
$this->getSerializationOptions( $languageCode,
$languageCodes ),
$languageCode
);
@@ -165,26 +165,21 @@
}
/**
- * @param EntityId $entityId
- *
- * @return Title
- */
- public function getTitleForId( EntityId $entityId ) {
- $name = $entityId->getEntityType() . ':' .
$entityId->getSerialization();
- return Title::makeTitle( NS_MAIN, $name );
- }
-
- /**
* @return EntityTitleLookup
*/
- private function getEntityTitleLookupMock() {
+ private function getEntityTitleLookup() {
$lookup = $this->getMockBuilder(
'Wikibase\Lib\Store\EntityTitleLookup' )
->disableOriginalConstructor()
->getMock();
$lookup->expects( $this->any() )
->method( 'getTitleForId' )
- ->will( $this->returnCallback( array( $this,
'getTitleForId' ) ) );
+ ->will( $this->returnCallback( function( EntityId $id )
{
+ return Title::makeTitle(
+ NS_MAIN,
+ $id->getEntityType() . ':' .
$id->getSerialization()
+ );
+ } ) );
return $lookup;
}
diff --git a/repo/tests/phpunit/includes/UpdateRepo/UpdateRepoOnMoveJobTest.php
b/repo/tests/phpunit/includes/UpdateRepo/UpdateRepoOnMoveJobTest.php
index f1bc188..4660689 100644
--- a/repo/tests/phpunit/includes/UpdateRepo/UpdateRepoOnMoveJobTest.php
+++ b/repo/tests/phpunit/includes/UpdateRepo/UpdateRepoOnMoveJobTest.php
@@ -2,9 +2,9 @@
namespace Wikibase\Repo\Tests\UpdateRepo;
+use Status;
use Title;
use User;
-use Status;
use Wikibase\DataModel\Entity\Item;
use Wikibase\DataModel\Entity\ItemId;
use Wikibase\Repo\UpdateRepo\UpdateRepoOnMoveJob;
@@ -71,8 +71,8 @@
private function getEntityPermissionChecker() {
$entityPermissionChecker = $this->getMock(
'Wikibase\Repo\Store\EntityPermissionChecker' );
$entityPermissionChecker->expects( $this->any() )
- ->method( 'getPermissionStatusForEntity' )
- ->will( $this->returnValue( Status::newGood()
));
+ ->method( 'getPermissionStatusForEntity' )
+ ->will( $this->returnValue( Status::newGood() ) );
return $entityPermissionChecker;
}
@@ -97,8 +97,8 @@
/**
* @dataProvider runProvider
*
- * @param bool $expected
- * @param bool $titleExists
+ * @param string $expected
+ * @param string $normalizedPageName
* @param string $oldTitle
*/
public function testRun( $expected, $normalizedPageName, $oldTitle ) {
@@ -147,4 +147,5 @@
array( new ItemId( 'Q42' ) )
);
}
+
}
diff --git a/repo/tests/phpunit/includes/View/ClaimHtmlGeneratorTest.php
b/repo/tests/phpunit/includes/View/ClaimHtmlGeneratorTest.php
index 55344aa..3f44378 100644
--- a/repo/tests/phpunit/includes/View/ClaimHtmlGeneratorTest.php
+++ b/repo/tests/phpunit/includes/View/ClaimHtmlGeneratorTest.php
@@ -53,17 +53,6 @@
}
/**
- * @param EntityId $id
- * @return string
- */
- public function getLinkForId( EntityId $id ) {
- $name = $id->getEntityType() . ':' . $id->getSerialization();
- $url = 'http://wiki.acme.com/wiki/' . urlencode( $name );
-
- return Html::element( 'a', array( 'href' => $url ), $name );
- }
-
- /**
* @return EntityIdFormatter
*/
protected function getPropertyIdFormatterMock() {
@@ -73,7 +62,11 @@
$lookup->expects( $this->any() )
->method( 'format' )
- ->will( $this->returnCallback( array( $this,
'getLinkForId' ) ) );
+ ->will( $this->returnCallback( function( EntityId $id )
{
+ $name = $id->getEntityType() . ':' .
$id->getSerialization();
+ $url = 'http://wiki.acme.com/wiki/' .
urlencode( $name );
+ return Html::element( 'a', array( 'href' =>
$url ), $name );
+ } ) );
return $lookup;
}
diff --git a/repo/tests/phpunit/includes/View/ClaimsViewTest.php
b/repo/tests/phpunit/includes/View/ClaimsViewTest.php
index af01ad5..06dfb4d 100644
--- a/repo/tests/phpunit/includes/View/ClaimsViewTest.php
+++ b/repo/tests/phpunit/includes/View/ClaimsViewTest.php
@@ -44,7 +44,7 @@
$propertyId = new PropertyId( 'P77' );
$claims = $this->makeClaims( $propertyId );
- $propertyIdFormatter = $this->getPropertyIdFormatterMock();
+ $propertyIdFormatter = $this->getEntityIdFormatter();
$link = $this->getLinkForId( $propertyId );
$claimsView = $this->newClaimsView( $propertyIdFormatter );
@@ -112,14 +112,14 @@
$templateFactory,
$propertyIdFormatter,
new SectionEditLinkGenerator( $templateFactory ),
- $this->getClaimHtmlGeneratorMock()
+ $this->getClaimHtmlGenerator()
);
}
/**
* @return ClaimHtmlGenerator
*/
- private function getClaimHtmlGeneratorMock() {
+ private function getClaimHtmlGenerator() {
$claimHtmlGenerator = $this->getMockBuilder(
'Wikibase\Repo\View\ClaimHtmlGenerator' )
->disableOriginalConstructor()
->getMock();
@@ -135,19 +135,19 @@
/**
* @param EntityId $id
+ *
* @return string
*/
public function getLinkForId( EntityId $id ) {
$name = $id->getEntityType() . ':' . $id->getSerialization();
$url = 'http://wiki.acme.com/wiki/' . urlencode( $name );
-
return Html::element( 'a', array( 'href' => $url ), $name );
}
/**
* @return EntityIdFormatter
*/
- protected function getPropertyIdFormatterMock() {
+ private function getEntityIdFormatter() {
$lookup = $this->getMockBuilder(
'Wikibase\Lib\EntityIdFormatter' )
->disableOriginalConstructor()
->getMock();
diff --git a/repo/tests/phpunit/includes/View/SiteLinksViewTest.php
b/repo/tests/phpunit/includes/View/SiteLinksViewTest.php
index 06425d3..92ebfa0 100644
--- a/repo/tests/phpunit/includes/View/SiteLinksViewTest.php
+++ b/repo/tests/phpunit/includes/View/SiteLinksViewTest.php
@@ -3,7 +3,6 @@
namespace Wikibase\Test;
use MediaWikiSite;
-use MediaWikiTestCase;
use SiteList;
use Wikibase\DataModel\Entity\EntityId;
use Wikibase\DataModel\Entity\Item;
@@ -35,7 +34,7 @@
$value = $siteLinksView->getHtml( $item->getSiteLinks(),
$item->getId(), $groups, $editable );
$this->assertInternalType( 'string', $value );
- MediaWikiTestCase::assertTag( $expectedValue, $value, $value .
' did not match ' . var_export( $expectedValue, true ) );
+ \MediaWikiTestCase::assertTag( $expectedValue, $value, $value .
' did not match ' . var_export( $expectedValue, true ) );
}
public function getHtmlProvider() {
@@ -217,8 +216,8 @@
$sectionEditLinkGenerator->expects( $this->any() )
->method( 'getHtmlForEditSection' )
- ->will( $this->returnCallback( function ( $url,
$cssClassSuffix, $msg, $tag, $enabled ) {
- if( $enabled ) {
+ ->will( $this->returnCallback( function( $url,
$cssClassSuffix, $msg, $tag, $enabled ) {
+ if ( $enabled ) {
return '<a
class="wikibase-toolbarbutton-enabled">Edit link</a>';
} else {
return '<a
class="wikibase-toolbarbutton-disabled">Disabled edit link</a>';
@@ -254,14 +253,14 @@
$entityLookup->expects( $this->any() )
->method( 'getEntity' )
- ->will( $this->returnCallback( function( EntityId
$entityId ) {
- if ( $entityId->getSerialization() === 'Q42' ) {
+ ->will( $this->returnCallback( function( EntityId $id )
{
+ if ( $id->getSerialization() === 'Q42' ) {
$item = Item::newEmpty();
$item->setLabel( 'en', 'Featured
article' );
return $item;
- } else {
- return null;
}
+
+ return null;
} ) );
return $entityLookup;
diff --git a/repo/tests/phpunit/includes/View/SnakHtmlGeneratorTest.php
b/repo/tests/phpunit/includes/View/SnakHtmlGeneratorTest.php
index 313f000..153296c 100644
--- a/repo/tests/phpunit/includes/View/SnakHtmlGeneratorTest.php
+++ b/repo/tests/phpunit/includes/View/SnakHtmlGeneratorTest.php
@@ -48,15 +48,15 @@
}
public function getSnakHtmlProvider() {
- $snakFormatter = $this->getSnakFormatterMock();
+ $snakFormatter = $this->getSnakFormatter();
- $propertyIdFormatterMock = $this->getPropertyIdFormatterMock();
+ $propertyIdFormatter = $this->getEntityIdFormatter();
$testCases = array();
$testCases[] = array(
$snakFormatter,
- $propertyIdFormatterMock,
+ $propertyIdFormatter,
new PropertySomeValueSnak( 42 ),
array(
'snak variation css' =>
'/wb-snakview-variation-somevalue/',
@@ -66,7 +66,7 @@
$testCases[] = array(
$snakFormatter,
- $propertyIdFormatterMock,
+ $propertyIdFormatter,
new PropertySomeValueSnak( 42 ),
array(
'snak variation css' =>
'/wb-snakview-variation-somevalue/',
@@ -76,7 +76,7 @@
$testCases[] = array(
$snakFormatter,
- $propertyIdFormatterMock,
+ $propertyIdFormatter,
new PropertyValueSnak( 50, new StringValue(
'chocolate!' ) ),
array(
'snak variation css' =>
'/wb-snakview-variation-value/',
@@ -90,7 +90,7 @@
/**
* @return SnakFormatter
*/
- protected function getSnakFormatterMock() {
+ private function getSnakFormatter() {
$snakFormatter = $this->getMock( 'Wikibase\Lib\SnakFormatter' );
$snakFormatter->expects( $this->any() )
@@ -105,27 +105,20 @@
}
/**
- * @param EntityId $id
- * @return string
- */
- public function getLinkForId( EntityId $id ) {
- $name = $id->getEntityType() . ':' . $id->getSerialization();
- $url = 'http://wiki.acme.com/wiki/' . urlencode( $name );
-
- return Html::element( 'a', array( 'href' => $url ), $name );
- }
-
- /**
* @return EntityIdFormatter
*/
- protected function getPropertyIdFormatterMock() {
+ private function getEntityIdFormatter() {
$lookup = $this->getMockBuilder(
'Wikibase\Lib\EntityIdFormatter' )
->disableOriginalConstructor()
->getMock();
$lookup->expects( $this->any() )
->method( 'format' )
- ->will( $this->returnCallback( array( $this,
'getLinkForId' ) ) );
+ ->will( $this->returnCallback( function( EntityId $id )
{
+ $name = $id->getEntityType() . ':' .
$id->getSerialization();
+ $url = 'http://wiki.acme.com/wiki/' .
urlencode( $name );
+ return Html::element( 'a', array( 'href' =>
$url ), $name );
+ } ) );
return $lookup;
}
diff --git a/repo/tests/phpunit/includes/rdf/RdfBuilderTest.php
b/repo/tests/phpunit/includes/rdf/RdfBuilderTest.php
index eb4c82a..4e1b4ba 100644
--- a/repo/tests/phpunit/includes/rdf/RdfBuilderTest.php
+++ b/repo/tests/phpunit/includes/rdf/RdfBuilderTest.php
@@ -86,7 +86,7 @@
*
* @return EasyRdf_Graph
*/
- protected static function makeEntityGraph( EntityId $entityId,
$entityProps, $dataProps ) {
+ private static function makeEntityGraph( EntityId $entityId,
$entityProps, $dataProps ) {
$graph = new EasyRdf_Graph();
$builder = self::newRdfBuilder( 'rdf' ); //XXX: ugh, dummy
object
@@ -107,7 +107,7 @@
* @param EasyRdf_Resource $resource
* @param array $properties
*/
- protected static function addProperties( EasyRdf_Graph $graph,
EasyRdf_Resource $resource, $properties ) {
+ private static function addProperties( EasyRdf_Graph $graph,
EasyRdf_Resource $resource, $properties ) {
foreach ( $properties as $prop => $values ) {
if ( !is_array( $values ) ) {
$values = array( $values );
@@ -198,7 +198,7 @@
/**
* @return RdfBuilder
*/
- protected static function newRdfBuilder() {
+ private static function newRdfBuilder() {
return new RdfBuilder(
new SiteList(),
self::URI_BASE,
@@ -233,7 +233,7 @@
* @dataProvider provideAddEntity
*/
public function testAddEntity( EntityRevision $entityRevision,
EasyRdf_Graph $expectedGraph ) {
- $builder = $this->newRdfBuilder();
+ $builder = self::newRdfBuilder();
$builder->addEntity( $entityRevision->getEntity() );
$builder->addEntityRevisionInfo(
$entityRevision->getEntity()->getId(), $entityRevision->getRevisionId(),
$entityRevision->getTimestamp() );
diff --git a/repo/tests/phpunit/includes/rdf/RdfSerializerTest.php
b/repo/tests/phpunit/includes/rdf/RdfSerializerTest.php
index b6111ce..714d704 100644
--- a/repo/tests/phpunit/includes/rdf/RdfSerializerTest.php
+++ b/repo/tests/phpunit/includes/rdf/RdfSerializerTest.php
@@ -2,6 +2,7 @@
namespace Wikibase\Test;
+use EasyRdf_Graph;
use SiteList;
use Wikibase\DataModel\Entity\Entity;
use Wikibase\EntityRevision;
@@ -19,7 +20,7 @@
*/
class RdfSerializerTest extends \MediaWikiTestCase {
- protected static $formats = array(
+ private static $formats = array(
'rdf',
'application/rdf+xml',
'n3',
@@ -32,8 +33,8 @@
/**
* @return EntityRevision[]
*/
- protected static function getTestEntityRevisions() {
- $entities = self::getTestEntities();
+ private function getTestEntityRevisions() {
+ $entities = $this->getTestEntities();
$revisions = array();
foreach ( $entities as $name => $entity ) {
@@ -46,18 +47,18 @@
/**
* @return Entity[]
*/
- protected static function getTestEntities() {
+ private function getTestEntities() {
return RdfBuilderTest::getTestEntities();
}
/**
- * @return \EasyRdf_Graph[]
+ * @return EasyRdf_Graph[]
*/
- protected static function getTestGraphs() {
+ private function getTestGraphs() {
return RdfBuilderTest::getTestGraphs();
}
- protected static function getTestDataPatterns() {
+ private function getTestDataPatterns() {
static $patterns = array();
if ( !empty( $patterns ) ) {
@@ -98,13 +99,11 @@
return $patterns;
}
- protected static function newRdfSerializer( $formatName ) {
+ private function newRdfSerializer( $formatName ) {
$format = RdfSerializer::getFormat( $formatName );
-
-
$mockRepo = new MockRepository();
- foreach( self::getTestEntities() as $entity ) {
+ foreach( $this->getTestEntities() as $entity ) {
$mockRepo->putEntity( $entity );
}
@@ -136,8 +135,8 @@
}
public function provideBuildGraphForEntityRevision() {
- $entityRevs = self::getTestEntityRevisions();
- $graphs = self::getTestGraphs();
+ $entityRevs = $this->getTestEntityRevisions();
+ $graphs = $this->getTestGraphs();
$cases = array();
@@ -161,8 +160,8 @@
/**
* @dataProvider provideBuildGraphForEntityRevision
*/
- public function testBuildGraphForEntityRevision( EntityRevision
$entityRevision, \EasyRdf_Graph $expectedGraph ) {
- $serializer = self::newRdfSerializer( 'rdf' );
+ public function testBuildGraphForEntityRevision( EntityRevision
$entityRevision, EasyRdf_Graph $expectedGraph ) {
+ $serializer = $this->newRdfSerializer( 'rdf' );
$graph = $serializer->buildGraphForEntityRevision(
$entityRevision );
@@ -180,8 +179,8 @@
}
public function provideSerializeRdf() {
- $graphs = self::getTestGraphs();
- $patterns = self::getTestDataPatterns();
+ $graphs = $this->getTestGraphs();
+ $patterns = $this->getTestDataPatterns();
$cases = array();
@@ -208,8 +207,8 @@
/**
* @dataProvider provideSerializeRdf
*/
- public function testSerializeRdf( \EasyRdf_Graph $graph, $format,
$regexes ) {
- $serializer = self::newRdfSerializer( $format );
+ public function testSerializeRdf( EasyRdf_Graph $graph, $format,
$regexes ) {
+ $serializer = $this->newRdfSerializer( $format );
$data = $serializer->serializeRdf( $graph );
@@ -219,8 +218,8 @@
}
public function provideSerializeEntityRevision() {
- $entityRevs = self::getTestEntityRevisions();
- $patterns = self::getTestDataPatterns();
+ $entityRevs = $this->getTestEntityRevisions();
+ $patterns = $this->getTestDataPatterns();
$cases = array();
@@ -243,7 +242,7 @@
* @dataProvider provideSerializeEntityRevision
*/
public function testSerializeEntityRevision( EntityRevision
$entityRevision, $format, $regexes ) {
- $serializer = self::newRdfSerializer( $format );
+ $serializer = $this->newRdfSerializer( $format );
$data = $serializer->serializeEntityRevision( $entityRevision );
diff --git a/repo/tests/phpunit/includes/specials/SpecialGoToLinkedPageTest.php
b/repo/tests/phpunit/includes/specials/SpecialGoToLinkedPageTest.php
index 9f5c686..212ed4a 100644
--- a/repo/tests/phpunit/includes/specials/SpecialGoToLinkedPageTest.php
+++ b/repo/tests/phpunit/includes/specials/SpecialGoToLinkedPageTest.php
@@ -25,21 +25,18 @@
* @return SiteLinkLookup
*/
private function getMockSiteLinkLookup() {
-
$mock = $this->getMock( 'Wikibase\Lib\Store\SiteLinkLookup' );
$mock->expects( $this->any() )
->method( 'getLinks' )
- ->will( $this->returnCallback(
- function ( $itemIds, $siteIds ) {
- $result = array( array( '',
'TestPageName' ) );
- if ( $siteIds === array( 'dewiki' ) &&
$itemIds === array( 23 ) ) {
- return $result;
- } else {
- return null;
- }
+ ->will( $this->returnCallback( function( $itemIds,
$siteIds ) {
+ $result = array( array( '', 'TestPageName' ) );
+ if ( $siteIds === array( 'dewiki' ) && $itemIds
=== array( 23 ) ) {
+ return $result;
+ } else {
+ return null;
}
- ) );
+ } ) );
return $mock;
}
@@ -48,20 +45,20 @@
* @return SiteStore
*/
private function getMockSiteStore() {
- $getSite = function ( $siteId ) {
- if ( substr( $siteId, -4 ) !== 'wiki' ) {
- return null;
- }
- $site = new Site();
- $site->setGlobalId( $siteId );
- $site->setLinkPath( 'http://'.$siteId.'.com/$1' );
- return $site;
- };
-
$mock = $this->getMock( 'SiteStore' );
$mock->expects( $this->any() )
->method( 'getSite' )
- ->will( $this->returnCallback( $getSite ) );
+ ->will( $this->returnCallback( function( $siteId ) {
+ if ( substr( $siteId, -4 ) !== 'wiki' ) {
+ return null;
+ }
+
+ $site = new Site();
+ $site->setGlobalId( $siteId );
+ $site->setLinkPath( 'http://'.$siteId.'.com/$1'
);
+
+ return $site;
+ } ) );
return $mock;
}
@@ -132,7 +129,6 @@
$cases['foundWithSiteIdHack'] = array( 'de/Q23',
'http://dewiki.com/TestPageName' );
return $cases;
}
-
/**
* @dataProvider requestWithRedirectProvider
diff --git a/repo/tests/phpunit/includes/specials/SpecialItemByTitleTest.php
b/repo/tests/phpunit/includes/specials/SpecialItemByTitleTest.php
index ac176ed..59580ca 100644
--- a/repo/tests/phpunit/includes/specials/SpecialItemByTitleTest.php
+++ b/repo/tests/phpunit/includes/specials/SpecialItemByTitleTest.php
@@ -35,11 +35,9 @@
$mock = $this->getMock( 'Wikibase\Lib\Store\EntityTitleLookup'
);
$mock->expects( $this->any() )
->method( 'getTitleForId' )
- ->will( $this->returnCallback(
- function ( EntityId $id ) {
- return Title::makeTitle( NS_MAIN,
$id->getSerialization() );
- }
- ) );
+ ->will( $this->returnCallback( function( EntityId $id )
{
+ return Title::makeTitle( NS_MAIN,
$id->getSerialization() );
+ } ) );
return $mock;
}
@@ -48,17 +46,15 @@
* @return SiteLinkLookup
*/
private function getMockSiteLinkLookup() {
- $entityId = new ItemId( 'Q123' );
+ $itemId = new ItemId( 'Q123' );
$mock = $this->getMock( 'Wikibase\Lib\Store\SiteLinkLookup' );
$mock->expects( $this->any() )
->method( 'getItemIdForLink' )
- ->will( $this->returnCallback(
- function ( $siteId, $pageName ) use ( $entityId
) {
- return ( $siteId === 'dewiki' ) ?
$entityId : null;
- }
- ) );
+ ->will( $this->returnCallback( function( $siteId,
$pageName ) use ( $itemId ) {
+ return $siteId === 'dewiki' ? $itemId : null;
+ } ) );
return $mock;
}
@@ -67,10 +63,11 @@
* @return SiteStore
*/
private function getMockSiteStore() {
- $getSite = function ( $siteId ) {
+ $getSite = function( $siteId ) {
$site = new Site();
$site->setGlobalId( $siteId );
$site->setLinkPath( "http://$siteId.com/$1" );
+
return $site;
};
diff --git a/repo/tests/phpunit/includes/specials/SpecialMergeItemsTest.php
b/repo/tests/phpunit/includes/specials/SpecialMergeItemsTest.php
index 655b6c1..06be6b7 100644
--- a/repo/tests/phpunit/includes/specials/SpecialMergeItemsTest.php
+++ b/repo/tests/phpunit/includes/specials/SpecialMergeItemsTest.php
@@ -76,6 +76,7 @@
/**
* @param SpecialMergeItems $page
+ * @param User $user
*/
private function overrideServices( SpecialMergeItems $page, User $user
) {
$idParser =
WikibaseRepo::getDefaultInstance()->getEntityIdParser();
@@ -86,14 +87,30 @@
$exceptionLocalizer = $this->getMock(
'Wikibase\Lib\Localizer\ExceptionLocalizer' );
$exceptionLocalizer->expects( $this->any() )
->method( 'getExceptionMessage' )
- ->will( $this->returnCallback( array( $this,
'getExceptionMessage' ) ) );
+ ->will( $this->returnCallback( function( Exception $ex
) {
+ if ( $ex instanceof PHPUnit_Framework_Error ) {
+ throw $ex;
+ }
+
+ $text = get_class( $ex );
+
+ if ( $ex instanceof MessageException ) {
+ $text .= ':' . $ex->getKey();
+ } elseif ( $ex instanceof ItemMergeException ) {
+ $text .= ':' . $ex->getErrorCode();
+ } elseif ( $ex instanceof TokenCheckException )
{
+ $text .= ':' . $ex->getErrorCode();
+ } else {
+ $text .= ':"' . $ex->getMessage() . '"';
+ }
+
+ return new RawMessage( '(@' . $text . '@)' );
+ } ) );
$page->initServices(
$idParser,
$exceptionLocalizer,
- new TokenCheckInteractor(
- $user
- ),
+ new TokenCheckInteractor( $user ),
new ItemMergeInteractor(
$changeOpsFactory,
$this->repo,
@@ -103,26 +120,6 @@
$user
)
);
- }
-
- public function getExceptionMessage( Exception $ex ) {
- if ( $ex instanceof PHPUnit_Framework_Error ) {
- throw $ex;
- }
-
- $text = get_class( $ex );
-
- if ( $ex instanceof MessageException ) {
- $text .= ':' . $ex->getKey();
- } elseif ( $ex instanceof ItemMergeException ) {
- $text .= ':' . $ex->getErrorCode();
- } elseif ( $ex instanceof TokenCheckException ) {
- $text .= ':' . $ex->getErrorCode();
- } else {
- $text .= ':"' . $ex->getMessage() . '"';
- }
-
- return new RawMessage( '(@' . $text . '@)' );
}
private function executeSpecialMergeItems( $params, User $user = null )
{
@@ -193,7 +190,7 @@
}
private function assertError( $error, $html ) {
- // match error strings as generated by
$this->getExceptionMessage!
+ // Match error strings as generated by the ExceptionLocalizer
mock!
if ( !preg_match( '!<p class="error">\(@(.*?)@\)</p>!', $html,
$m ) ) {
$this->fail( 'Expected error ' . $error . '. No error
found in page!' );
}
@@ -390,4 +387,4 @@
$this->assertError(
'Wikibase\Repo\Interactors\ItemMergeException:wikibase-itemmerge-permissiondenied',
$html );
}
-}
\ No newline at end of file
+}
diff --git a/repo/tests/phpunit/includes/store/sql/DispatchStatsTest.php
b/repo/tests/phpunit/includes/store/sql/DispatchStatsTest.php
index 90d93b8..5097fe0 100644
--- a/repo/tests/phpunit/includes/store/sql/DispatchStatsTest.php
+++ b/repo/tests/phpunit/includes/store/sql/DispatchStatsTest.php
@@ -23,8 +23,8 @@
*
* @return DispatchStats
*/
- protected function getDispatchStats() {
- $data = self::getTestData();
+ private function getDispatchStats() {
+ $data = $this->getTestData();
$now = $data['now'];
$changes = $data['changes'];
$states = $data['states'];
@@ -73,7 +73,7 @@
return $stats;
}
- protected static function getTestData() {
+ private function getTestData() {
return array(
'states' => array(
array(
@@ -202,7 +202,7 @@
}
public function provideGetClientStates() {
- $data = self::getTestData();
+ $data = $this->getTestData();
return array(
array(
@@ -229,7 +229,7 @@
}
}
- protected function assertStateEquals( $expected, $actual ) {
+ private function assertStateEquals( $expected, $actual ) {
$this->assertInternalType( 'array', $expected );
$this->assertInternalType( 'object', $actual );
@@ -258,7 +258,7 @@
}
public function provideGetClientCount() {
- $data = self::getTestData();
+ $data = $this->getTestData();
return array(
array(
@@ -277,7 +277,7 @@
}
public function provideGetLockedCount() {
- $data = self::getTestData();
+ $data = $this->getTestData();
return array(
array(
@@ -296,7 +296,7 @@
}
public function provideGetMinChangeId() {
- $data = self::getTestData();
+ $data = $this->getTestData();
return array(
array(
@@ -315,7 +315,7 @@
}
public function provideGetMaxChangeId() {
- $data = self::getTestData();
+ $data = $this->getTestData();
return array(
array(
@@ -334,7 +334,7 @@
}
public function provideGetMinChangeTimestamp() {
- $data = self::getTestData();
+ $data = $this->getTestData();
return array(
array(
@@ -353,7 +353,7 @@
}
public function provideGetMaxChangeTimestamp() {
- $data = self::getTestData();
+ $data = $this->getTestData();
return array(
array(
@@ -372,7 +372,7 @@
}
public function provideGetFreshest() {
- $data = self::getTestData();
+ $data = $this->getTestData();
return array(
array(
@@ -391,7 +391,7 @@
}
public function provideGetStalest() {
- $data = self::getTestData();
+ $data = $this->getTestData();
return array(
array(
@@ -410,7 +410,7 @@
}
public function provideGetAverage() {
- $data = self::getTestData();
+ $data = $this->getTestData();
return array(
array(
@@ -429,7 +429,7 @@
}
public function provideGetMedian() {
- $data = self::getTestData();
+ $data = $this->getTestData();
return array(
array(
@@ -468,4 +468,5 @@
$this->assertFalse( $stats->hasStats() ); // Still no stats as
the table is empty
}
+
}
--
To view, visit https://gerrit.wikimedia.org/r/179473
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Id990caf8193f8b7b11dccac5715c8d3fbbbf50fa
Gerrit-PatchSet: 9
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Thiemo Mättig (WMDE) <[email protected]>
Gerrit-Reviewer: Addshore <[email protected]>
Gerrit-Reviewer: Adrian Lang <[email protected]>
Gerrit-Reviewer: Aude <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits