setMwGlobals( [ 'wgLanguageCode' => 'en', 'wgContLang' => Language::factory( 'en' ), 'wgNamespacesWithSubpages' => [ 0 => false, 2 => true ], ] ); } public function basicProvider() { return [ [ new ForeignTitle( 0, '', 'MainNamespaceArticle' ), Title::newFromText( 'User:Graham' ), Title::newFromText( 'User:Graham/MainNamespaceArticle' ) ], [ new ForeignTitle( 1, 'Discussion', 'Nice_talk' ), Title::newFromText( 'User:Graham' ), Title::newFromText( 'User:Graham/Discussion:Nice_talk' ) ], [ new ForeignTitle( 0, '', 'Bogus:Nice_talk' ), Title::newFromText( 'User:Graham' ), Title::newFromText( 'User:Graham/Bogus:Nice_talk' ) ], ]; } /** * @dataProvider basicProvider */ public function testBasic( ForeignTitle $foreignTitle, Title $rootPage, Title $title ) { $factory = new SubpageImportTitleFactory( $rootPage ); $testTitle = $factory->createTitleFromForeignTitle( $foreignTitle ); $this->assertTrue( $testTitle->equals( $title ) ); } public function failureProvider() { return [ [ Title::newFromText( 'Graham' ), ], ]; } /** * @dataProvider failureProvider */ public function testFailures( Title $rootPage ) { $this->setExpectedException( 'MWException' ); new SubpageImportTitleFactory( $rootPage ); } }