2 use MediaWiki\MediaWikiServices
;
6 * @covers CoreParserFunctions
8 class CoreParserFunctionsTest
extends MediaWikiLangTestCase
{
10 public function testGender() {
11 $user = User
::createNew( '*Female' );
12 $user->setOption( 'gender', 'female' );
13 $user->saveSettings();
15 $msg = ( new RawMessage( '{{GENDER:*Female|m|f|o}}' ) )->parse();
16 $this->assertEquals( $msg, 'f', 'Works unescaped' );
17 $escapedName = wfEscapeWikiText( '*Female' );
18 $msg2 = ( new RawMessage( '{{GENDER:' . $escapedName . '|m|f|o}}' ) )
20 $this->assertEquals( $msg, 'f', 'Works escaped' );
23 public function provideTalkpagename() {
24 yield
[ 'Talk:Foo bar', 'foo_bar' ];
25 yield
[ 'Talk:Foo', ' foo ' ];
26 yield
[ 'Talk:Foo', 'Talk:Foo' ];
27 yield
[ 'User talk:Foo', 'User:foo' ];
28 yield
[ '', 'Special:Foo' ];
32 yield
[ '', '#xyzzy' ];
36 yield
[ '', 'User:' ];
37 yield
[ '', 'User:#' ];
41 * @dataProvider provideTalkpagename
43 public function testTalkpagename( $expected, $title ) {
44 $parser = MediaWikiServices
::getInstance()->getParser();
46 $this->assertSame( $expected, CoreParserFunctions
::talkpagename( $parser, $title ) );
49 public function provideSubjectpagename() {
50 yield
[ 'Foo bar', 'Talk:foo_bar' ];
51 yield
[ 'Foo', ' Talk:foo ' ];
52 yield
[ 'User:Foo', 'User talk:foo' ];
53 yield
[ 'Special:Foo', 'Special:Foo' ];
57 yield
[ '', '#xyzzy' ];
61 yield
[ '', 'Talk:' ];
62 yield
[ '', 'User talk:#' ];
63 yield
[ '', 'User:#' ];
67 * @dataProvider provideTalkpagename
69 public function testSubjectpagename( $expected, $title ) {
70 $parser = MediaWikiServices
::getInstance()->getParser();
72 $this->assertSame( $expected, CoreParserFunctions
::talkpagename( $parser, $title ) );