Testcases for isValidUserName method of User.php.
authorSanthosh Thottingal <santhosh@users.mediawiki.org>
Tue, 11 Oct 2011 09:17:36 +0000 (09:17 +0000)
committerSanthosh Thottingal <santhosh@users.mediawiki.org>
Tue, 11 Oct 2011 09:17:36 +0000 (09:17 +0000)
There are many cases this method will fail for non-latin languages,
but not added now since there are bugs reported on that already and results
a rewrite of the method as per UAX 31 standard.

tests/phpunit/includes/UserTest.php

index 99b6e7f..bc87ede 100644 (file)
@@ -164,4 +164,22 @@ 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
+       }
+
 }