From 462319d0899dd6147b1e816c3c35c5d91c050289 Mon Sep 17 00:00:00 2001 From: Santhosh Thottingal Date: Tue, 11 Oct 2011 10:25:58 +0000 Subject: [PATCH] Use dataProvider for the testIsValidUserName method. Followup r99466 --- tests/phpunit/includes/UserTest.php | 37 +++++++++++++++++------------ 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/tests/phpunit/includes/UserTest.php b/tests/phpunit/includes/UserTest.php index eb2f0d1ede..19b72f82d2 100644 --- a/tests/phpunit/includes/UserTest.php +++ b/tests/phpunit/includes/UserTest.php @@ -165,21 +165,28 @@ class UserTest extends MediaWikiTestCase { ); } - public function testIsValidUserName() { - $this->assertFalse( $this->user->isValidUserName( '' ) ); - $this->assertFalse( $this->user->isValidUserName( ' ' ) ); - $this->assertFalse( $this->user->isValidUserName( 'abcd' ) ); - $this->assertFalse( $this->user->isValidUserName( 'Ab/cd' ) ); - $this->assertTrue( $this->user->isValidUserName( 'Ab cd' ) ); // Whitespace - $this->assertFalse( $this->user->isValidUserName( '192.168.1.1' ) ); // IP - $this->assertFalse( $this->user->isValidUserName( 'User:Abcd' ) ); // Reserved Namespace - $this->assertTrue( $this->user->isValidUserName( '12abcd232' ) ); - $this->assertTrue( $this->user->isValidUserName( '12abcd.232' ) ); - $this->assertTrue( $this->user->isValidUserName( '?abcd' ) ); - $this->assertFalse( $this->user->isValidUserName( '#abcd' ) ); - $this->assertTrue( $this->user->isValidUserName( 'Abcdകഖഗഘ' ) ); // Mixed scripts - $this->assertFalse( $this->user->isValidUserName( 'ജോസ്‌തോമസ്' ) ); // ZWNJ - $this->assertFalse( $this->user->isValidUserName( 'Ab cd' ) ); // Ideographic space + /** + * @dataProvider provideUserNames + */ + public function testIsValidUserName( $username, $result, $message ) { + $this->assertEquals( $this->user->isValidUserName( $username ), $result, $message ); } + public function provideUserNames() { + return array( + array( '', false, 'Empty string' ), + array( ' ', false, 'Blank space' ), + array( 'abcd', false, 'Starts with small letter' ), + array( 'Ab/cd', false, 'Contains slash' ), + array( 'Ab cd' , true, 'Whitespace' ), + array( '192.168.1.1', false, 'IP' ), + array( 'User:Abcd', false, 'Reserved Namespace' ), + array( '12abcd232' , true , 'Starts with Numbers' ), + array( '?abcd' , true, 'Start with ? mark' ), + array( '#abcd', false, 'Start with #' ), + array( 'Abcdകഖഗഘ', true, ' Mixed scripts' ), + array( 'ജോസ്‌തോമസ്', false, 'ZWNJ- Format control character' ), + array( 'Ab cd', false, ' Ideographic space' ), + ); + } } -- 2.20.1