From: daniel Date: Wed, 22 May 2019 20:12:11 +0000 (+0200) Subject: Make userLink() not fail too hard on false and null. X-Git-Tag: 1.34.0-rc.0~1523 X-Git-Url: http://git.cyclocoop.org/%24image?a=commitdiff_plain;h=e9e50ad014e64113f0f7ba1f36fe7cc823959da9;p=lhc%2Fweb%2Fwiklou.git Make userLink() not fail too hard on false and null. This works around an issue in Flow, which sometimes passes false for a user name. Bug: T224095 Change-Id: I14dc52f7199012dc35605f3170b06eb1719165a7 --- diff --git a/includes/Linker.php b/includes/Linker.php index eb7a44f6b4..ae50c66ff2 100644 --- a/includes/Linker.php +++ b/includes/Linker.php @@ -894,7 +894,7 @@ class Linker { * @since 1.16.3. $altUserName was added in 1.19. */ public static function userLink( $userId, $userName, $altUserName = false ) { - if ( $userName === '' ) { + if ( $userName === '' || $userName === false || $userName === null ) { wfDebug( __METHOD__ . ' received an empty username. Are there database errors ' . 'that need to be fixed?' ); return wfMessage( 'empty-username' )->parse(); diff --git a/tests/phpunit/includes/LinkerTest.php b/tests/phpunit/includes/LinkerTest.php index c700d5fead..fe325075d5 100644 --- a/tests/phpunit/includes/LinkerTest.php +++ b/tests/phpunit/includes/LinkerTest.php @@ -14,11 +14,11 @@ class LinkerTest extends MediaWikiLangTestCase { ] ); // We'd also test the warning, but injecting a mock logger into a static method is tricky. - if ( $userName === '' ) { + if ( !$userName ) { Wikimedia\suppressWarnings(); } $actual = Linker::userLink( $userId, $userName, $altUserName ); - if ( $userName === '' ) { + if ( !$userName ) { Wikimedia\restoreWarnings(); } @@ -37,6 +37,9 @@ class LinkerTest extends MediaWikiLangTestCase { 'Empty username, userid 0' => [ '(no username available)', 0, '' ], 'Empty username, userid > 0' => [ '(no username available)', 73, '' ], + 'false instead of username' => [ '(no username available)', 73, false ], + 'null instead of username' => [ '(no username available)', 0, null ], + # ## ANONYMOUS USER ######################################## [ '