1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
<?php
namespace MediaWiki\Auth;
/**
* @group AuthManager
* @covers MediaWiki\Auth\AuthenticationResponse
*/
class AuthenticationResponseTest extends \MediaWikiTestCase {
/**
* @dataProvider provideConstructors
* @param string $constructor
* @param array $args
* @param array|Exception $expect
*/
public function testConstructors( $constructor, $args, $expect ) {
if ( is_array( $expect ) ) {
$res = new AuthenticationResponse();
$res->messageType = 'warning';
foreach ( $expect as $field => $value ) {
$res->$field = $value;
}
$ret = call_user_func_array( "MediaWiki\\Auth\\AuthenticationResponse::$constructor", $args );
$this->assertEquals( $res, $ret );
} else {
try {
call_user_func_array( "MediaWiki\\Auth\\AuthenticationResponse::$constructor", $args );
$this->fail( 'Expected exception not thrown' );
} catch ( \Exception $ex ) {
$this->assertEquals( $expect, $ex );
}
}
}
public function provideConstructors() {
$req = $this->getMockForAbstractClass( AuthenticationRequest::class );
$msg = new \Message( 'mainpage' );
return [
[ 'newPass', [], [
'status' => AuthenticationResponse::PASS,
] ],
[ 'newPass', [ 'name' ], [
'status' => AuthenticationResponse::PASS,
'username' => 'name',
] ],
[ 'newPass', [ 'name', null ], [
'status' => AuthenticationResponse::PASS,
'username' => 'name',
] ],
[ 'newFail', [ $msg ], [
'status' => AuthenticationResponse::FAIL,
'message' => $msg,
'messageType' => 'error',
] ],
[ 'newRestart', [ $msg ], [
'status' => AuthenticationResponse::RESTART,
'message' => $msg,
] ],
[ 'newAbstain', [], [
'status' => AuthenticationResponse::ABSTAIN,
] ],
[ 'newUI', [ [ $req ], $msg ], [
'status' => AuthenticationResponse::UI,
'neededRequests' => [ $req ],
'message' => $msg,
'messageType' => 'warning',
] ],
[ 'newUI', [ [ $req ], $msg, 'warning' ], [
'status' => AuthenticationResponse::UI,
'neededRequests' => [ $req ],
'message' => $msg,
'messageType' => 'warning',
] ],
[ 'newUI', [ [ $req ], $msg, 'error' ], [
'status' => AuthenticationResponse::UI,
'neededRequests' => [ $req ],
'message' => $msg,
'messageType' => 'error',
] ],
[ 'newUI', [ [], $msg ],
new \InvalidArgumentException( '$reqs may not be empty' )
],
[ 'newRedirect', [ [ $req ], 'http://example.org/redir' ], [
'status' => AuthenticationResponse::REDIRECT,
'neededRequests' => [ $req ],
'redirectTarget' => 'http://example.org/redir',
] ],
[
'newRedirect',
[ [ $req ], 'http://example.org/redir', [ 'foo' => 'bar' ] ],
[
'status' => AuthenticationResponse::REDIRECT,
'neededRequests' => [ $req ],
'redirectTarget' => 'http://example.org/redir',
'redirectApiData' => [ 'foo' => 'bar' ],
]
],
[ 'newRedirect', [ [], 'http://example.org/redir' ],
new \InvalidArgumentException( '$reqs may not be empty' )
],
];
}
}
|