diff options
Diffstat (limited to 'www/wiki/tests/phpunit/includes/auth/CreateFromLoginAuthenticationRequestTest.php')
-rw-r--r-- | www/wiki/tests/phpunit/includes/auth/CreateFromLoginAuthenticationRequestTest.php | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/www/wiki/tests/phpunit/includes/auth/CreateFromLoginAuthenticationRequestTest.php b/www/wiki/tests/phpunit/includes/auth/CreateFromLoginAuthenticationRequestTest.php new file mode 100644 index 00000000..d166caa6 --- /dev/null +++ b/www/wiki/tests/phpunit/includes/auth/CreateFromLoginAuthenticationRequestTest.php @@ -0,0 +1,57 @@ +<?php + +namespace MediaWiki\Auth; + +/** + * @group AuthManager + * @covers MediaWiki\Auth\CreateFromLoginAuthenticationRequest + */ +class CreateFromLoginAuthenticationRequestTest extends AuthenticationRequestTestCase { + + protected function getInstance( array $args = [] ) { + return new CreateFromLoginAuthenticationRequest( + null, [] + ); + } + + public function provideLoadFromSubmission() { + return [ + 'Empty request' => [ + [], + [], + [], + ], + ]; + } + + /** + * @dataProvider provideState + */ + public function testState( + $createReq, $maybeLink, $username, $loginState, $createState, $createPrimaryState + ) { + $req = new CreateFromLoginAuthenticationRequest( $createReq, $maybeLink ); + $this->assertSame( $username, $req->username ); + $this->assertSame( $loginState, $req->hasStateForAction( AuthManager::ACTION_LOGIN ) ); + $this->assertSame( $createState, $req->hasStateForAction( AuthManager::ACTION_CREATE ) ); + $this->assertFalse( $req->hasStateForAction( AuthManager::ACTION_LINK ) ); + $this->assertFalse( $req->hasPrimaryStateForAction( AuthManager::ACTION_LOGIN ) ); + $this->assertSame( $createPrimaryState, + $req->hasPrimaryStateForAction( AuthManager::ACTION_CREATE ) ); + } + + public static function provideState() { + $req1 = new UsernameAuthenticationRequest; + $req2 = new UsernameAuthenticationRequest; + $req2->username = 'Bob'; + + return [ + 'Nothing' => [ null, [], null, false, false, false ], + 'Link, no create' => [ null, [ $req2 ], null, true, true, false ], + 'No link, create but no name' => [ $req1, [], null, false, true, true ], + 'Link and create but no name' => [ $req1, [ $req2 ], null, true, true, true ], + 'No link, create with name' => [ $req2, [], 'Bob', false, true, true ], + 'Link and create with name' => [ $req2, [ $req2 ], 'Bob', true, true, true ], + ]; + } +} |