summaryrefslogtreecommitdiffstats
path: root/apps/user_ldap/tests
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2018-05-29 01:10:03 +0200
committerArthur Schiwon <blizzz@arthur-schiwon.de>2018-05-29 01:10:03 +0200
commit73cacb8896ac067e4686ef8d4471ba497248a729 (patch)
tree6753d2cd5833eafee5c6e30f0b9149b1eb0e221f /apps/user_ldap/tests
parent9ddff6ff35d64955ba8a0fe711786b1ed986efcc (diff)
downloadnextcloud-server-73cacb8896ac067e4686ef8d4471ba497248a729.tar.gz
nextcloud-server-73cacb8896ac067e4686ef8d4471ba497248a729.zip
check user state when fetching to avoid dealing with offline objects
fixes #9502 Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Diffstat (limited to 'apps/user_ldap/tests')
-rw-r--r--apps/user_ldap/tests/AccessTest.php39
1 files changed, 37 insertions, 2 deletions
diff --git a/apps/user_ldap/tests/AccessTest.php b/apps/user_ldap/tests/AccessTest.php
index 43a34959c54..a51a396cfff 100644
--- a/apps/user_ldap/tests/AccessTest.php
+++ b/apps/user_ldap/tests/AccessTest.php
@@ -43,6 +43,7 @@ use OCA\User_LDAP\LDAP;
use OCA\User_LDAP\LogWrapper;
use OCA\User_LDAP\Mapping\UserMapping;
use OCA\User_LDAP\User\Manager;
+use OCA\User_LDAP\User\OfflineUser;
use OCA\User_LDAP\User\User;
use OCP\IAvatarManager;
use OCP\IConfig;
@@ -316,7 +317,7 @@ class AccessTest extends TestCase {
$userMock->expects($this->exactly(count($data)))
->method('processAttributes');
- $this->userManager->expects($this->exactly(count($data)))
+ $this->userManager->expects($this->exactly(count($data) * 2))
->method('get')
->will($this->returnValue($userMock));
@@ -398,7 +399,7 @@ class AccessTest extends TestCase {
$userMock->expects($this->exactly(count($data)))
->method('processAttributes');
- $this->userManager->expects($this->exactly(count($data)))
+ $this->userManager->expects($this->exactly(count($data) * 2))
->method('get')
->will($this->returnValue($userMock));
@@ -666,6 +667,40 @@ class AccessTest extends TestCase {
$this->assertSame($expected, $sanitizedName);
}
+ public function testUserStateUpdate() {
+ $this->connection->expects($this->any())
+ ->method('__get')
+ ->willReturnMap([
+ [ 'ldapUserDisplayName', 'displayName' ],
+ [ 'ldapUserDisplayName2', null],
+ ]);
+
+ $offlineUserMock = $this->createMock(OfflineUser::class);
+ $offlineUserMock->expects($this->once())
+ ->method('unmark');
+
+ $regularUserMock = $this->createMock(User::class);
+
+ $this->userManager->expects($this->atLeastOnce())
+ ->method('get')
+ ->with('detta')
+ ->willReturnOnConsecutiveCalls($offlineUserMock, $regularUserMock);
+
+ /** @var UserMapping|\PHPUnit_Framework_MockObject_MockObject $mapperMock */
+ $mapperMock = $this->createMock(UserMapping::class);
+ $mapperMock->expects($this->any())
+ ->method('getNameByDN')
+ ->with('uid=detta,ou=users,dc=hex,dc=ample')
+ ->willReturn('detta');
+ $this->access->setUserMapper($mapperMock);
+ $records = [
+ [
+ 'dn' => ['uid=detta,ou=users,dc=hex,dc=ample'],
+ 'displayName' => ['Detta Detkova'],
+ ]
+ ];
+ $this->access->nextcloudUserNames($records);
+ }
}