diff options
Diffstat (limited to 'www/wiki/tests/phpunit/includes/exception/HttpErrorTest.php')
-rw-r--r-- | www/wiki/tests/phpunit/includes/exception/HttpErrorTest.php | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/www/wiki/tests/phpunit/includes/exception/HttpErrorTest.php b/www/wiki/tests/phpunit/includes/exception/HttpErrorTest.php new file mode 100644 index 00000000..90ccd1e5 --- /dev/null +++ b/www/wiki/tests/phpunit/includes/exception/HttpErrorTest.php @@ -0,0 +1,63 @@ +<?php + +/** + * @todo tests for HttpError::report + * + * @covers HttpError + */ +class HttpErrorTest extends MediaWikiTestCase { + + public function testIsLoggable() { + $httpError = new HttpError( 500, 'server error!' ); + $this->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->assertContains( $html, $errorHtml, $key ); + } + } + + public function getHtmlProvider() { + return [ + [ + [ + 'head html' => '<head><title>Server Error 123</title></head>', + 'body html' => '<body><h1>Server Error 123</h1>' + . '<p>a server error!</p></body>' + ], + 'a server error!', + 'Server Error 123' + ], + [ + [ + 'head html' => '<head><title>loginerror</title></head>', + 'body html' => '<body><h1>loginerror</h1>' + . '<p>suspicious-userlogout</p></body>' + ], + new RawMessage( 'suspicious-userlogout' ), + new RawMessage( 'loginerror' ) + ], + [ + [ + 'head html' => '<html><head><title>Internal Server Error</title></head>', + 'body html' => '<body><h1>Internal Server Error</h1>' + . '<p>a server error!</p></body></html>' + ], + 'a server error!', + null + ] + ]; + } +} |