aboutsummaryrefslogtreecommitdiffstats
path: root/tests/phpunit/includes/api/ApiCreateTempUserTraitTest.php
diff options
context:
space:
mode:
authorThalia <thalia.e.chan@googlemail.com>2023-11-06 15:58:01 +0000
committerThalia <thalia.e.chan@googlemail.com>2023-11-06 15:58:01 +0000
commitc808e98ee2e17f158f78c550e6dc9f8708fb45e9 (patch)
tree241640cbc81f24a70ec486d828c2d3c39e4bbc43 /tests/phpunit/includes/api/ApiCreateTempUserTraitTest.php
parent645915bf0f1e70b23dc770f07b5139d2a64f5e31 (diff)
downloadmediawikicore-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.php79
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',
+ ],
+ ];
+ }
+}