From 15cff8574822686554cfdcc3038bfc36449990a3 Mon Sep 17 00:00:00 2001 From: Amir Sarabadani Date: Fri, 9 Mar 2018 20:32:41 +0100 Subject: [PATCH] Add ExternalUserNames::getLocal() to get local part of username Bug: T189320 Change-Id: I99908ced218c45ecbb23f390f065170292f153b4 --- includes/user/ExternalUserNames.php | 14 +++++++++++++ .../includes/user/ExternalUserNamesTest.php | 20 +++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/includes/user/ExternalUserNames.php b/includes/user/ExternalUserNames.php index f039d04ec1..f953b144d8 100644 --- a/includes/user/ExternalUserNames.php +++ b/includes/user/ExternalUserNames.php @@ -116,4 +116,18 @@ class ExternalUserNames { return strpos( $username, '>' ) !== false; } + /** + * Get local part of the user name + * + * @param string $username Username to get + * @return string + */ + public static function getLocal( $username ) { + if ( !self::isExternal( $username ) ) { + return $username; + } + + return substr( $username, strpos( $username, '>' ) + 1 ); + } + } diff --git a/tests/phpunit/includes/user/ExternalUserNamesTest.php b/tests/phpunit/includes/user/ExternalUserNamesTest.php index cf395f2427..429bda4625 100644 --- a/tests/phpunit/includes/user/ExternalUserNamesTest.php +++ b/tests/phpunit/includes/user/ExternalUserNamesTest.php @@ -108,4 +108,24 @@ class ExternalUserNamesTest extends MediaWikiTestCase { ); } + public function provideGetLocal() { + return [ + [ 'User1', 'User1' ], + [ '>User2', 'User2' ], + [ 'prefix>User3', 'User3' ], + [ 'prefix:>User4', 'User4' ], + ]; + } + + /** + * @covers ExternalUserNames::getLocal + * @dataProvider provideGetLocal + */ + public function testGetLocal( $username, $expected ) { + $this->assertSame( + $expected, + ExternalUserNames::getLocal( $username ) + ); + } + } -- 2.20.1