aboutsummaryrefslogtreecommitdiffstats
path: root/tests/phpunit/unit
diff options
context:
space:
mode:
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>2025-02-13 21:55:08 +0000
committerGerrit Code Review <gerrit@wikimedia.org>2025-02-13 21:55:08 +0000
commit1cf9f2a78aeca3fdd16c534e0e8d2099ed09053d (patch)
tree270390ddfde1639bef50b6212689e1364e0c68d4 /tests/phpunit/unit
parentd6b62f3af597953a44c5f919e21dca0b27894c12 (diff)
parent95c7ccb675acf6485ef61cf9573ac9dd19d06f3e (diff)
downloadmediawikicore-1cf9f2a78aeca3fdd16c534e0e8d2099ed09053d.tar.gz
mediawikicore-1cf9f2a78aeca3fdd16c534e0e8d2099ed09053d.zip
Merge "user: Use TS_MW to compare timestamps in UserRegistrationProvider"
Diffstat (limited to 'tests/phpunit/unit')
-rw-r--r--tests/phpunit/unit/includes/user/Registration/UserRegistrationLookupTest.php49
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/phpunit/unit/includes/user/Registration/UserRegistrationLookupTest.php b/tests/phpunit/unit/includes/user/Registration/UserRegistrationLookupTest.php
index 2e6106684ac0..2b0d2748114d 100644
--- a/tests/phpunit/unit/includes/user/Registration/UserRegistrationLookupTest.php
+++ b/tests/phpunit/unit/includes/user/Registration/UserRegistrationLookupTest.php
@@ -76,4 +76,53 @@ class UserRegistrationLookupTest extends MediaWikiUnitTestCase {
);
$lookup->getRegistration( $userIdentity, 'invalid' );
}
+
+ /** @dataProvider provideGetFirstRegistration */
+ public function testGetFirstRegistration( $valueLocal, $valueFoo, $expected ) {
+ $userIdentity = new UserIdentityValue( 123, 'Admin' );
+ $userRegistrationProviderMockLocal = $this->createMock( IUserRegistrationProvider::class );
+ $userRegistrationProviderMockLocal->expects( $this->once() )
+ ->method( 'fetchRegistration' )
+ ->with( $userIdentity )
+ ->willReturn( $valueLocal );
+ $userRegistrationProviderMockFoo = $this->createMock( IUserRegistrationProvider::class );
+ $userRegistrationProviderMockFoo->expects( $this->once() )
+ ->method( 'fetchRegistration' )
+ ->with( $userIdentity )
+ ->willReturn( $valueFoo );
+ $objectFactoryMock = $this->createMock( ObjectFactory::class );
+ $objectFactoryMock->expects( $this->exactly( 2 ) )
+ ->method( 'createObject' )
+ ->willReturnCallback( static function ( $arg ) use ( $userRegistrationProviderMockLocal, $userRegistrationProviderMockFoo ) {
+ if ( $arg === [ 'class' => LocalUserRegistrationProvider::class ] ) {
+ return $userRegistrationProviderMockLocal;
+ }
+ return $userRegistrationProviderMockFoo;
+ } );
+
+ $lookup = new UserRegistrationLookup(
+ new ServiceOptions( UserRegistrationLookup::CONSTRUCTOR_OPTIONS, [
+ MainConfigNames::UserRegistrationProviders => [
+ 'local' => [
+ 'class' => LocalUserRegistrationProvider::class
+ ],
+ 'foo' => [
+ 'class' => 'FooUserRegistrationLookup'
+ ],
+ ]
+ ] ),
+ $objectFactoryMock
+ );
+
+ $this->assertSame( $expected, $lookup->getFirstRegistration( $userIdentity ) );
+ }
+
+ public static function provideGetFirstRegistration() {
+ return [
+ [ '20200101000000', '20190101000000', '20190101000000' ],
+ [ null, false, null ],
+ [ null, '20190101000000', '20190101000000' ],
+ [ '20200101000000', null, '20200101000000' ],
+ ];
+ }
}