createMock( Language::class ); $contentLanguage->method( 'getNsIndex' ) ->willReturnCallback( static function ( $text ) { $text = strtolower( $text ); if ( $text === '' ) { return NS_MAIN; } $namespaces = [ 'talk' => NS_TALK, 'user' => NS_USER, ]; return $namespaces[ $text ] ?? false; } ); $factory = new NaiveForeignTitleFactory( $contentLanguage ); $testTitle = $factory->createForeignTitle( $title, $ns ); $this->assertEquals( $testTitle->isNamespaceIdKnown(), $foreignTitle->isNamespaceIdKnown() ); if ( $testTitle->isNamespaceIdKnown() && $foreignTitle->isNamespaceIdKnown() ) { $this->assertEquals( $testTitle->getNamespaceId(), $foreignTitle->getNamespaceId() ); } $this->assertEquals( $testTitle->getNamespaceName(), $foreignTitle->getNamespaceName() ); $this->assertEquals( $testTitle->getText(), $foreignTitle->getText() ); $this->assertEquals( str_replace( ' ', '_', $title ), $foreignTitle->getFullText() ); } }