It's now deprecated to use the individual error printing functions in MWException or to override them. Printing MWException now works the same as any other exception, and happens in MWExceptionRenderer. It's still allowed to override MWException::report() to replace the entire error page, for example in ErrorPageError. Bug: T353444 Change-Id: I66d896f6f229b90e6ba9949311b56a6b6ab3da3d
29 lines
680 B
PHP
29 lines
680 B
PHP
<?php
|
|
|
|
use MediaWiki\Output\OutputPage;
|
|
|
|
/**
|
|
* @covers ThrottledError
|
|
* @author Addshore
|
|
*/
|
|
class ThrottledErrorTest extends MediaWikiIntegrationTestCase {
|
|
|
|
public function testExceptionSetsStatusCode() {
|
|
$mockOut = $this->createMock( OutputPage::class );
|
|
$mockOut->expects( $this->once() )
|
|
->method( 'setStatusCode' )
|
|
->with( 429 );
|
|
$this->setMwGlobals( 'wgOut', $mockOut );
|
|
|
|
try {
|
|
throw new ThrottledError();
|
|
} catch ( ThrottledError $e ) {
|
|
ob_start();
|
|
$e->report();
|
|
$text = ob_get_clean();
|
|
$this->expectDeprecationAndContinue( '/MWException::getText was deprecated/' );
|
|
$this->assertStringContainsString( $e->getText(), $text );
|
|
}
|
|
}
|
|
|
|
}
|