MediaWiki REL1_32
GenderCacheTest.php
Go to the documentation of this file.
1<?php
3
9
11 private static $nameMap;
12
13 function addDBDataOnce() {
14 // ensure the correct default gender
15 $this->mergeMwGlobalArrayValue( 'wgDefaultUserOptions', [ 'gender' => 'unknown' ] );
16
17 $male = $this->getMutableTestUser()->getUser();
18 $male->setOption( 'gender', 'male' );
19 $male->saveSettings();
20
21 $female = $this->getMutableTestUser()->getUser();
22 $female->setOption( 'gender', 'female' );
23 $female->saveSettings();
24
25 $default = $this->getMutableTestUser()->getUser();
26 $default->setOption( 'gender', null );
27 $default->saveSettings();
28
29 self::$nameMap = [
30 'UTMale' => $male->getName(),
31 'UTFemale' => $female->getName(),
32 'UTDefaultGender' => $default->getName()
33 ];
34 }
35
42 public function testUserName( $userKey, $expectedGender ) {
43 $genderCache = MediaWikiServices::getInstance()->getGenderCache();
44 $username = self::$nameMap[$userKey] ?? $userKey;
45 $gender = $genderCache->getGenderOf( $username );
46 $this->assertEquals( $gender, $expectedGender, "GenderCache normal" );
47 }
48
55 public function testUserObjects( $userKey, $expectedGender ) {
56 $username = self::$nameMap[$userKey] ?? $userKey;
57 $genderCache = MediaWikiServices::getInstance()->getGenderCache();
58 $gender = $genderCache->getGenderOf( $username );
59 $this->assertEquals( $gender, $expectedGender, "GenderCache normal" );
60 }
61
62 public static function provideUserGenders() {
63 return [
64 [ 'UTMale', 'male' ],
65 [ 'UTFemale', 'female' ],
66 [ 'UTDefaultGender', 'unknown' ],
67 [ 'UTNotExist', 'unknown' ],
68 // some not valid user
69 [ '127.0.0.1', 'unknown' ],
70 [ 'user@test', 'unknown' ],
71 ];
72 }
73
81 public function testStripSubpages( $userKey, $expectedGender ) {
82 $username = self::$nameMap[$userKey] ?? $userKey;
83 $genderCache = MediaWikiServices::getInstance()->getGenderCache();
84 $gender = $genderCache->getGenderOf( "$username/subpage" );
85 $this->assertEquals( $gender, $expectedGender, "GenderCache must strip of subpages" );
86 }
87}
Database Cache.
testStripSubpages( $userKey, $expectedGender)
test strip of subpages to avoid unnecessary queries against the never existing username
static string[] $nameMap
User key => username.
static provideUserGenders()
testUserObjects( $userKey, $expectedGender)
genderCache should work with user objects, too
testUserName( $userKey, $expectedGender)
test usernames
Base class that store and restore the Language objects.
static getMutableTestUser( $groups=[])
Convenience method for getting a mutable test user.
mergeMwGlobalArrayValue( $name, $values)
Merges the given values into a MW global array variable.
MediaWikiServices is the service locator for the application scope of MediaWiki.
this hook is for auditing only or null if authentication failed before getting that far $username
Definition hooks.txt:815