diff options
Diffstat (limited to 'apps/user_ldap/tests')
-rw-r--r-- | apps/user_ldap/tests/access.php | 52 | ||||
-rw-r--r-- | apps/user_ldap/tests/data/sid.dat | bin | 0 -> 24 bytes | |||
-rw-r--r-- | apps/user_ldap/tests/group_ldap.php | 152 |
3 files changed, 202 insertions, 2 deletions
diff --git a/apps/user_ldap/tests/access.php b/apps/user_ldap/tests/access.php index 8ead5d68482..2ff7540b8ef 100644 --- a/apps/user_ldap/tests/access.php +++ b/apps/user_ldap/tests/access.php @@ -77,4 +77,54 @@ class Test_Access extends \PHPUnit_Framework_TestCase { $expected = 'foo\\\\*bar'; $this->assertTrue($expected === $access->escapeFilterPart($input)); } -}
\ No newline at end of file + + public function testConvertSID2StrSuccess() { + list($lw, $con, $um) = $this->getConnecterAndLdapMock(); + $access = new Access($con, $lw, $um); + + $sidBinary = file_get_contents(__DIR__ . '/data/sid.dat'); + $sidExpected = 'S-1-5-21-249921958-728525901-1594176202'; + + $this->assertSame($sidExpected, $access->convertSID2Str($sidBinary)); + } + + public function testConvertSID2StrInputError() { + list($lw, $con, $um) = $this->getConnecterAndLdapMock(); + $access = new Access($con, $lw, $um); + + $sidIllegal = 'foobar'; + $sidExpected = ''; + + $this->assertSame($sidExpected, $access->convertSID2Str($sidIllegal)); + } + + public function testGetDomainDNFromDNSuccess() { + list($lw, $con, $um) = $this->getConnecterAndLdapMock(); + $access = new Access($con, $lw, $um); + + $inputDN = 'uid=zaphod,cn=foobar,dc=my,dc=server,dc=com'; + $domainDN = 'dc=my,dc=server,dc=com'; + + $lw->expects($this->once()) + ->method('explodeDN') + ->with($inputDN, 0) + ->will($this->returnValue(explode(',', $inputDN))); + + $this->assertSame($domainDN, $access->getDomainDNFromDN($inputDN)); + } + + public function testGetDomainDNFromDNError() { + list($lw, $con, $um) = $this->getConnecterAndLdapMock(); + $access = new Access($con, $lw, $um); + + $inputDN = 'foobar'; + $expected = ''; + + $lw->expects($this->once()) + ->method('explodeDN') + ->with($inputDN, 0) + ->will($this->returnValue(false)); + + $this->assertSame($expected, $access->getDomainDNFromDN($inputDN)); + } +} diff --git a/apps/user_ldap/tests/data/sid.dat b/apps/user_ldap/tests/data/sid.dat Binary files differnew file mode 100644 index 00000000000..3d500c6a872 --- /dev/null +++ b/apps/user_ldap/tests/data/sid.dat diff --git a/apps/user_ldap/tests/group_ldap.php b/apps/user_ldap/tests/group_ldap.php index 1184fe1e82e..c4aed25a1cc 100644 --- a/apps/user_ldap/tests/group_ldap.php +++ b/apps/user_ldap/tests/group_ldap.php @@ -96,6 +96,10 @@ class Test_Group_Ldap extends \PHPUnit_Framework_TestCase { ->will($this->returnValue('cn=group,dc=foo,dc=bar')); $access->expects($this->any()) + ->method('fetchListOfUsers') + ->will($this->returnValue(array())); + + $access->expects($this->any()) ->method('readAttribute') ->will($this->returnCallback(function($name) { //the search operation will call readAttribute, thus we need @@ -111,7 +115,9 @@ class Test_Group_Ldap extends \PHPUnit_Framework_TestCase { $access->expects($this->any()) ->method('dn2username') - ->will($this->returnValue('foobar')); + ->will($this->returnCallback(function() { + return 'foobar' . \OCP\Util::generateRandomBytes(7); + })); $groupBackend = new GroupLDAP($access); $users = $groupBackend->countUsersInGroup('group', '3'); @@ -119,4 +125,148 @@ class Test_Group_Ldap extends \PHPUnit_Framework_TestCase { $this->assertSame(2, $users); } + public function testPrimaryGroupID2NameSuccess() { + $access = $this->getAccessMock(); + $this->enableGroups($access); + + $userDN = 'cn=alice,cn=foo,dc=barfoo,dc=bar'; + + $access->expects($this->once()) + ->method('getSID') + ->with($userDN) + ->will($this->returnValue('S-1-5-21-249921958-728525901-1594176202')); + + $access->expects($this->once()) + ->method('searchGroups') + ->will($this->returnValue(array('cn=foo,dc=barfoo,dc=bar'))); + + $access->expects($this->once()) + ->method('dn2groupname') + ->with('cn=foo,dc=barfoo,dc=bar') + ->will($this->returnValue('MyGroup')); + + $groupBackend = new GroupLDAP($access); + + $group = $groupBackend->primaryGroupID2Name('3117', $userDN); + + $this->assertSame('MyGroup', $group); + } + + public function testPrimaryGroupID2NameNoSID() { + $access = $this->getAccessMock(); + $this->enableGroups($access); + + $userDN = 'cn=alice,cn=foo,dc=barfoo,dc=bar'; + + $access->expects($this->once()) + ->method('getSID') + ->with($userDN) + ->will($this->returnValue(false)); + + $access->expects($this->never()) + ->method('searchGroups'); + + $access->expects($this->never()) + ->method('dn2groupname'); + + $groupBackend = new GroupLDAP($access); + + $group = $groupBackend->primaryGroupID2Name('3117', $userDN); + + $this->assertSame(false, $group); + } + + public function testPrimaryGroupID2NameNoGroup() { + $access = $this->getAccessMock(); + $this->enableGroups($access); + + $userDN = 'cn=alice,cn=foo,dc=barfoo,dc=bar'; + + $access->expects($this->once()) + ->method('getSID') + ->with($userDN) + ->will($this->returnValue('S-1-5-21-249921958-728525901-1594176202')); + + $access->expects($this->once()) + ->method('searchGroups') + ->will($this->returnValue(array())); + + $access->expects($this->never()) + ->method('dn2groupname'); + + $groupBackend = new GroupLDAP($access); + + $group = $groupBackend->primaryGroupID2Name('3117', $userDN); + + $this->assertSame(false, $group); + } + + public function testPrimaryGroupID2NameNoName() { + $access = $this->getAccessMock(); + $this->enableGroups($access); + + $userDN = 'cn=alice,cn=foo,dc=barfoo,dc=bar'; + + $access->expects($this->once()) + ->method('getSID') + ->with($userDN) + ->will($this->returnValue('S-1-5-21-249921958-728525901-1594176202')); + + $access->expects($this->once()) + ->method('searchGroups') + ->will($this->returnValue(array('cn=foo,dc=barfoo,dc=bar'))); + + $access->expects($this->once()) + ->method('dn2groupname') + ->will($this->returnValue(false)); + + $groupBackend = new GroupLDAP($access); + + $group = $groupBackend->primaryGroupID2Name('3117', $userDN); + + $this->assertSame(false, $group); + } + + public function testGetEntryGroupIDValue() { + //tests getEntryGroupID via getGroupPrimaryGroupID + //which is basically identical to getUserPrimaryGroupIDs + $access = $this->getAccessMock(); + $this->enableGroups($access); + + $dn = 'cn=foobar,cn=foo,dc=barfoo,dc=bar'; + $attr = 'primaryGroupToken'; + + $access->expects($this->once()) + ->method('readAttribute') + ->with($dn, $attr) + ->will($this->returnValue(array('3117'))); + + $groupBackend = new GroupLDAP($access); + + $gid = $groupBackend->getGroupPrimaryGroupID($dn); + + $this->assertSame('3117', $gid); + } + + public function testGetEntryGroupIDNoValue() { + //tests getEntryGroupID via getGroupPrimaryGroupID + //which is basically identical to getUserPrimaryGroupIDs + $access = $this->getAccessMock(); + $this->enableGroups($access); + + $dn = 'cn=foobar,cn=foo,dc=barfoo,dc=bar'; + $attr = 'primaryGroupToken'; + + $access->expects($this->once()) + ->method('readAttribute') + ->with($dn, $attr) + ->will($this->returnValue(false)); + + $groupBackend = new GroupLDAP($access); + + $gid = $groupBackend->getGroupPrimaryGroupID($dn); + + $this->assertSame(false, $gid); + } + } |