File: UserRegistrationLookupIntegrationTest.php

package info (click to toggle)
mediawiki 1%3A1.43.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 417,464 kB
  • sloc: php: 1,062,949; javascript: 664,290; sql: 9,714; python: 5,458; xml: 3,489; sh: 1,131; makefile: 64
file content (70 lines) | stat: -rw-r--r-- 2,012 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php

namespace MediaWiki\Tests\User\Registration;

use MediaWiki\Config\ConfigException;
use MediaWiki\MainConfigNames;
use MediaWiki\User\Registration\IUserRegistrationProvider;
use MediaWiki\User\Registration\UserRegistrationLookup;
use MediaWiki\User\UserIdentity;
use MediaWikiIntegrationTestCase;

/**
 * @covers \MediaWiki\User\Registration\UserRegistrationLookup
 * @group Database
 */
class UserRegistrationLookupIntegrationTest extends MediaWikiIntegrationTestCase {
	public function testLocalRequired() {
		$this->expectException( ConfigException::class );

		$this->overrideConfigValue( MainConfigNames::UserRegistrationProviders, [] );
		$this->assertInstanceOf(
			UserRegistrationLookup::class,
			$this->getServiceContainer()->getUserRegistrationLookup()
		);
	}

	public function testLocal() {
		$user = $this->getMutableTestUser()->getUser();
		$dbw = $this->getDb();
		$dbw->newUpdateQueryBuilder()
			->update( 'user' )
			->set( [ 'user_registration' => $dbw->timestamp( '20050101000000' ) ] )
			->where( [ 'user_id' => $user->getId() ] )
			->caller( __METHOD__ )
			->execute();

		$this->assertSame(
			'20050101000000',
			$this->getServiceContainer()->getUserRegistrationLookup()->getRegistration(
				$this->getServiceContainer()->getUserFactory()->newFromName( $user->getName() )
			)
		);
	}

	public function testCustom() {
		$providers = $this->getConfVar( MainConfigNames::UserRegistrationProviders );
		$providers['test-foo'] = [
			'factory' => static function () {
				return new class implements IUserRegistrationProvider {
					/**
					 * @inheritDoc
					 */
					public function fetchRegistration( UserIdentity $user ) {
						return '20230101000000';
					}
				};
			}
		];
		$this->overrideConfigValue( MainConfigNames::UserRegistrationProviders, $providers );

		$user = $this->getTestUser()->getUser();
		$this->assertSame(
			'20230101000000',
			$this->getServiceContainer()->getUserRegistrationLookup()->getRegistration(
				$user,
				'test-foo'
			)
		);
	}
}