diff options
author | Thalia <thalia.e.chan@googlemail.com> | 2023-11-06 15:58:01 +0000 |
---|---|---|
committer | Thalia <thalia.e.chan@googlemail.com> | 2023-11-06 15:58:01 +0000 |
commit | c808e98ee2e17f158f78c550e6dc9f8708fb45e9 (patch) | |
tree | 241640cbc81f24a70ec486d828c2d3c39e4bbc43 /tests/phpunit/includes/api/ApiCreateTempUserTraitTest.php | |
parent | 645915bf0f1e70b23dc770f07b5139d2a64f5e31 (diff) | |
download | mediawikicore-c808e98ee2e17f158f78c550e6dc9f8708fb45e9.tar.gz mediawikicore-c808e98ee2e17f158f78c550e6dc9f8708fb45e9.zip |
Add test for ApiCreateTempUserTrait
Bug: T349223
Change-Id: Idcce57a45357c64df099b5c1297bf6ad61d46957
Diffstat (limited to 'tests/phpunit/includes/api/ApiCreateTempUserTraitTest.php')
-rw-r--r-- | tests/phpunit/includes/api/ApiCreateTempUserTraitTest.php | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/tests/phpunit/includes/api/ApiCreateTempUserTraitTest.php b/tests/phpunit/includes/api/ApiCreateTempUserTraitTest.php new file mode 100644 index 000000000000..1a4d50753e8e --- /dev/null +++ b/tests/phpunit/includes/api/ApiCreateTempUserTraitTest.php @@ -0,0 +1,79 @@ +<?php + +use MediaWiki\HookContainer\HookRunner; +use MediaWiki\Request\WebRequest; +use Wikimedia\TestingAccessWrapper; + +/** + * @covers ApiCreateTempUserTrait + */ +class ApiCreateTempUserTraitTest extends MediaWikiIntegrationTestCase { + + /** + * @dataProvider provideGetTempUserRedirectUrl + */ + public function testGetTempUserRedirectUrl( $params, $expected ) { + $this->setTemporaryHook( + 'TempUserCreatedRedirect', + static function ( + $session, + $user, + $returnTo, + $returnToQuery, + $returnToAnchor, + &$redirectUrl + ) { + $redirectUrl = $returnTo . $returnToQuery . $returnToAnchor; + return false; + } + ); + + $mock = $this->getMockForTrait( ApiCreateTempUserTrait::class ); + $mock->method( 'getHookRunner' ) + ->willReturn( new HookRunner( $this->getServiceContainer()->getHookContainer() ) ); + $mock->method( 'getRequest' ) + ->willReturn( $this->createMock( WebRequest::class ) ); + + $url = TestingAccessWrapper::newFromObject( $mock ) + ->getTempUserRedirectUrl( $params, $this->createMock( User::class ) ); + + $this->assertSame( $expected, $url ); + } + + public static function provideGetTempUserRedirectUrl() { + return [ + 'Default params' => [ + [ + 'returnto' => '', + 'returntoquery' => '', + 'returntoanchor' => '', + ], + '', + ], + 'Missing returnto' => [ + [ + 'returnto' => null, + 'returntoquery' => '', + 'returntoanchor' => '', + ], + '', + ], + 'Params are parsed correctly' => [ + [ + 'returnto' => 'Base', + 'returntoquery' => 'Query', + 'returntoanchor' => 'Anchor', + ], + 'BaseQuery#Anchor', + ], + 'Params are parsed correctly with anchor #' => [ + [ + 'returnto' => 'Base', + 'returntoquery' => 'Query', + 'returntoanchor' => '#Anchor', + ], + 'BaseQuery#Anchor', + ], + ]; + } +} |