]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blob - tests/phpunit/includes/auth/CreateFromLoginAuthenticationRequestTest.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.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 }