MediaWiki  REL1_20
GenderCacheTest.php
Go to the documentation of this file.
00001 <?php
00002 
00007 class GenderCacheTest extends MediaWikiLangTestCase {
00008 
00009         function setUp() {
00010                 global $wgDefaultUserOptions;
00011                 parent::setUp();
00012                 //ensure the correct default gender
00013                 $wgDefaultUserOptions['gender'] = 'unknown';
00014         }
00015 
00016         function addDBData() {
00017                 $user = User::newFromName( 'UTMale' );
00018                 if( $user->getID() == 0 ) {
00019                         $user->addToDatabase();
00020                         $user->setPassword( 'UTMalePassword' );
00021                 }
00022                 //ensure the right gender
00023                 $user->setOption( 'gender', 'male' );
00024                 $user->saveSettings();
00025 
00026                 $user = User::newFromName( 'UTFemale' );
00027                 if( $user->getID() == 0 ) {
00028                         $user->addToDatabase();
00029                         $user->setPassword( 'UTFemalePassword' );
00030                 }
00031                 //ensure the right gender
00032                 $user->setOption( 'gender', 'female' );
00033                 $user->saveSettings();
00034 
00035                 $user = User::newFromName( 'UTDefaultGender' );
00036                 if( $user->getID() == 0 ) {
00037                         $user->addToDatabase();
00038                         $user->setPassword( 'UTDefaultGenderPassword' );
00039                 }
00040                 //ensure the default gender
00041                 $user->setOption( 'gender', null );
00042                 $user->saveSettings();
00043         }
00044 
00050         function testUserName( $username, $expectedGender ) {
00051                 $genderCache = GenderCache::singleton();
00052                 $gender = $genderCache->getGenderOf( $username );
00053                 $this->assertEquals( $gender, $expectedGender, "GenderCache normal" );
00054         }
00055 
00061         function testUserObjects( $username, $expectedGender ) {
00062                 $genderCache = GenderCache::singleton();
00063                 $user = User::newFromName( $username );
00064                 $gender = $genderCache->getGenderOf( $user );
00065                 $this->assertEquals( $gender, $expectedGender, "GenderCache normal" );
00066         }
00067 
00068         function dataUserName() {
00069                 return array(
00070                         array( 'UTMale', 'male' ),
00071                         array( 'UTFemale', 'female' ),
00072                         array( 'UTDefaultGender', 'unknown' ),
00073                         array( 'UTNotExist', 'unknown' ),
00074                         //some not valid user
00075                         array( '127.0.0.1', 'unknown' ),
00076                         array( 'user@test', 'unknown' ),
00077                 );
00078         }
00079 
00086         function testStripSubpages( $pageWithSubpage, $expectedGender ) {
00087                 $genderCache = GenderCache::singleton();
00088                 $gender = $genderCache->getGenderOf( $pageWithSubpage );
00089                 $this->assertEquals( $gender, $expectedGender, "GenderCache must strip of subpages" );
00090         }
00091 
00092         function dataStripSubpages() {
00093                 return array(
00094                         array( 'UTMale/subpage', 'male' ),
00095                         array( 'UTFemale/subpage', 'female' ),
00096                         array( 'UTDefaultGender/subpage', 'unknown' ),
00097                         array( 'UTNotExist/subpage', 'unknown' ),
00098                         array( '127.0.0.1/subpage', 'unknown' ),
00099                 );
00100         }
00101 }