MediaWiki REL1_31
PasswordAuthenticationRequestTest.php
Go to the documentation of this file.
1<?php
2
3namespace MediaWiki\Auth;
4
10
11 protected function getInstance( array $args = [] ) {
13 $ret->action = $args[0];
14 return $ret;
15 }
16
17 public static function provideGetFieldInfo() {
18 return [
23 ];
24 }
25
26 public function testGetFieldInfo2() {
27 $info = [];
28 foreach ( [
33 ] as $action ) {
35 $req->action = $action;
36 $info[$action] = $req->getFieldInfo();
37 }
38
39 $this->assertSame( [], $info[AuthManager::ACTION_REMOVE], 'No data needed to remove' );
40
41 $this->assertArrayNotHasKey( 'retype', $info[AuthManager::ACTION_LOGIN],
42 'No need to retype password on login' );
43 $this->assertArrayHasKey( 'retype', $info[AuthManager::ACTION_CREATE],
44 'Need to retype when creating new password' );
45 $this->assertArrayHasKey( 'retype', $info[AuthManager::ACTION_CHANGE],
46 'Need to retype when changing password' );
47
48 $this->assertNotEquals(
49 $info[AuthManager::ACTION_LOGIN]['password']['label'],
50 $info[AuthManager::ACTION_CHANGE]['password']['label'],
51 'Password field for change is differentiated from login'
52 );
53 $this->assertNotEquals(
54 $info[AuthManager::ACTION_CREATE]['password']['label'],
55 $info[AuthManager::ACTION_CHANGE]['password']['label'],
56 'Password field for change is differentiated from create'
57 );
58 $this->assertNotEquals(
59 $info[AuthManager::ACTION_CREATE]['retype']['label'],
60 $info[AuthManager::ACTION_CHANGE]['retype']['label'],
61 'Retype field for change is differentiated from create'
62 );
63 }
64
65 public function provideLoadFromSubmission() {
66 return [
67 'Empty request, login' => [
69 [],
70 false,
71 ],
72 'Empty request, change' => [
74 [],
75 false,
76 ],
77 'Empty request, remove' => [
79 [],
80 false,
81 ],
82 'Username + password, login' => [
84 $data = [ 'username' => 'User', 'password' => 'Bar' ],
85 $data + [ 'action' => AuthManager::ACTION_LOGIN ],
86 ],
87 'Username + password, change' => [
89 [ 'username' => 'User', 'password' => 'Bar' ],
90 false,
91 ],
92 'Username + password + retype' => [
94 [ 'username' => 'User', 'password' => 'Bar', 'retype' => 'baz' ],
95 [ 'password' => 'Bar', 'retype' => 'baz', 'action' => AuthManager::ACTION_CHANGE ],
96 ],
97 'Username empty, login' => [
99 [ 'username' => '', 'password' => 'Bar' ],
100 false,
101 ],
102 'Username empty, change' => [
104 [ 'username' => '', 'password' => 'Bar', 'retype' => 'baz' ],
105 [ 'password' => 'Bar', 'retype' => 'baz', 'action' => AuthManager::ACTION_CHANGE ],
106 ],
107 'Password empty, login' => [
109 [ 'username' => 'User', 'password' => '' ],
110 false,
111 ],
112 'Password empty, login, with retype' => [
114 [ 'username' => 'User', 'password' => '', 'retype' => 'baz' ],
115 false,
116 ],
117 'Retype empty' => [
119 [ 'username' => 'User', 'password' => 'Bar', 'retype' => '' ],
120 false,
121 ],
122 ];
123 }
124
125 public function testDescribeCredentials() {
128 $req->username = 'UTSysop';
129 $ret = $req->describeCredentials();
130 $this->assertInternalType( 'array', $ret );
131 $this->assertArrayHasKey( 'provider', $ret );
132 $this->assertInstanceOf( \Message::class, $ret['provider'] );
133 $this->assertSame( 'authmanager-provider-password', $ret['provider']->getKey() );
134 $this->assertArrayHasKey( 'account', $ret );
135 $this->assertInstanceOf( \Message::class, $ret['account'] );
136 $this->assertSame( [ 'UTSysop' ], $ret['account']->getParams() );
137 }
138}
if( $line===false) $args
Definition cdb.php:64
const ACTION_CHANGE
Change a user's credentials.
const ACTION_REMOVE
Remove a user's credentials.
const ACTION_LOGIN
Log in with an existing (not necessarily local) user.
const ACTION_CREATE
Create a new user.
AuthManager MediaWiki\Auth\PasswordAuthenticationRequest.
This is a value object for authentication requests with a username and password.
this hook is for auditing only $req
Definition hooks.txt:990
null means default in associative array with keys and values unescaped Should be merged with default with a value of false meaning to suppress the attribute in associative array with keys and values unescaped noclasses & $ret
Definition hooks.txt:2005