@ -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');