From 4ea621e2365319bbb8d35329bbd56a81ebe7251c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Gerg=C5=91=20Tisza?= Date: Wed, 9 Nov 2016 04:00:44 +0000 Subject: [PATCH] Add Message test for implicit formatting Change-Id: Ia6ec10d0d6da8c2b323054642e206c722d17f0b0 --- tests/phpunit/includes/MessageTest.php | 29 ++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/phpunit/includes/MessageTest.php b/tests/phpunit/includes/MessageTest.php index 4c689abb04..9b9a73a886 100644 --- a/tests/phpunit/includes/MessageTest.php +++ b/tests/phpunit/includes/MessageTest.php @@ -256,6 +256,35 @@ class MessageTest extends MediaWikiLangTestCase { $this->assertEquals( $expect, $msg->__toString() ); } + public static function provideToString_raw() { + return [ + [ 'foo', 'foo', 'parse' ], + [ 'foo', '<span>foo</span>', 'escaped' ], + [ 'foo', 'foo', 'plain' ], + [ '', '<script>alert(1)</script>', 'parse' ], + [ '', '<script>alert(1)</script>', 'escaped' ], + [ '', '', 'plain' ], + ]; + } + + /** + * @covers Message::toString + * @covers Message::__toString + * @dataProvider provideToString_raw + */ + public function testToString_raw( $key, $expect, $format ) { + // make the message behave like RawMessage and use the key as-is + $msg = $this->getMockBuilder( Message::class )->setMethods( [ 'fetchMessage' ] ) + ->setConstructorArgs( [ $key ] ) + ->getMock(); + $msg->expects( $this->any() )->method( 'fetchMessage' )->willReturn( $key ); + /** @var Message $msg */ + $msg->$format(); + $this->assertEquals( $expect, $msg->toString() ); + $this->assertEquals( $expect, $msg->__toString() ); + $this->assertEquals( $expect, $msg->toString() ); + } + /** * @covers Message::inLanguage */ -- 2.20.1