X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2FTitleTest.php;h=7770cbc2c3a18f58c2a0fd02c77455e5575fe6cc;hp=6c4499948d42208dda54084d25e9a394137e6206;hb=e7720b8f8e09287384ddee271641d1b1721318bb;hpb=cc2a0190e7e9d0f4a5565ccec7316cd35fa46cab diff --git a/tests/phpunit/includes/TitleTest.php b/tests/phpunit/includes/TitleTest.php index 6c4499948d..7770cbc2c3 100644 --- a/tests/phpunit/includes/TitleTest.php +++ b/tests/phpunit/includes/TitleTest.php @@ -675,6 +675,99 @@ class TitleTest extends MediaWikiTestCase { ); } + public function provideCanHaveTalkPage() { + return [ + 'User page has talk page' => [ + Title::makeTitle( NS_USER, 'Jane' ), true + ], + 'Talke page has talk page' => [ + Title::makeTitle( NS_TALK, 'Foo' ), true + ], + 'Special page cannot have talk page' => [ + Title::makeTitle( NS_SPECIAL, 'Thing' ), false + ], + 'Virtual namespace cannot have talk page' => [ + Title::makeTitle( NS_MEDIA, 'Kitten.jpg' ), false + ], + ]; + } + + /** + * @dataProvider provideCanHaveTalkPage + * @covers Title::canHaveTalkPage + * + * @param Title $title + * @param bool $expected + */ + public function testCanHaveTalkPage( Title $title, $expected ) { + $actual = $title->canHaveTalkPage(); + $this->assertSame( $expected, $actual, $title->getPrefixedDBkey() ); + } + + /** + * @dataProvider provideCanHaveTalkPage + * @covers Title::canTalk + * + * @param Title $title + * @param bool $expected + */ + public function testCanTalk( Title $title, $expected ) { + $actual = $title->canTalk(); + $this->assertSame( $expected, $actual, $title->getPrefixedDBkey() ); + } + + public static function provideGetTalkPage_good() { + return [ + [ Title::makeTitle( NS_MAIN, 'Test' ), Title::makeTitle( NS_TALK, 'Test' ) ], + [ Title::makeTitle( NS_TALK, 'Test' ), Title::makeTitle( NS_TALK, 'Test' ) ], + ]; + } + + /** + * @dataProvider provideGetTalkPage_good + * @covers Title::getTalkPage + */ + public function testGetTalkPage_good( Title $title, Title $expected ) { + $talk = $title->getTalkPage(); + $this->assertSame( + $expected->getPrefixedDBKey(), + $talk->getPrefixedDBKey(), + $title->getPrefixedDBKey() + ); + } + + /** + * @dataProvider provideGetTalkPage_good + * @covers Title::getTalkPageIfDefined + */ + public function testGetTalkPageIfDefined_good( Title $title ) { + $talk = $title->getTalkPageIfDefined(); + $this->assertInstanceOf( + Title::class, + $talk, + $title->getPrefixedDBKey() + ); + } + + public static function provideGetTalkPage_bad() { + return [ + [ Title::makeTitle( NS_SPECIAL, 'Test' ) ], + [ Title::makeTitle( NS_MEDIA, 'Test' ) ], + ]; + } + + /** + * @dataProvider provideGetTalkPage_bad + * @covers Title::getTalkPageIfDefined + */ + public function testGetTalkPageIfDefined_bad( Title $title ) { + $talk = $title->getTalkPageIfDefined(); + $this->assertNull( + $talk, + $title->getPrefixedDBKey() + ); + } + public function provideCreateFragmentTitle() { return [ [ Title::makeTitle( NS_MAIN, 'Test' ), 'foo' ],