diff options
author | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2018-05-29 01:10:03 +0200 |
---|---|---|
committer | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2018-05-29 01:10:03 +0200 |
commit | 73cacb8896ac067e4686ef8d4471ba497248a729 (patch) | |
tree | 6753d2cd5833eafee5c6e30f0b9149b1eb0e221f /apps/user_ldap/tests | |
parent | 9ddff6ff35d64955ba8a0fe711786b1ed986efcc (diff) | |
download | nextcloud-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.php | 39 |
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); + } } |