From: Timo Tijhof Date: Tue, 1 Jul 2014 16:31:07 +0000 (+0200) Subject: UserTest: Cover User::isIP and User::isValidUserName better X-Git-Tag: 1.31.0-rc.0~15140^2 X-Git-Url: https://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/banques/?a=commitdiff_plain;h=2e3b1076c09c66f9627254749d85cc67f64cb014;p=lhc%2Fweb%2Fwiklou.git UserTest: Cover User::isIP and User::isValidUserName better Change-Id: I4663c37871492c1415152b2af0fda4f6de4f212f --- diff --git a/tests/phpunit/includes/UserTest.php b/tests/phpunit/includes/UserTest.php index a19d035baf..36de114ead 100644 --- a/tests/phpunit/includes/UserTest.php +++ b/tests/phpunit/includes/UserTest.php @@ -125,6 +125,31 @@ class UserTest extends MediaWikiTestCase { ); } + /** + * @dataProvider provideIPs + * @covers User::isIP + */ + public function testIsIP( $value, $result, $message ) { + $this->assertEquals( $this->user->isIP( $value ), $result, $message ); + } + + public static function provideIPs() { + return array( + array( '', false, 'Empty string' ), + array( ' ', false, 'Blank space' ), + array( '10.0.0.0', true, 'IPv4 private 10/8' ), + array( '10.255.255.255', true, 'IPv4 private 10/8' ), + array( '192.168.1.1', true, 'IPv4 private 192.168/16' ), + array( '203.0.113.0', true, 'IPv4 example' ), + array( '2002:ffff:ffff:ffff:ffff:ffff:ffff:ffff', true, 'IPv6 example' ), + // Not valid IPs but classified as such by MediaWiki for negated asserting + // of whether this might be the identifier of a logged-out user or whether + // to allow usernames like it. + array( '300.300.300.300', true, 'Looks too much like an IPv4 address' ), + array( '203.0.113.xxx', true, 'Assigned by UseMod to cloaked logged-out users' ), + ); + } + /** * @dataProvider provideUserNames * @covers User::isValidUserName @@ -148,6 +173,9 @@ class UserTest extends MediaWikiTestCase { array( 'Abcdകഖഗഘ', true, ' Mixed scripts' ), array( 'ജോസ്‌തോമസ്', false, 'ZWNJ- Format control character' ), array( 'Ab cd', false, ' Ideographic space' ), + array( '300.300.300.300', false, 'Looks too much like an IPv4 address' ), + array( '302.113.311.900', false, 'Looks too much like an IPv4 address' ), + array( '203.0.113.xxx', false, 'Reserved for usage by UseMod for cloaked logged-out users' ), ); } @@ -157,7 +185,7 @@ class UserTest extends MediaWikiTestCase { * Extensions and core */ public function testAllRightsWithMessage() { - //Getting all user rights, for core: User::$mCoreRights, for extensions: $wgAvailableRights + // Getting all user rights, for core: User::$mCoreRights, for extensions: $wgAvailableRights $allRights = User::getAllRights(); $allMessageKeys = Language::getMessageKeysFor( 'en' );