Skip to content

Commit 9e2d9d5

Browse files
committed
test(Group LDAP): add test for getting groups of OfflineUser
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
1 parent cb3faad commit 9e2d9d5

1 file changed

Lines changed: 45 additions & 0 deletions

File tree

apps/user_ldap/tests/Group_LDAPTest.php

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,10 @@
3737
use OCA\User_LDAP\ILDAPWrapper;
3838
use OCA\User_LDAP\Mapping\GroupMapping;
3939
use OCA\User_LDAP\User\Manager;
40+
use OCA\User_LDAP\User\OfflineUser;
4041
use OCP\GroupInterface;
42+
use OCP\IConfig;
43+
use OCP\Server;
4144
use PHPUnit\Framework\MockObject\MockObject;
4245
use Test\TestCase;
4346

@@ -49,6 +52,14 @@
4952
* @package OCA\User_LDAP\Tests
5053
*/
5154
class Group_LDAPTest extends TestCase {
55+
56+
public function tearDown(): void {
57+
parent::tearDown();
58+
59+
$realConfig = Server::get(IConfig::class);
60+
$realConfig->deleteUserValue('userX', 'user_ldap', 'cached-group-memberships-');
61+
}
62+
5263
public function testCountEmptySearchString() {
5364
$access = $this->getAccessMock();
5465
$pluginManager = $this->getPluginManagerMock();
@@ -923,6 +934,40 @@ public function testGetUserGroupsMemberOfDisabled() {
923934
$groupBackend->getUserGroups('userX');
924935
}
925936

937+
public function testGetUserGroupsOfflineUser() {
938+
$access = $this->getAccessMock();
939+
$pluginManager = $this->getPluginManagerMock();
940+
941+
$access->connection = $this->createMock(Connection::class);
942+
$access->connection->expects($this->any())
943+
->method('__get')
944+
->willReturnCallback(function ($name) {
945+
if ($name === 'useMemberOfToDetectMembership') {
946+
return 0;
947+
} elseif ($name === 'ldapDynamicGroupMemberURL') {
948+
return '';
949+
}
950+
return 1;
951+
});
952+
953+
$offlineUser = $this->createMock(OfflineUser::class);
954+
955+
// FIXME: should be available via CI
956+
$realConfig = Server::get(IConfig::class);
957+
$realConfig->setUserValue('userX', 'user_ldap', 'cached-group-memberships-', \json_encode(['groupB', 'groupF']));
958+
959+
$access->userManager->expects($this->any())
960+
->method('get')
961+
->with('userX')
962+
->willReturn($offlineUser);
963+
964+
$groupBackend = new GroupLDAP($access, $pluginManager);
965+
$returnedGroups = $groupBackend->getUserGroups('userX');
966+
$this->assertCount(2, $returnedGroups);
967+
$this->assertTrue(in_array('groupB', $returnedGroups));
968+
$this->assertTrue(in_array('groupF', $returnedGroups));
969+
}
970+
926971
public function nestedGroupsProvider(): array {
927972
return [
928973
[true],

0 commit comments

Comments
 (0)