summaryrefslogtreecommitdiffstats
path: root/apps/user_ldap/tests
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@owncloud.com>2015-06-03 17:37:36 +0200
committerArthur Schiwon <blizzz@owncloud.com>2015-06-03 17:38:27 +0200
commit090478a95e1adc904cd8971158c848b9c00374f6 (patch)
tree275edc857fab881ca920c4432254ff1bca960e9a /apps/user_ldap/tests
parent91841bb25d6479784700d800d8b21f945bb86fc8 (diff)
downloadnextcloud-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.php59
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');
+ }
+
}