3 namespace MediaWiki\Auth
;
7 * @covers \MediaWiki\Auth\UserDataAuthenticationRequest
9 class UserDataAuthenticationRequestTest
extends AuthenticationRequestTestCase
{
11 protected function getInstance( array $args = [] ) {
12 return new UserDataAuthenticationRequest
;
15 protected function setUp() {
17 $this->setMwGlobals( 'wgHiddenPrefs', [] );
21 * @dataProvider providePopulateUser
22 * @param string $email Email to set
23 * @param string $realname Realname to set
24 * @param StatusValue $expect Expected return
26 public function testPopulateUser( $email, $realname, $expect ) {
28 $user->setEmail( 'default@example.com' );
29 $user->setRealName( 'Fake Name' );
31 $req = new UserDataAuthenticationRequest
;
33 $req->realname
= $realname;
34 $this->assertEquals( $expect, $req->populateUser( $user ) );
35 if ( $expect->isOk() ) {
36 $this->assertSame( $email ?
: 'default@example.com', $user->getEmail() );
37 $this->assertSame( $realname ?
: 'Fake Name', $user->getRealName() );
41 public static function providePopulateUser() {
42 $good = \StatusValue
::newGood();
44 [ 'email@example.com', 'Real Name', $good ],
45 [ 'email@example.com', '', $good ],
46 [ '', 'Real Name', $good ],
48 [ 'invalid-email', 'Real Name', \StatusValue
::newFatal( 'invalidemailaddress' ) ],
53 * @dataProvider provideLoadFromSubmission
55 public function testLoadFromSubmission(
56 array $args, array $data, $expectState, $hiddenPref = null, $enableEmail = null
58 $this->setMwGlobals( 'wgHiddenPrefs', $hiddenPref );
59 $this->setMwGlobals( 'wgEnableEmail', $enableEmail );
60 parent
::testLoadFromSubmission( $args, $data, $expectState );
63 public function provideLoadFromSubmission() {
65 $hidden = [ 'realname' ];
68 'Empty request, unhidden, email enabled' => [
75 'email + realname, unhidden, email enabled' => [
77 $data = [ 'email' => 'Email', 'realname' => 'Name' ],
82 'email empty, unhidden, email enabled' => [
84 $data = [ 'email' => '', 'realname' => 'Name' ],
89 'email omitted, unhidden, email enabled' => [
91 [ 'realname' => 'Name' ],
96 'realname empty, unhidden, email enabled' => [
98 $data = [ 'email' => 'Email', 'realname' => '' ],
103 'realname omitted, unhidden, email enabled' => [
105 [ 'email' => 'Email' ],
110 'Empty request, hidden, email enabled' => [
117 'email + realname, hidden, email enabled' => [
119 [ 'email' => 'Email', 'realname' => 'Name' ],
120 [ 'email' => 'Email' ],
124 'email empty, hidden, email enabled' => [
126 $data = [ 'email' => '', 'realname' => 'Name' ],
131 'email omitted, hidden, email enabled' => [
133 [ 'realname' => 'Name' ],
138 'realname empty, hidden, email enabled' => [
140 $data = [ 'email' => 'Email', 'realname' => '' ],
141 [ 'email' => 'Email' ],
145 'realname omitted, hidden, email enabled' => [
147 [ 'email' => 'Email' ],
148 [ 'email' => 'Email' ],
152 'email + realname, unhidden, email disabled' => [
154 [ 'email' => 'Email', 'realname' => 'Name' ],
155 [ 'realname' => 'Name' ],
159 'email omitted, unhidden, email disabled' => [
161 [ 'realname' => 'Name' ],
162 [ 'realname' => 'Name' ],
166 'email empty, unhidden, email disabled' => [
168 [ 'email' => '', 'realname' => 'Name' ],
169 [ 'realname' => 'Name' ],