[Pkg-owncloud-commits] [owncloud] 10/20: Backport of #17723 to stable7
David Prévot
taffit at moszumanska.debian.org
Tue Aug 11 15:57:45 UTC 2015
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository owncloud.
commit a1815cf2758b7085c038485862fefe62d7b3b12f
Author: Arthur Schiwon <blizzz at owncloud.com>
Date: Fri Jul 17 18:57:56 2015 +0200
Backport of #17723 to stable7
fix runtime caching in ldap's user manager, fixes #17631
---
apps/user_ldap/lib/user/manager.php | 4 +-
apps/user_ldap/tests/user/manager.php | 316 +++++++++++++++++-----------------
2 files changed, 164 insertions(+), 156 deletions(-)
diff --git a/apps/user_ldap/lib/user/manager.php b/apps/user_ldap/lib/user/manager.php
index 4a979a8..fb0f4e3 100644
--- a/apps/user_ldap/lib/user/manager.php
+++ b/apps/user_ldap/lib/user/manager.php
@@ -117,8 +117,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 1d98ec4..7979765 100644
--- a/apps/user_ldap/tests/user/manager.php
+++ b/apps/user_ldap/tests/user/manager.php
@@ -1,24 +1,24 @@
<?php
/**
-* ownCloud
-*
-* @author Arthur Schiwon
-* @copyright 2014 Arthur Schiwon blizzz at owncloud.com
-*
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-* License as published by the Free Software Foundation; either
-* version 3 of the License, or any later version.
-*
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-*
-* You should have received a copy of the GNU Affero General Public
-* License along with this library. If not, see <http://www.gnu.org/licenses/>.
-*
-*/
+ * ownCloud
+ *
+ * @author Arthur Schiwon
+ * @copyright 2014 Arthur Schiwon blizzz at owncloud.com
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
namespace OCA\user_ldap\tests;
@@ -26,169 +26,177 @@ use OCA\user_ldap\lib\user\Manager;
class Test_User_Manager extends \PHPUnit_Framework_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');
+ 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');
- return array($access, $config, $filesys, $image, $log, $avaMgr);
- }
+ return array($access, $config, $filesys, $image, $log, $avaMgr);
+ }
- public function testGetByDNExisting() {
- list($access, $config, $filesys, $image, $log, $avaMgr) =
- $this->getTestInstances();
+ public function testGetByDNExisting() {
+ list($access, $config, $filesys, $image, $log, $avaMgr) =
+ $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');
+
+ $manager = new Manager($config, $filesys, $log, $avaMgr, $image);
+ $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);
+ }
+
+ public function testGetByEDirectoryDN() {
+ list($access, $config, $filesys, $image, $log, $avaMgr) =
+ $this->getTestInstances();
+
+ $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));
+
+ $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);
+ $manager->setLdapAccess($access);
+ $user = $manager->get($inputDN);
- $manager = new Manager($config, $filesys, $log, $avaMgr, $image);
- $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) =
+ $this->getTestInstances();
- public function testGetByEDirectoryDN() {
- list($access, $config, $filesys, $image, $log, $avaMgr) =
- $this->getTestInstances();
+ $inputDN = 'ab=cde,f=ghei,mno=pq';
+ $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));
$access->expects($this->once())
- ->method('stringResemblesDN')
- ->with($this->equalTo($inputDN))
- ->will($this->returnValue(true));
+ ->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);
+ $manager->setLdapAccess($access);
+ $user = $manager->get($inputDN);
- $manager = new Manager($config, $filesys, $log, $avaMgr, $image);
- $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) =
+ $this->getTestInstances();
- public function testGetByExoticDN() {
- list($access, $config, $filesys, $image, $log, $avaMgr) =
- $this->getTestInstances();
+ $inputDN = 'cn=gone,dc=foobar,dc=bar';
- $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));
$access->expects($this->once())
- ->method('stringResemblesDN')
- ->with($this->equalTo($inputDN))
- ->will($this->returnValue(true));
+ ->method('dn2username')
+ ->with($this->equalTo($inputDN))
+ ->will($this->returnValue(false));
- $access->expects($this->once())
- ->method('dn2username')
- ->with($this->equalTo($inputDN))
- ->will($this->returnValue($uid));
+ $access->expects($this->once())
+ ->method('username2dn')
+ ->with($this->equalTo($inputDN))
+ ->will($this->returnValue(false));
- $access->expects($this->never())
- ->method('username2dn');
+ $manager = new Manager($config, $filesys, $log, $avaMgr, $image);
+ $manager->setLdapAccess($access);
+ $user = $manager->get($inputDN);
+ }
- $manager = new Manager($config, $filesys, $log, $avaMgr, $image);
- $manager->setLdapAccess($access);
- $user = $manager->get($inputDN);
+ public function testGetByUidExisting() {
+ list($access, $config, $filesys, $image, $log, $avaMgr) =
+ $this->getTestInstances();
- $this->assertInstanceOf('\OCA\user_ldap\lib\user\User', $user);
- }
+ $dn = 'cn=foo,dc=foobar,dc=bar';
+ $uid = '563418fc-423b-1033-8d1c-ad5f418ee02e';
- public function testGetByDNNotExisting() {
- list($access, $config, $filesys, $image, $log, $avaMgr) =
- $this->getTestInstances();
+ $access->expects($this->never())
+ ->method('dn2username');
- $inputDN = 'cn=gone,dc=foobar,dc=bar';
+ $access->expects($this->once())
+ ->method('username2dn')
+ ->with($this->equalTo($uid))
+ ->will($this->returnValue($dn));
$access->expects($this->once())
- ->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('username2dn')
- ->with($this->equalTo($inputDN))
- ->will($this->returnValue(false));
-
- $manager = new Manager($config, $filesys, $log, $avaMgr, $image);
- $manager->setLdapAccess($access);
- $user = $manager->get($inputDN);
- }
-
- public function testGetByUidExisting() {
- list($access, $config, $filesys, $image, $log, $avaMgr) =
- $this->getTestInstances();
-
- $dn = 'cn=foo,dc=foobar,dc=bar';
- $uid = '563418fc-423b-1033-8d1c-ad5f418ee02e';
-
- $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('stringResemblesDN')
- ->with($this->equalTo($uid))
- ->will($this->returnValue(false));
-
- $manager = new Manager($config, $filesys, $log, $avaMgr, $image);
- $manager->setLdapAccess($access);
- $user = $manager->get($uid);
-
- $this->assertInstanceOf('\OCA\user_ldap\lib\user\User', $user);
- }
-
- public function testGetByUidNotExisting() {
- list($access, $config, $filesys, $image, $log, $avaMgr) =
- $this->getTestInstances();
-
- $dn = 'cn=foo,dc=foobar,dc=bar';
- $uid = 'gone';
-
- $access->expects($this->never())
- ->method('dn2username');
-
- $access->expects($this->exactly(1))
- ->method('username2dn')
- ->with($this->equalTo($uid))
- ->will($this->returnValue(false));
-
- $manager = new Manager($config, $filesys, $log, $avaMgr, $image);
- $manager->setLdapAccess($access);
- $user = $manager->get($uid);
- }
+ ->method('stringResemblesDN')
+ ->with($this->equalTo($uid))
+ ->will($this->returnValue(false));
+
+ $manager = new Manager($config, $filesys, $log, $avaMgr, $image);
+ $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);
+ }
+
+ public function testGetByUidNotExisting() {
+ list($access, $config, $filesys, $image, $log, $avaMgr) =
+ $this->getTestInstances();
+
+ $dn = 'cn=foo,dc=foobar,dc=bar';
+ $uid = 'gone';
+
+ $access->expects($this->never())
+ ->method('dn2username');
+
+ $access->expects($this->exactly(1))
+ ->method('username2dn')
+ ->with($this->equalTo($uid))
+ ->will($this->returnValue(false));
+
+ $manager = new Manager($config, $filesys, $log, $avaMgr, $image);
+ $manager->setLdapAccess($access);
+ $user = $manager->get($uid);
+ }
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git
More information about the Pkg-owncloud-commits
mailing list