wiki.techinc.nl/tests/phpunit/includes/exception/UserBlockedErrorTest.php
James D. Forrester 4bae64d1c7 Namespace includes/context
Bug: T353458
Change-Id: I4dbef138fd0110c14c70214282519189d70c94fb
2024-02-08 11:07:01 -05:00

60 lines
2.1 KiB
PHP

<?php
use MediaWiki\Block\AbstractBlock;
use MediaWiki\Block\BlockErrorFormatter;
use MediaWiki\Context\RequestContext;
use MediaWiki\Language\FormatterFactory;
use MediaWiki\Language\RawMessage;
use MediaWiki\User\UserIdentity;
/**
* @covers UserBlockedError
*/
class UserBlockedErrorTest extends MediaWikiIntegrationTestCase {
private function setUpMockBlockFormatter(
$expectedBlock, $expectedUser, $expectedLanguage, $expectedIp, $returnMessages
) {
$mockBlockErrorFormatter = $this->createMock( BlockErrorFormatter::class );
$mockBlockErrorFormatter->expects( $this->once() )
->method( 'getMessages' )
->with( $expectedBlock, $expectedUser, $expectedIp )
->willReturn( $returnMessages );
$formatterFactory = $this->createNoOpMock( FormatterFactory::class, [ 'getBlockErrorFormatter' ] );
$formatterFactory->method( 'getBlockErrorFormatter' )->willReturn( $mockBlockErrorFormatter );
$this->setService( 'FormatterFactory', $formatterFactory );
}
public function testConstructionProvidedOnlyBlockParameter() {
$context = RequestContext::getMain();
$block = $this->createMock( AbstractBlock::class );
$this->setUpMockBlockFormatter(
$block, $context->getUser(), $context->getLanguage(), $context->getRequest()->getIP(),
[ new RawMessage( 'testing' ) ]
);
$e = new UserBlockedError( $block );
$this->assertSame(
( new RawMessage( 'testing' ) )->text(),
$e->getMessageObject()->text(),
'UserBlockedError did not use the expected message.'
);
}
public function testConstructionProvidedAllParametersWithMultipleBlockMessages() {
$mockUser = $this->createMock( UserIdentity::class );
$mockLanguage = $this->createMock( Language::class );
$block = $this->createMock( AbstractBlock::class );
$this->setUpMockBlockFormatter(
$block, $mockUser, $mockLanguage, '1.2.3.4',
[ new RawMessage( 'testing' ), new RawMessage( 'testing2' ) ]
);
$e = new UserBlockedError( $block, $mockUser, $mockLanguage, '1.2.3.4' );
$this->assertSame(
"* testing\n* testing2",
$e->getMessageObject()->text(),
'UserBlockedError did not use the expected message.'
);
}
}