assertFalse( $httpError->isLoggable(), 'http error is not loggable' ); } public function testGetStatusCode() { $httpError = new HttpError( 500, 'server error!' ); $this->assertEquals( 500, $httpError->getStatusCode() ); } /** * @dataProvider getHtmlProvider */ public function testGetHtml( array $expected, $content, $header ) { $httpError = new HttpError( 500, $content, $header ); $errorHtml = $httpError->getHTML(); foreach ( $expected as $key => $html ) { $this->assertStringContainsString( $html, $errorHtml, $key ); } } public function getHtmlProvider() { // Avoid parsing logic in real Message class which includes text transformations // that require MediaWikiServices $content = $this->createMock( Message::class ); $content->method( 'escaped' )->willReturn( 'suspicious-userlogout' ); $header = $this->createMock( Message::class ); $header->method( 'escaped' )->willReturn( 'loginerror' ); return [ [ [ 'head html' => 'Server Error 123', 'body html' => '

Server Error 123

' . '

a server error!

' ], 'a server error!', 'Server Error 123' ], [ [ 'head html' => 'loginerror', 'body html' => '

loginerror

' . '

suspicious-userlogout

' ], $content, $header ], [ [ 'head html' => 'Internal Server Error', 'body html' => '

Internal Server Error

' . '

a server error!

' ], 'a server error!', null ] ]; } }