Merge "libs/Message: Improve documentation"
[lhc/web/wiklou.git] / tests / phpunit / includes / parser / CoreParserFunctionsTest.php
index c630447..ef2f219 100644 (file)
@@ -1,9 +1,11 @@
 <?php
+use MediaWiki\MediaWikiServices;
+
 /**
  * @group Database
  * @covers CoreParserFunctions
  */
-class CoreParserFunctionsTest extends MediaWikiTestCase {
+class CoreParserFunctionsTest extends MediaWikiLangTestCase {
 
        public function testGender() {
                $user = User::createNew( '*Female' );
@@ -18,4 +20,56 @@ class CoreParserFunctionsTest extends MediaWikiTestCase {
                $this->assertEquals( $msg, 'f', 'Works escaped' );
        }
 
+       public function provideTalkpagename() {
+               yield [ 'Talk:Foo bar', 'foo_bar' ];
+               yield [ 'Talk:Foo', ' foo ' ];
+               yield [ 'Talk:Foo', 'Talk:Foo' ];
+               yield [ 'User talk:Foo', 'User:foo' ];
+               yield [ '', 'Special:Foo' ];
+               yield [ '', '' ];
+               yield [ '', ' ' ];
+               yield [ '', '__' ];
+               yield [ '', '#xyzzy' ];
+               yield [ '', '#' ];
+               yield [ '', ':' ];
+               yield [ '', ':#' ];
+               yield [ '', 'User:' ];
+               yield [ '', 'User:#' ];
+       }
+
+       /**
+        * @dataProvider provideTalkpagename
+        */
+       public function testTalkpagename( $expected, $title ) {
+               $parser = MediaWikiServices::getInstance()->getParser();
+
+               $this->assertSame( $expected, CoreParserFunctions::talkpagename( $parser, $title ) );
+       }
+
+       public function provideSubjectpagename() {
+               yield [ 'Foo bar', 'Talk:foo_bar' ];
+               yield [ 'Foo', ' Talk:foo ' ];
+               yield [ 'User:Foo', 'User talk:foo' ];
+               yield [ 'Special:Foo', 'Special:Foo' ];
+               yield [ '', '' ];
+               yield [ '', ' ' ];
+               yield [ '', '__' ];
+               yield [ '', '#xyzzy' ];
+               yield [ '', '#' ];
+               yield [ '', ':' ];
+               yield [ '', ':#' ];
+               yield [ '', 'Talk:' ];
+               yield [ '', 'User talk:#' ];
+               yield [ '', 'User:#' ];
+       }
+
+       /**
+        * @dataProvider provideTalkpagename
+        */
+       public function testSubjectpagename( $expected, $title ) {
+               $parser = MediaWikiServices::getInstance()->getParser();
+
+               $this->assertSame( $expected, CoreParserFunctions::talkpagename( $parser, $title ) );
+       }
+
 }