];
}
+ /**
+ * @covers Title::isValid
+ * @dataProvider provideIsValid
+ * @param Title $title
+ * @param bool $isValid
+ */
+ public function testIsValid( Title $title, $isValid ) {
+ $this->assertEquals( $isValid, $title->isValid(), $title->getPrefixedText() );
+ }
+
+ public static function provideIsValid() {
+ return [
+ [ Title::makeTitle( NS_MAIN, '' ), false ],
+ [ Title::makeTitle( NS_MAIN, '<>' ), false ],
+ [ Title::makeTitle( NS_MAIN, '|' ), false ],
+ [ Title::makeTitle( NS_MAIN, '#' ), false ],
+ [ Title::makeTitle( NS_MAIN, 'Test' ), true ],
+ [ Title::makeTitle( -33, 'Test' ), false ],
+ [ Title::makeTitle( 77663399, 'Test' ), false ],
+ ];
+ }
+
/**
* @covers Title::isAlwaysKnown
*/
$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' ],