diff options
author | Arthur Schiwon <blizzz@owncloud.com> | 2015-06-03 17:37:36 +0200 |
---|---|---|
committer | Arthur Schiwon <blizzz@owncloud.com> | 2015-06-03 17:38:27 +0200 |
commit | 090478a95e1adc904cd8971158c848b9c00374f6 (patch) | |
tree | 275edc857fab881ca920c4432254ff1bca960e9a /apps/user_ldap/tests | |
parent | 91841bb25d6479784700d800d8b21f945bb86fc8 (diff) | |
download | nextcloud-server-090478a95e1adc904cd8971158c848b9c00374f6.tar.gz nextcloud-server-090478a95e1adc904cd8971158c848b9c00374f6.zip |
if possible, getUserGroups should get memberships using memberOf virtual attribute
Diffstat (limited to 'apps/user_ldap/tests')
-rw-r--r-- | apps/user_ldap/tests/group_ldap.php | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/apps/user_ldap/tests/group_ldap.php b/apps/user_ldap/tests/group_ldap.php index d91f1503abd..aeb306174f0 100644 --- a/apps/user_ldap/tests/group_ldap.php +++ b/apps/user_ldap/tests/group_ldap.php @@ -383,4 +383,63 @@ class Test_Group_Ldap extends \Test\TestCase { $this->assertSame(4, $users); } + public function testGetUserGroupsMemberOf() { + $access = $this->getAccessMock(); + $this->enableGroups($access); + + $dn = 'cn=userX,dc=foobar'; + + $access->connection->hasPrimaryGroups = false; + + $access->expects($this->once()) + ->method('username2dn') + ->will($this->returnValue($dn)); + + $access->expects($this->once()) + ->method('readAttribute') + ->with($dn, 'memberOf') + ->will($this->returnValue(['cn=groupA,dc=foobar', 'cn=groupB,dc=foobar'])); + + $access->expects($this->exactly(2)) + ->method('dn2groupname') + ->will($this->returnArgument(0)); + + $groupBackend = new GroupLDAP($access); + $groups = $groupBackend->getUserGroups('userX'); + + $this->assertSame(2, count($groups)); + } + + public function testGetUserGroupsMemberOfDisabled() { + $access = $this->getAccessMock(); + + $access->connection->expects($this->any()) + ->method('__get') + ->will($this->returnCallback(function($name) { + if($name === 'useMemberOfToDetectMembership') { + return 0; + } + return 1; + })); + + $dn = 'cn=userX,dc=foobar'; + + $access->connection->hasPrimaryGroups = false; + + $access->expects($this->once()) + ->method('username2dn') + ->will($this->returnValue($dn)); + + $access->expects($this->never()) + ->method('readAttribute') + ->with($dn, 'memberOf'); + + $access->expects($this->once()) + ->method('ownCloudGroupNames') + ->will($this->returnValue([])); + + $groupBackend = new GroupLDAP($access); + $groupBackend->getUserGroups('userX'); + } + } |