3 use MediaWiki\Interwiki\InterwikiLookup
;
6 * @covers ExternalUserNames
8 class ExternalUserNamesTest
extends MediaWikiTestCase
{
10 public function provideGetUserLinkTitle() {
12 [ 'valid:>User1', Title
::makeTitle( NS_MAIN
, ':User:User1', '', 'valid' ) ],
15 Title
::makeTitle( NS_MAIN
, 'valid::User:User1', '', 'valid' )
19 Title
::makeTitle( NS_SPECIAL
, 'Contributions/127.0.0.1', '', '' )
21 [ 'invalid:>User1', null ]
26 * @covers ExternalUserNames::getUserLinkTitle
27 * @dataProvider provideGetUserLinkTitle
29 public function testGetUserLinkTitle( $username, $expected ) {
30 $this->setContentLang( 'en' );
32 $interwikiLookupMock = $this->getMockBuilder( InterwikiLookup
::class )
35 $interwikiValueMap = [
39 $interwikiLookupMock->expects( $this->any() )
40 ->method( 'isValidInterwiki' )
41 ->will( $this->returnValueMap( $interwikiValueMap ) );
43 $this->setService( 'InterwikiLookup', $interwikiLookupMock );
47 ExternalUserNames
::getUserLinkTitle( $username )
51 public function provideApplyPrefix() {
53 [ 'User1', 'prefix', 'prefix>User1' ],
54 [ 'User1', 'prefix:>', 'prefix>User1' ],
55 [ 'User1', 'prefix:', 'prefix>User1' ],
60 * @covers ExternalUserNames::applyPrefix
61 * @dataProvider provideApplyPrefix
63 public function testApplyPrefix( $username, $prefix, $expected ) {
64 $externalUserNames = new ExternalUserNames( $prefix, true );
68 $externalUserNames->applyPrefix( $username )
72 public function provideAddPrefix() {
74 [ 'User1', 'prefix', 'prefix>User1' ],
75 [ 'User2', 'prefix2', 'prefix2>User2' ],
76 [ 'User3', 'prefix3', 'prefix3>User3' ],
81 * @covers ExternalUserNames::addPrefix
82 * @dataProvider provideAddPrefix
84 public function testAddPrefix( $username, $prefix, $expected ) {
85 $externalUserNames = new ExternalUserNames( $prefix, true );
89 $externalUserNames->addPrefix( $username )
93 public function provideIsExternal() {
97 [ 'prefix>User1', true ],
98 [ 'prefix:>User1', true ],
103 * @covers ExternalUserNames::isExternal
104 * @dataProvider provideIsExternal
106 public function testIsExternal( $username, $expected ) {
109 ExternalUserNames
::isExternal( $username )
113 public function provideGetLocal() {
115 [ 'User1', 'User1' ],
116 [ '>User2', 'User2' ],
117 [ 'prefix>User3', 'User3' ],
118 [ 'prefix:>User4', 'User4' ],
123 * @covers ExternalUserNames::getLocal
124 * @dataProvider provideGetLocal
126 public function testGetLocal( $username, $expected ) {
129 ExternalUserNames
::getLocal( $username )