+ 'Relative link has no talk page' => [
+ Title::makeTitle( NS_MAIN, '', 'Kittens' ), false
+ ],
+ 'Interwiki link has no talk page' => [
+ Title::makeTitle( NS_MAIN, 'Kittens', '', 'acme' ), false
+ ],
+ ];
+ }
+
+ public function provideIsWatchable() {
+ return [
+ 'User page is watchable' => [
+ Title::makeTitle( NS_USER, 'Jane' ), true
+ ],
+ 'Talke page is watchable' => [
+ Title::makeTitle( NS_TALK, 'Foo' ), true
+ ],
+ 'Special page is not watchable' => [
+ Title::makeTitle( NS_SPECIAL, 'Thing' ), false
+ ],
+ 'Virtual namespace is not watchable' => [
+ Title::makeTitle( NS_MEDIA, 'Kitten.jpg' ), false
+ ],
+ 'Relative link is not watchable' => [
+ Title::makeTitle( NS_MAIN, '', 'Kittens' ), false
+ ],
+ 'Interwiki link is not watchable' => [
+ Title::makeTitle( NS_MAIN, 'Kittens', '', 'acme' ), false
+ ],
+ ];
+ }
+
+ 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' ) ],
+ ];
+ }
+
+ public static function provideGetTalkPage_bad() {
+ return [
+ [ Title::makeTitle( NS_SPECIAL, 'Test' ) ],
+ [ Title::makeTitle( NS_MEDIA, 'Test' ) ],
+ [ Title::makeTitle( NS_MAIN, '', 'Kittens' ) ],
+ [ Title::makeTitle( NS_MAIN, 'Kittens', '', 'acme' ) ],
+ ];
+ }
+
+ public static function provideGetSubjectPage_good() {
+ return [
+ [ Title::makeTitle( NS_TALK, 'Test' ), Title::makeTitle( NS_MAIN, 'Test' ) ],
+ [ Title::makeTitle( NS_MAIN, 'Test' ), Title::makeTitle( NS_MAIN, 'Test' ) ],
+ ];
+ }
+
+ public static function provideGetOtherPage_good() {
+ return [
+ [ Title::makeTitle( NS_MAIN, 'Test' ), Title::makeTitle( NS_TALK, 'Test' ) ],
+ [ Title::makeTitle( NS_TALK, 'Test' ), Title::makeTitle( NS_MAIN, 'Test' ) ],