summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@owncloud.com>2015-07-17 18:57:56 +0200
committerArthur Schiwon <blizzz@owncloud.com>2015-07-20 22:50:10 +0200
commit8be59bf7e0854fe7d7692f2e027b779785f4c582 (patch)
tree1aa3a37ebb1158fac345221ca50d15a3f3e6796f
parente92d427ddeed65e466da9ddde9f50d30801e28b7 (diff)
downloadnextcloud-server-8be59bf7e0854fe7d7692f2e027b779785f4c582.tar.gz
nextcloud-server-8be59bf7e0854fe7d7692f2e027b779785f4c582.zip
Backport of #17723 to stable8.1
fix runtime caching in ldap's user manager, fixes #17631 fix indentation. no code changes, whitespace only.
-rw-r--r--apps/user_ldap/lib/user/manager.php4
-rw-r--r--apps/user_ldap/tests/user/manager.php254
2 files changed, 133 insertions, 125 deletions
diff --git a/apps/user_ldap/lib/user/manager.php b/apps/user_ldap/lib/user/manager.php
index 2f5ee3adfb7..b70e057741f 100644
--- a/apps/user_ldap/lib/user/manager.php
+++ b/apps/user_ldap/lib/user/manager.php
@@ -110,8 +110,8 @@ class Manager {
$user = new User($uid, $dn, $this->access, $this->ocConfig,
$this->ocFilesystem, clone $this->image, $this->ocLog,
$this->avatarManager);
- $users['byDN'][$dn] = $user;
- $users['byUid'][$uid] = $user;
+ $this->users['byDN'][$dn] = $user;
+ $this->users['byUid'][$uid] = $user;
return $user;
}
diff --git a/apps/user_ldap/tests/user/manager.php b/apps/user_ldap/tests/user/manager.php
index e86db6b9f81..d659323fc7f 100644
--- a/apps/user_ldap/tests/user/manager.php
+++ b/apps/user_ldap/tests/user/manager.php
@@ -28,174 +28,182 @@ use OCA\user_ldap\lib\user\Manager;
class Test_User_Manager extends \Test\TestCase {
- private function getTestInstances() {
- $access = $this->getMock('\OCA\user_ldap\lib\user\IUserTools');
- $config = $this->getMock('\OCP\IConfig');
- $filesys = $this->getMock('\OCA\user_ldap\lib\FilesystemHelper');
- $log = $this->getMock('\OCA\user_ldap\lib\LogWrapper');
- $avaMgr = $this->getMock('\OCP\IAvatarManager');
- $image = $this->getMock('\OCP\Image');
- $dbc = $this->getMock('\OCP\IDBConnection');
+ private function getTestInstances() {
+ $access = $this->getMock('\OCA\user_ldap\lib\user\IUserTools');
+ $config = $this->getMock('\OCP\IConfig');
+ $filesys = $this->getMock('\OCA\user_ldap\lib\FilesystemHelper');
+ $log = $this->getMock('\OCA\user_ldap\lib\LogWrapper');
+ $avaMgr = $this->getMock('\OCP\IAvatarManager');
+ $image = $this->getMock('\OCP\Image');
+ $dbc = $this->getMock('\OCP\IDBConnection');
- return array($access, $config, $filesys, $image, $log, $avaMgr, $dbc);
- }
+ return array($access, $config, $filesys, $image, $log, $avaMgr, $dbc);
+ }
- public function testGetByDNExisting() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) =
- $this->getTestInstances();
+ public function testGetByDNExisting() {
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) =
+ $this->getTestInstances();
- $inputDN = 'cn=foo,dc=foobar,dc=bar';
- $uid = '563418fc-423b-1033-8d1c-ad5f418ee02e';
+ $inputDN = 'cn=foo,dc=foobar,dc=bar';
+ $uid = '563418fc-423b-1033-8d1c-ad5f418ee02e';
$access->expects($this->once())
- ->method('stringResemblesDN')
- ->with($this->equalTo($inputDN))
- ->will($this->returnValue(true));
+ ->method('stringResemblesDN')
+ ->with($this->equalTo($inputDN))
+ ->will($this->returnValue(true));
- $access->expects($this->once())
- ->method('dn2username')
- ->with($this->equalTo($inputDN))
- ->will($this->returnValue($uid));
+ $access->expects($this->once())
+ ->method('dn2username')
+ ->with($this->equalTo($inputDN))
+ ->will($this->returnValue($uid));
+
+ $access->expects($this->never())
+ ->method('username2dn');
- $access->expects($this->never())
- ->method('username2dn');
+ $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc);
+ $manager->setLdapAccess($access);
+ $user = $manager->get($inputDN);
- $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc);
- $manager->setLdapAccess($access);
- $user = $manager->get($inputDN);
+ // Now we fetch the user again. If this leads to a failing test,
+ // runtime caching the manager is broken.
+ $user = $manager->get($inputDN);
- $this->assertInstanceOf('\OCA\user_ldap\lib\user\User', $user);
- }
+ $this->assertInstanceOf('\OCA\user_ldap\lib\user\User', $user);
+ }
- public function testGetByEDirectoryDN() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) =
- $this->getTestInstances();
+ public function testGetByEDirectoryDN() {
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) =
+ $this->getTestInstances();
- $inputDN = 'uid=foo,o=foobar,c=bar';
- $uid = '563418fc-423b-1033-8d1c-ad5f418ee02e';
+ $inputDN = 'uid=foo,o=foobar,c=bar';
+ $uid = '563418fc-423b-1033-8d1c-ad5f418ee02e';
$access->expects($this->once())
- ->method('stringResemblesDN')
- ->with($this->equalTo($inputDN))
- ->will($this->returnValue(true));
+ ->method('stringResemblesDN')
+ ->with($this->equalTo($inputDN))
+ ->will($this->returnValue(true));
- $access->expects($this->once())
- ->method('dn2username')
- ->with($this->equalTo($inputDN))
- ->will($this->returnValue($uid));
+ $access->expects($this->once())
+ ->method('dn2username')
+ ->with($this->equalTo($inputDN))
+ ->will($this->returnValue($uid));
- $access->expects($this->never())
- ->method('username2dn');
+ $access->expects($this->never())
+ ->method('username2dn');
- $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc);
- $manager->setLdapAccess($access);
- $user = $manager->get($inputDN);
+ $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc);
+ $manager->setLdapAccess($access);
+ $user = $manager->get($inputDN);
- $this->assertInstanceOf('\OCA\user_ldap\lib\user\User', $user);
- }
+ $this->assertInstanceOf('\OCA\user_ldap\lib\user\User', $user);
+ }
- public function testGetByExoticDN() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) =
- $this->getTestInstances();
+ public function testGetByExoticDN() {
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) =
+ $this->getTestInstances();
- $inputDN = 'ab=cde,f=ghei,mno=pq';
- $uid = '563418fc-423b-1033-8d1c-ad5f418ee02e';
+ $inputDN = 'ab=cde,f=ghei,mno=pq';
+ $uid = '563418fc-423b-1033-8d1c-ad5f418ee02e';
$access->expects($this->once())
- ->method('stringResemblesDN')
- ->with($this->equalTo($inputDN))
- ->will($this->returnValue(true));
+ ->method('stringResemblesDN')
+ ->with($this->equalTo($inputDN))
+ ->will($this->returnValue(true));
- $access->expects($this->once())
- ->method('dn2username')
- ->with($this->equalTo($inputDN))
- ->will($this->returnValue($uid));
+ $access->expects($this->once())
+ ->method('dn2username')
+ ->with($this->equalTo($inputDN))
+ ->will($this->returnValue($uid));
- $access->expects($this->never())
- ->method('username2dn');
+ $access->expects($this->never())
+ ->method('username2dn');
- $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc);
- $manager->setLdapAccess($access);
- $user = $manager->get($inputDN);
+ $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc);
+ $manager->setLdapAccess($access);
+ $user = $manager->get($inputDN);
- $this->assertInstanceOf('\OCA\user_ldap\lib\user\User', $user);
- }
+ $this->assertInstanceOf('\OCA\user_ldap\lib\user\User', $user);
+ }
- public function testGetByDNNotExisting() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) =
- $this->getTestInstances();
+ public function testGetByDNNotExisting() {
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) =
+ $this->getTestInstances();
- $inputDN = 'cn=gone,dc=foobar,dc=bar';
+ $inputDN = 'cn=gone,dc=foobar,dc=bar';
$access->expects($this->once())
- ->method('stringResemblesDN')
- ->with($this->equalTo($inputDN))
- ->will($this->returnValue(true));
+ ->method('stringResemblesDN')
+ ->with($this->equalTo($inputDN))
+ ->will($this->returnValue(true));
- $access->expects($this->once())
- ->method('dn2username')
- ->with($this->equalTo($inputDN))
- ->will($this->returnValue(false));
+ $access->expects($this->once())
+ ->method('dn2username')
+ ->with($this->equalTo($inputDN))
+ ->will($this->returnValue(false));
- $access->expects($this->once())
- ->method('username2dn')
- ->with($this->equalTo($inputDN))
- ->will($this->returnValue(false));
+ $access->expects($this->once())
+ ->method('username2dn')
+ ->with($this->equalTo($inputDN))
+ ->will($this->returnValue(false));
+
+ $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc);
+ $manager->setLdapAccess($access);
+ $user = $manager->get($inputDN);
- $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc);
- $manager->setLdapAccess($access);
- $user = $manager->get($inputDN);
+ $this->assertNull($user);
+ }
- $this->assertNull($user);
- }
+ public function testGetByUidExisting() {
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) =
+ $this->getTestInstances();
- public function testGetByUidExisting() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) =
- $this->getTestInstances();
+ $dn = 'cn=foo,dc=foobar,dc=bar';
+ $uid = '563418fc-423b-1033-8d1c-ad5f418ee02e';
- $dn = 'cn=foo,dc=foobar,dc=bar';
- $uid = '563418fc-423b-1033-8d1c-ad5f418ee02e';
+ $access->expects($this->never())
+ ->method('dn2username');
- $access->expects($this->never())
- ->method('dn2username');
+ $access->expects($this->once())
+ ->method('username2dn')
+ ->with($this->equalTo($uid))
+ ->will($this->returnValue($dn));
- $access->expects($this->once())
- ->method('username2dn')
- ->with($this->equalTo($uid))
- ->will($this->returnValue($dn));
+ $access->expects($this->once())
+ ->method('stringResemblesDN')
+ ->with($this->equalTo($uid))
+ ->will($this->returnValue(false));
- $access->expects($this->once())
- ->method('stringResemblesDN')
- ->with($this->equalTo($uid))
- ->will($this->returnValue(false));
+ $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc);
+ $manager->setLdapAccess($access);
+ $user = $manager->get($uid);
- $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc);
- $manager->setLdapAccess($access);
- $user = $manager->get($uid);
+ // Now we fetch the user again. If this leads to a failing test,
+ // runtime caching the manager is broken.
+ $user = $manager->get($uid);
- $this->assertInstanceOf('\OCA\user_ldap\lib\user\User', $user);
- }
+ $this->assertInstanceOf('\OCA\user_ldap\lib\user\User', $user);
+ }
- public function testGetByUidNotExisting() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) =
- $this->getTestInstances();
+ public function testGetByUidNotExisting() {
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc) =
+ $this->getTestInstances();
- $dn = 'cn=foo,dc=foobar,dc=bar';
- $uid = 'gone';
+ $dn = 'cn=foo,dc=foobar,dc=bar';
+ $uid = 'gone';
- $access->expects($this->never())
- ->method('dn2username');
+ $access->expects($this->never())
+ ->method('dn2username');
- $access->expects($this->exactly(1))
- ->method('username2dn')
- ->with($this->equalTo($uid))
- ->will($this->returnValue(false));
+ $access->expects($this->exactly(1))
+ ->method('username2dn')
+ ->with($this->equalTo($uid))
+ ->will($this->returnValue(false));
- $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc);
- $manager->setLdapAccess($access);
- $user = $manager->get($uid);
+ $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc);
+ $manager->setLdapAccess($access);
+ $user = $manager->get($uid);
- $this->assertNull($user);
- }
+ $this->assertNull($user);
+ }
}