3 namespace MediaWiki\Tests\Api
;
5 use MediaWiki\Api\ApiCreateTempUserTrait
;
6 use MediaWiki\HookContainer\HookRunner
;
7 use MediaWiki\Request\WebRequest
;
8 use MediaWiki\User\User
;
9 use MediaWikiIntegrationTestCase
;
10 use Wikimedia\TestingAccessWrapper
;
13 * @covers \MediaWiki\Api\ApiCreateTempUserTrait
15 class ApiCreateTempUserTraitTest
extends MediaWikiIntegrationTestCase
{
18 * @dataProvider provideGetTempUserRedirectUrl
20 public function testGetTempUserRedirectUrl( $params, $expected ) {
21 $this->setTemporaryHook(
22 'TempUserCreatedRedirect',
31 $redirectUrl = $returnTo . $returnToQuery . $returnToAnchor;
36 $mock = $this->getMockForTrait( ApiCreateTempUserTrait
::class );
37 $mock->method( 'getHookRunner' )
38 ->willReturn( new HookRunner( $this->getServiceContainer()->getHookContainer() ) );
39 $mock->method( 'getRequest' )
40 ->willReturn( $this->createMock( WebRequest
::class ) );
42 $url = TestingAccessWrapper
::newFromObject( $mock )
43 ->getTempUserRedirectUrl( $params, $this->createMock( User
::class ) );
45 $this->assertSame( $expected, $url );
48 public static function provideGetTempUserRedirectUrl() {
53 'returntoquery' => '',
54 'returntoanchor' => '',
58 'Missing returnto' => [
61 'returntoquery' => '',
62 'returntoanchor' => '',
66 'Params are parsed correctly' => [
69 'returntoquery' => 'Query',
70 'returntoanchor' => 'Anchor',
74 'Params are parsed correctly with anchor #' => [
77 'returntoquery' => 'Query',
78 'returntoanchor' => '#Anchor',