Merge "ApiCSPReport: Log user ID instead of name, and limit urls to origin"
[lhc/web/wiklou.git] / tests / phpunit / includes / auth / CreateFromLoginAuthenticationRequestTest.php
1 <?php
2
3 namespace MediaWiki\Auth;
4
5 /**
6 * @group AuthManager
7 * @covers \MediaWiki\Auth\CreateFromLoginAuthenticationRequest
8 */
9 class CreateFromLoginAuthenticationRequestTest extends AuthenticationRequestTestCase {
10
11 protected function getInstance( array $args = [] ) {
12 return new CreateFromLoginAuthenticationRequest(
13 null, []
14 );
15 }
16
17 public function provideLoadFromSubmission() {
18 return [
19 'Empty request' => [
20 [],
21 [],
22 [],
23 ],
24 ];
25 }
26
27 /**
28 * @dataProvider provideState
29 */
30 public function testState(
31 $createReq, $maybeLink, $username, $loginState, $createState, $createPrimaryState
32 ) {
33 $req = new CreateFromLoginAuthenticationRequest( $createReq, $maybeLink );
34 $this->assertSame( $username, $req->username );
35 $this->assertSame( $loginState, $req->hasStateForAction( AuthManager::ACTION_LOGIN ) );
36 $this->assertSame( $createState, $req->hasStateForAction( AuthManager::ACTION_CREATE ) );
37 $this->assertFalse( $req->hasStateForAction( AuthManager::ACTION_LINK ) );
38 $this->assertFalse( $req->hasPrimaryStateForAction( AuthManager::ACTION_LOGIN ) );
39 $this->assertSame( $createPrimaryState,
40 $req->hasPrimaryStateForAction( AuthManager::ACTION_CREATE ) );
41 }
42
43 public static function provideState() {
44 $req1 = new UsernameAuthenticationRequest;
45 $req2 = new UsernameAuthenticationRequest;
46 $req2->username = 'Bob';
47
48 return [
49 'Nothing' => [ null, [], null, false, false, false ],
50 'Link, no create' => [ null, [ $req2 ], null, true, true, false ],
51 'No link, create but no name' => [ $req1, [], null, false, true, true ],
52 'Link and create but no name' => [ $req1, [ $req2 ], null, true, true, true ],
53 'No link, create with name' => [ $req2, [], 'Bob', false, true, true ],
54 'Link and create with name' => [ $req2, [ $req2 ], 'Bob', true, true, true ],
55 ];
56 }
57 }