init() method was added to AuthenticationProvider. It helps to inject dependecies. Overridable postInitSetup() method was added to AbstractAuthenticationProvider. A provider can override this to do any necessary setup. AbstractAuthenticationProvider ::setLogger(), ::setManager(), ::setConfig(), ::setHookContainer() were soft deprecated. Now developers must use AbstractAuthenticationProvider::init(). Bug: T275030 Change-Id: I6ca63eddac1b177eeadbdcce992e71c44a480160
53 lines
2.1 KiB
PHP
53 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace MediaWiki\Tests\Unit\Auth;
|
|
|
|
use Config;
|
|
use MediaWiki\Auth\AbstractAuthenticationProvider;
|
|
use MediaWiki\Auth\AuthManager;
|
|
use MediaWiki\HookContainer\HookContainer;
|
|
use MediaWiki\User\UserNameUtils;
|
|
use Psr\Log\LoggerInterface;
|
|
use Wikimedia\TestingAccessWrapper;
|
|
|
|
/**
|
|
* @group AuthManager
|
|
* @covers \MediaWiki\Auth\AbstractAuthenticationProvider
|
|
*/
|
|
class AbstractAuthenticationProviderTest extends \MediaWikiUnitTestCase {
|
|
public function testAbstractAuthenticationProvider() {
|
|
$provider = $this->getMockForAbstractClass( AbstractAuthenticationProvider::class );
|
|
$providerPriv = TestingAccessWrapper::newFromObject( $provider );
|
|
|
|
// test AbstractAuthenticationProvider::init
|
|
$logger = $this->getMockForAbstractClass( LoggerInterface::class );
|
|
$authManager = $this->createMock( AuthManager::class );
|
|
$hookContainer = $this->createMock( HookContainer::class );
|
|
$config = $this->getMockForAbstractClass( Config::class );
|
|
$userNameUtils = $this->createNoOpMock( UserNameUtils::class );
|
|
$provider->init( $logger, $authManager, $hookContainer, $config, $userNameUtils );
|
|
$this->assertSame( $logger, $providerPriv->logger );
|
|
$this->assertSame( $authManager, $providerPriv->manager );
|
|
$this->assertSame( $hookContainer, $providerPriv->hookContainer );
|
|
$this->assertSame( $config, $providerPriv->config );
|
|
$this->assertSame( $userNameUtils, $providerPriv->userNameUtils );
|
|
|
|
// test AbstractAuthenticationProvider::setLogger
|
|
$obj = $this->getMockForAbstractClass( LoggerInterface::class );
|
|
$provider->setLogger( $obj );
|
|
$this->assertSame( $obj, $providerPriv->logger, 'setLogger' );
|
|
|
|
// test AbstractAuthenticationProvider::setManager
|
|
$obj = $this->createMock( AuthManager::class );
|
|
$provider->setManager( $obj );
|
|
$this->assertSame( $obj, $providerPriv->manager, 'setManager' );
|
|
|
|
// test AbstractAuthenticationProvider::setConfig
|
|
$obj = $this->getMockForAbstractClass( Config::class );
|
|
$provider->setConfig( $obj );
|
|
$this->assertSame( $obj, $providerPriv->config, 'setConfig' );
|
|
|
|
// test AbstractAuthenticationProvider::getUniqueId
|
|
$this->assertIsString( $provider->getUniqueId(), 'getUniqueId' );
|
|
}
|
|
}
|