);
}
+ 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 function provideCreateFragmentTitle() {
return [
[ Title::makeTitle( NS_MAIN, 'Test' ), 'foo' ],
return [
// ns = 0
[
- Title::makeTitle( NS_MAIN, 'Foobar' ),
- 'Foobar'
+ Title::makeTitle( NS_MAIN, 'Foo bar' ),
+ 'Foo bar'
],
// ns = 2
[
- Title::makeTitle( NS_USER, 'Foobar' ),
- 'User:Foobar'
+ Title::makeTitle( NS_USER, 'Foo bar' ),
+ 'User:Foo bar'
+ ],
+ // ns = 3
+ [
+ Title::makeTitle( NS_USER_TALK, 'Foo bar' ),
+ 'User talk:Foo bar'
],
// fragment not included
[
- Title::makeTitle( NS_MAIN, 'Foobar', 'fragment' ),
- 'Foobar'
+ Title::makeTitle( NS_MAIN, 'Foo bar', 'fragment' ),
+ 'Foo bar'
],
// ns = -2
[
- Title::makeTitle( NS_MEDIA, 'Foobar' ),
- 'Media:Foobar'
+ Title::makeTitle( NS_MEDIA, 'Foo bar' ),
+ 'Media:Foo bar'
],
// non-existent namespace
[
- Title::makeTitle( 100000, 'Foobar' ),
- ':Foobar'
+ Title::makeTitle( 100777, 'Foo bar' ),
+ 'Special:Badtitle/NS100777:Foo bar'
],
];
}
public function testGetPrefixedText( Title $title, $expected ) {
$this->assertEquals( $expected, $title->getPrefixedText() );
}
+
+ public function provideGetPrefixedDBKey() {
+ return [
+ // ns = 0
+ [
+ Title::makeTitle( NS_MAIN, 'Foo_bar' ),
+ 'Foo_bar'
+ ],
+ // ns = 2
+ [
+ Title::makeTitle( NS_USER, 'Foo_bar' ),
+ 'User:Foo_bar'
+ ],
+ // ns = 3
+ [
+ Title::makeTitle( NS_USER_TALK, 'Foo_bar' ),
+ 'User_talk:Foo_bar'
+ ],
+ // fragment not included
+ [
+ Title::makeTitle( NS_MAIN, 'Foo_bar', 'fragment' ),
+ 'Foo_bar'
+ ],
+ // ns = -2
+ [
+ Title::makeTitle( NS_MEDIA, 'Foo_bar' ),
+ 'Media:Foo_bar'
+ ],
+ // non-existent namespace
+ [
+ Title::makeTitle( 100777, 'Foo_bar' ),
+ 'Special:Badtitle/NS100777:Foo_bar'
+ ],
+ ];
+ }
+
+ /**
+ * @covers Title::getPrefixedDBKey
+ * @dataProvider provideGetPrefixedDBKey
+ */
+ public function testGetPrefixedDBKey( Title $title, $expected ) {
+ $this->assertEquals( $expected, $title->getPrefixedDBkey() );
+ }
}