|
|
|
|
@ -20,6 +20,7 @@ use OCA\Encryption\Util;
|
|
|
|
|
use OCP\IUser;
|
|
|
|
|
use OCP\IUserManager;
|
|
|
|
|
use OCP\IUserSession;
|
|
|
|
|
use OCP\Lockdown\ILockdownManager;
|
|
|
|
|
use OCP\User\Events\BeforePasswordUpdatedEvent;
|
|
|
|
|
use OCP\User\Events\PasswordUpdatedEvent;
|
|
|
|
|
use OCP\User\Events\UserCreatedEvent;
|
|
|
|
|
@ -41,6 +42,7 @@ class UserEventsListenersTest extends TestCase {
|
|
|
|
|
protected IUserManager&MockObject $userManager;
|
|
|
|
|
protected IUserSession&MockObject $userSession;
|
|
|
|
|
protected SetupManager&MockObject $setupManager;
|
|
|
|
|
protected ILockdownManager&MockObject $lockdownManager;
|
|
|
|
|
protected PassphraseService&MockObject $passphraseService;
|
|
|
|
|
|
|
|
|
|
protected UserEventsListener $instance;
|
|
|
|
|
@ -55,6 +57,7 @@ class UserEventsListenersTest extends TestCase {
|
|
|
|
|
$this->userManager = $this->createMock(IUserManager::class);
|
|
|
|
|
$this->userSession = $this->createMock(IUserSession::class);
|
|
|
|
|
$this->setupManager = $this->createMock(SetupManager::class);
|
|
|
|
|
$this->lockdownManager = $this->createMock(ILockdownManager::class);
|
|
|
|
|
$this->passphraseService = $this->createMock(PassphraseService::class);
|
|
|
|
|
|
|
|
|
|
$this->instance = new UserEventsListener(
|
|
|
|
|
@ -66,10 +69,14 @@ class UserEventsListenersTest extends TestCase {
|
|
|
|
|
$this->userSession,
|
|
|
|
|
$this->setupManager,
|
|
|
|
|
$this->passphraseService,
|
|
|
|
|
$this->lockdownManager,
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testLogin(): void {
|
|
|
|
|
$this->lockdownManager->expects(self::once())
|
|
|
|
|
->method('canAccessFilesystem')
|
|
|
|
|
->willReturn(true);
|
|
|
|
|
$this->userSetup->expects(self::once())
|
|
|
|
|
->method('setupUser')
|
|
|
|
|
->willReturn(true);
|
|
|
|
|
@ -96,6 +103,9 @@ class UserEventsListenersTest extends TestCase {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testLoginMasterKey(): void {
|
|
|
|
|
$this->lockdownManager->expects(self::once())
|
|
|
|
|
->method('canAccessFilesystem')
|
|
|
|
|
->willReturn(true);
|
|
|
|
|
$this->util->method('isMasterKeyEnabled')->willReturn(true);
|
|
|
|
|
|
|
|
|
|
$this->userSetup->expects(self::never())
|
|
|
|
|
@ -121,6 +131,36 @@ class UserEventsListenersTest extends TestCase {
|
|
|
|
|
$this->instance->handle($event);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testLoginNoFilesystemAccess(): void {
|
|
|
|
|
$this->lockdownManager->expects(self::once())
|
|
|
|
|
->method('canAccessFilesystem')
|
|
|
|
|
->willReturn(false);
|
|
|
|
|
|
|
|
|
|
$this->userSetup->expects(self::never())
|
|
|
|
|
->method('setupUser');
|
|
|
|
|
|
|
|
|
|
$this->setupManager->expects(self::never())
|
|
|
|
|
->method('setupForUser');
|
|
|
|
|
|
|
|
|
|
$this->keyManager->expects(self::never())
|
|
|
|
|
->method('init');
|
|
|
|
|
|
|
|
|
|
$user = $this->createMock(IUser::class);
|
|
|
|
|
$user->expects(self::any())
|
|
|
|
|
->method('getUID')
|
|
|
|
|
->willReturn('testUser');
|
|
|
|
|
|
|
|
|
|
$event = $this->createMock(UserLoggedInEvent::class);
|
|
|
|
|
$event->expects(self::atLeastOnce())
|
|
|
|
|
->method('getUser')
|
|
|
|
|
->willReturn($user);
|
|
|
|
|
$event->expects(self::atLeastOnce())
|
|
|
|
|
->method('getPassword')
|
|
|
|
|
->willReturn('password');
|
|
|
|
|
|
|
|
|
|
$this->instance->handle($event);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testLogout(): void {
|
|
|
|
|
$this->session->expects(self::once())
|
|
|
|
|
->method('clear');
|
|
|
|
|
|