|
|
|
|
@ -26,9 +26,13 @@ declare(strict_types=1);
|
|
|
|
|
|
|
|
|
|
namespace lib\Authentication\TwoFactorAuth;
|
|
|
|
|
|
|
|
|
|
use OC\AppFramework\Bootstrap\Coordinator;
|
|
|
|
|
use OC\AppFramework\Bootstrap\RegistrationContext;
|
|
|
|
|
use OC\AppFramework\Bootstrap\ServiceRegistration;
|
|
|
|
|
use OC\Authentication\TwoFactorAuth\ProviderLoader;
|
|
|
|
|
use OCP\App\IAppManager;
|
|
|
|
|
use OCP\Authentication\TwoFactorAuth\IProvider;
|
|
|
|
|
use PHPUnit\Framework\MockObject\MockObject;
|
|
|
|
|
use Test\TestCase;
|
|
|
|
|
|
|
|
|
|
class ProviderLoaderTest extends TestCase {
|
|
|
|
|
@ -39,6 +43,9 @@ class ProviderLoaderTest extends TestCase {
|
|
|
|
|
/** @var \OCP\IUser|\PHPUnit\Framework\MockObject\MockObject */
|
|
|
|
|
private $user;
|
|
|
|
|
|
|
|
|
|
/** @var RegistrationContext|MockObject */
|
|
|
|
|
private $registrationContext;
|
|
|
|
|
|
|
|
|
|
/** @var ProviderLoader */
|
|
|
|
|
private $loader;
|
|
|
|
|
|
|
|
|
|
@ -48,7 +55,12 @@ class ProviderLoaderTest extends TestCase {
|
|
|
|
|
$this->appManager = $this->createMock(IAppManager::class);
|
|
|
|
|
$this->user = $this->createMock(\OCP\IUser::class);
|
|
|
|
|
|
|
|
|
|
$this->loader = new ProviderLoader($this->appManager);
|
|
|
|
|
$this->registrationContext = $this->createMock(RegistrationContext::class);
|
|
|
|
|
$coordinator = $this->createMock(Coordinator::class);
|
|
|
|
|
$coordinator->method('getRegistrationContext')
|
|
|
|
|
->willReturn($this->registrationContext);
|
|
|
|
|
|
|
|
|
|
$this->loader = new ProviderLoader($this->appManager, $coordinator);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -97,4 +109,29 @@ class ProviderLoaderTest extends TestCase {
|
|
|
|
|
$this->assertArrayHasKey('test', $providers);
|
|
|
|
|
$this->assertSame($provider, $providers['test']);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testGetProvidersBootstrap() {
|
|
|
|
|
$provider = $this->createMock(IProvider::class);
|
|
|
|
|
$provider->method('getId')->willReturn('test');
|
|
|
|
|
|
|
|
|
|
\OC::$server->registerService('\\OCA\\TwoFactorTest\\Provider', function () use ($provider) {
|
|
|
|
|
return $provider;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$this->appManager->expects($this->once())
|
|
|
|
|
->method('getEnabledAppsForUser')
|
|
|
|
|
->with($this->user)
|
|
|
|
|
->willReturn([]);
|
|
|
|
|
|
|
|
|
|
$this->registrationContext->method('getTwoFactorProvider')
|
|
|
|
|
->willReturn([
|
|
|
|
|
new ServiceRegistration('twofactor_test', '\\OCA\\TwoFactorTest\\Provider')
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
$providers = $this->loader->getProviders($this->user);
|
|
|
|
|
|
|
|
|
|
$this->assertCount(1, $providers);
|
|
|
|
|
$this->assertArrayHasKey('test', $providers);
|
|
|
|
|
$this->assertSame($provider, $providers['test']);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|