wiki.techinc.nl/tests/phpunit/includes/specials/DeletedContribsPagerTest.php
Umherirrender 0c8fdfe2e9 Sort services injected into specialpage pagers
Make the context source not-null

Bug: T290405
Change-Id: I20ba83caa35403a779f78c5e45af227b46dcf8f4
2022-02-10 23:15:41 +00:00

71 lines
2 KiB
PHP

<?php
/**
* @group Database
*/
class DeletedContribsPagerTest extends MediaWikiIntegrationTestCase {
/** @var DeletedContribsPager */
private $pager;
/** @var CommentStore */
private $commentStore;
/** @var HookContainer */
private $hookContainer;
/** @var ILoadBalancer */
private $loadBalancer;
/** @var LinkRenderer */
private $linkRenderer;
/** @var RevisionStore */
private $revisionStore;
protected function setUp(): void {
parent::setUp();
$services = $this->getServiceContainer();
$this->commentStore = $services->getCommentStore();
$this->hookContainer = $services->getHookContainer();
$this->linkRenderer = $services->getLinkRenderer();
$this->loadBalancer = $services->getDBLoadBalancer();
$this->revisionStore = $services->getRevisionStore();
$this->pager = $this->getDeletedContribsPager();
}
private function getDeletedContribsPager( $target = 'UTSysop', $namespace = 0 ) {
return new DeletedContribsPager(
RequestContext::getMain(),
$this->commentStore,
$this->hookContainer,
$this->linkRenderer,
$this->loadBalancer,
$this->revisionStore,
$target,
$namespace
);
}
/**
* Flow uses DeletedContribsPager::reallyDoQuery hook to provide something other then
* stdClass as a row, and then manually formats it's own row in ContributionsLineEnding.
* Emulate this behaviour and check that it works.
*
* @covers DeletedContribsPager::formatRow
*/
public function testDeletedContribProvidedByHook() {
$this->setTemporaryHook( 'DeletedContribsPager::reallyDoQuery', static function ( &$data ) {
$data = [ [ new class() {
public $ar_timestamp = 12345;
public $testing = 'TESTING';
} ] ];
} );
$this->setTemporaryHook( 'DeletedContributionsLineEnding', function ( $pager, &$ret, $row ) {
$this->assertSame( 'TESTING', $row->testing );
$ret .= 'FROM_HOOK!';
} );
$pager = $this->getDeletedContribsPager();
$this->assertStringContainsString( 'FROM_HOOK!', $pager->getBody() );
}
}