Pass phpcs-strict on some test files (11/11)
[mediawiki.git] / tests / phpunit / includes / cache / GenderCacheTest.php
blobce2db5d77a505a0a3d4771ef30c1d083489f205d
1 <?php
3 /**
4 * @group Database
5 * @group Cache
6 */
7 class GenderCacheTest extends MediaWikiLangTestCase {
9 protected function setUp() {
10 global $wgDefaultUserOptions;
11 parent::setUp();
12 //ensure the correct default gender
13 $wgDefaultUserOptions['gender'] = 'unknown';
16 function addDBData() {
17 $user = User::newFromName( 'UTMale' );
18 if ( $user->getID() == 0 ) {
19 $user->addToDatabase();
20 $user->setPassword( 'UTMalePassword' );
22 //ensure the right gender
23 $user->setOption( 'gender', 'male' );
24 $user->saveSettings();
26 $user = User::newFromName( 'UTFemale' );
27 if ( $user->getID() == 0 ) {
28 $user->addToDatabase();
29 $user->setPassword( 'UTFemalePassword' );
31 //ensure the right gender
32 $user->setOption( 'gender', 'female' );
33 $user->saveSettings();
35 $user = User::newFromName( 'UTDefaultGender' );
36 if ( $user->getID() == 0 ) {
37 $user->addToDatabase();
38 $user->setPassword( 'UTDefaultGenderPassword' );
40 //ensure the default gender
41 $user->setOption( 'gender', null );
42 $user->saveSettings();
45 /**
46 * test usernames
48 * @dataProvider provideUserGenders
49 * @covers GenderCache::getGenderOf
51 public function testUserName( $username, $expectedGender ) {
52 $genderCache = GenderCache::singleton();
53 $gender = $genderCache->getGenderOf( $username );
54 $this->assertEquals( $gender, $expectedGender, "GenderCache normal" );
57 /**
58 * genderCache should work with user objects, too
60 * @dataProvider provideUserGenders
61 * @covers GenderCache::getGenderOf
63 public function testUserObjects( $username, $expectedGender ) {
64 $genderCache = GenderCache::singleton();
65 $user = User::newFromName( $username );
66 $gender = $genderCache->getGenderOf( $user );
67 $this->assertEquals( $gender, $expectedGender, "GenderCache normal" );
70 public static function provideUserGenders() {
71 return array(
72 array( 'UTMale', 'male' ),
73 array( 'UTFemale', 'female' ),
74 array( 'UTDefaultGender', 'unknown' ),
75 array( 'UTNotExist', 'unknown' ),
76 //some not valid user
77 array( '127.0.0.1', 'unknown' ),
78 array( 'user@test', 'unknown' ),
82 /**
83 * test strip of subpages to avoid unnecessary queries
84 * against the never existing username
86 * @dataProvider provideStripSubpages
87 * @covers GenderCache::getGenderOf
89 public function testStripSubpages( $pageWithSubpage, $expectedGender ) {
90 $genderCache = GenderCache::singleton();
91 $gender = $genderCache->getGenderOf( $pageWithSubpage );
92 $this->assertEquals( $gender, $expectedGender, "GenderCache must strip of subpages" );
95 public static function provideStripSubpages() {
96 return array(
97 array( 'UTMale/subpage', 'male' ),
98 array( 'UTFemale/subpage', 'female' ),
99 array( 'UTDefaultGender/subpage', 'unknown' ),
100 array( 'UTNotExist/subpage', 'unknown' ),
101 array( '127.0.0.1/subpage', 'unknown' ),