Localisation updates from https://translatewiki.net.
[mediawiki.git] / tests / phpunit / includes / api / ApiCreateTempUserTraitTest.php
blobeb6fab576f740d30d2a8275021b985b33a2bba82
1 <?php
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;
12 /**
13 * @covers \MediaWiki\Api\ApiCreateTempUserTrait
15 class ApiCreateTempUserTraitTest extends MediaWikiIntegrationTestCase {
17 /**
18 * @dataProvider provideGetTempUserRedirectUrl
20 public function testGetTempUserRedirectUrl( $params, $expected ) {
21 $this->setTemporaryHook(
22 'TempUserCreatedRedirect',
23 static function (
24 $session,
25 $user,
26 $returnTo,
27 $returnToQuery,
28 $returnToAnchor,
29 &$redirectUrl
30 ) {
31 $redirectUrl = $returnTo . $returnToQuery . $returnToAnchor;
32 return false;
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() {
49 return [
50 'Default params' => [
52 'returnto' => '',
53 'returntoquery' => '',
54 'returntoanchor' => '',
56 '',
58 'Missing returnto' => [
60 'returnto' => null,
61 'returntoquery' => '',
62 'returntoanchor' => '',
64 '',
66 'Params are parsed correctly' => [
68 'returnto' => 'Base',
69 'returntoquery' => 'Query',
70 'returntoanchor' => 'Anchor',
72 'BaseQuery#Anchor',
74 'Params are parsed correctly with anchor #' => [
76 'returnto' => 'Base',
77 'returntoquery' => 'Query',
78 'returntoanchor' => '#Anchor',
80 'BaseQuery#Anchor',