2013-07-10 02:06:22 +04:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
|
|
|
|
* This file is licensed under the Affero General Public License version 3 or
|
|
|
|
* later.
|
|
|
|
* See the COPYING-README file.
|
|
|
|
*/
|
|
|
|
|
|
|
|
namespace Test\Group;
|
|
|
|
|
|
|
|
use OC\User\User;
|
2017-10-24 16:26:53 +03:00
|
|
|
use OCP\IConfig;
|
|
|
|
use OCP\IURLGenerator;
|
2019-02-22 15:07:26 +03:00
|
|
|
use OCP\IUser;
|
|
|
|
use PHPUnit\Framework\MockObject\MockObject;
|
|
|
|
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
2013-07-10 02:06:22 +04:00
|
|
|
|
2016-05-20 16:38:20 +03:00
|
|
|
class GroupTest extends \Test\TestCase {
|
2019-02-22 15:07:26 +03:00
|
|
|
|
|
|
|
/** @var EventDispatcherInterface|MockObject */
|
|
|
|
protected $dispatcher;
|
|
|
|
|
2019-11-27 17:27:18 +03:00
|
|
|
protected function setUp(): void {
|
2019-02-22 15:07:26 +03:00
|
|
|
parent::setUp();
|
|
|
|
$this->dispatcher = $this->createMock(EventDispatcherInterface::class);
|
|
|
|
}
|
2016-07-11 17:23:23 +03:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @param string $uid
|
2016-07-11 17:53:01 +03:00
|
|
|
* @param \OC\User\Backend $backend
|
2016-07-11 17:23:23 +03:00
|
|
|
* @return User
|
|
|
|
*/
|
2016-07-11 17:53:01 +03:00
|
|
|
private function newUser($uid, \OC\User\Backend $backend) {
|
2019-02-22 15:07:26 +03:00
|
|
|
$user = $this->createMock(IUser::class);
|
|
|
|
$user->method('getUID')
|
|
|
|
->willReturn($uid);
|
|
|
|
$user->method('getBackend')
|
|
|
|
->willReturn($backend);
|
2016-07-11 17:23:23 +03:00
|
|
|
|
2019-02-22 15:07:26 +03:00
|
|
|
return $user;
|
2016-07-11 17:23:23 +03:00
|
|
|
}
|
|
|
|
|
2013-07-10 02:06:22 +04:00
|
|
|
/**
|
2016-07-11 17:23:23 +03:00
|
|
|
* @return \OC\User\Manager
|
2013-07-10 02:06:22 +04:00
|
|
|
*/
|
|
|
|
protected function getUserManager() {
|
2016-07-11 17:23:23 +03:00
|
|
|
$userManager = $this->getMockBuilder('\OC\User\Manager')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
$backend = $this->getMockBuilder('\OC\User\Backend')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
$user1 = $this->newUser('user1', $backend);
|
|
|
|
$user2 = $this->newUser('user2', $backend);
|
|
|
|
$user3 = $this->newUser('user3', $backend);
|
2013-07-10 02:06:22 +04:00
|
|
|
$userManager->expects($this->any())
|
|
|
|
->method('get')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturnMap(array(
|
2013-07-10 02:06:22 +04:00
|
|
|
array('user1', $user1),
|
|
|
|
array('user2', $user2),
|
|
|
|
array('user3', $user3)
|
2020-03-26 00:21:27 +03:00
|
|
|
));
|
2013-07-10 02:06:22 +04:00
|
|
|
return $userManager;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testGetUsersSingleBackend() {
|
2016-07-11 17:23:23 +03:00
|
|
|
$backend = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2013-07-10 02:06:22 +04:00
|
|
|
$userManager = $this->getUserManager();
|
2019-02-22 15:07:26 +03:00
|
|
|
$group = new \OC\Group\Group('group1', array($backend), $this->dispatcher, $userManager);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$backend->expects($this->once())
|
|
|
|
->method('usersInGroup')
|
|
|
|
->with('group1')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(array('user1', 'user2'));
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$users = $group->getUsers();
|
|
|
|
|
|
|
|
$this->assertEquals(2, count($users));
|
2013-08-26 19:46:31 +04:00
|
|
|
$user1 = $users['user1'];
|
|
|
|
$user2 = $users['user2'];
|
2013-07-10 02:06:22 +04:00
|
|
|
$this->assertEquals('user1', $user1->getUID());
|
|
|
|
$this->assertEquals('user2', $user2->getUID());
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testGetUsersMultipleBackends() {
|
2016-07-11 17:23:23 +03:00
|
|
|
$backend1 = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
$backend2 = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2013-07-10 02:06:22 +04:00
|
|
|
$userManager = $this->getUserManager();
|
2019-02-22 15:07:26 +03:00
|
|
|
$group = new \OC\Group\Group('group1', array($backend1, $backend2), $this->dispatcher, $userManager);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$backend1->expects($this->once())
|
|
|
|
->method('usersInGroup')
|
|
|
|
->with('group1')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(array('user1', 'user2'));
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$backend2->expects($this->once())
|
|
|
|
->method('usersInGroup')
|
|
|
|
->with('group1')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(array('user2', 'user3'));
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$users = $group->getUsers();
|
|
|
|
|
|
|
|
$this->assertEquals(3, count($users));
|
2013-08-26 19:46:31 +04:00
|
|
|
$user1 = $users['user1'];
|
|
|
|
$user2 = $users['user2'];
|
|
|
|
$user3 = $users['user3'];
|
2013-07-10 02:06:22 +04:00
|
|
|
$this->assertEquals('user1', $user1->getUID());
|
|
|
|
$this->assertEquals('user2', $user2->getUID());
|
|
|
|
$this->assertEquals('user3', $user3->getUID());
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testInGroupSingleBackend() {
|
2016-07-11 17:23:23 +03:00
|
|
|
$backend = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2013-07-10 02:06:22 +04:00
|
|
|
$userManager = $this->getUserManager();
|
2016-07-11 17:23:23 +03:00
|
|
|
$userBackend = $this->getMockBuilder('\OC\User\Backend')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2019-02-22 15:07:26 +03:00
|
|
|
$group = new \OC\Group\Group('group1', array($backend), $this->dispatcher, $userManager);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$backend->expects($this->once())
|
|
|
|
->method('inGroup')
|
|
|
|
->with('user1', 'group1')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(true);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
2016-07-11 17:23:23 +03:00
|
|
|
$this->assertTrue($group->inGroup($this->newUser('user1', $userBackend)));
|
2013-07-10 02:06:22 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
public function testInGroupMultipleBackends() {
|
2016-07-11 17:23:23 +03:00
|
|
|
$backend1 = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
$backend2 = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2013-07-10 02:06:22 +04:00
|
|
|
$userManager = $this->getUserManager();
|
2017-07-24 21:42:55 +03:00
|
|
|
$userBackend = $this->getMockBuilder(\OC\User\Backend::class)
|
2016-07-11 17:23:23 +03:00
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2019-02-22 15:07:26 +03:00
|
|
|
$group = new \OC\Group\Group('group1', array($backend1, $backend2), $this->dispatcher, $userManager);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$backend1->expects($this->once())
|
|
|
|
->method('inGroup')
|
|
|
|
->with('user1', 'group1')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(false);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$backend2->expects($this->once())
|
|
|
|
->method('inGroup')
|
|
|
|
->with('user1', 'group1')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(true);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
2016-07-11 17:23:23 +03:00
|
|
|
$this->assertTrue($group->inGroup($this->newUser('user1', $userBackend)));
|
2013-07-10 02:06:22 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
public function testAddUser() {
|
2016-07-11 17:23:23 +03:00
|
|
|
$backend = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2013-07-10 02:06:22 +04:00
|
|
|
$userManager = $this->getUserManager();
|
2016-07-11 17:23:23 +03:00
|
|
|
$userBackend = $this->getMockBuilder('\OC\User\Backend')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2019-02-22 15:07:26 +03:00
|
|
|
$group = new \OC\Group\Group('group1', array($backend), $this->dispatcher, $userManager);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$backend->expects($this->once())
|
|
|
|
->method('inGroup')
|
|
|
|
->with('user1', 'group1')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(false);
|
2013-07-10 02:06:22 +04:00
|
|
|
$backend->expects($this->any())
|
|
|
|
->method('implementsActions')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(true);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$backend->expects($this->once())
|
|
|
|
->method('addToGroup')
|
|
|
|
->with('user1', 'group1');
|
|
|
|
|
2016-07-11 17:23:23 +03:00
|
|
|
$group->addUser($this->newUser('user1', $userBackend));
|
2013-07-10 02:06:22 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
public function testAddUserAlreadyInGroup() {
|
2016-07-11 17:23:23 +03:00
|
|
|
$backend = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2013-07-10 02:06:22 +04:00
|
|
|
$userManager = $this->getUserManager();
|
2016-07-11 17:23:23 +03:00
|
|
|
$userBackend = $this->getMockBuilder('\OC\User\Backend')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2019-02-22 15:07:26 +03:00
|
|
|
$group = new \OC\Group\Group('group1', array($backend), $this->dispatcher, $userManager);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$backend->expects($this->once())
|
|
|
|
->method('inGroup')
|
|
|
|
->with('user1', 'group1')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(true);
|
2013-07-10 02:06:22 +04:00
|
|
|
$backend->expects($this->any())
|
|
|
|
->method('implementsActions')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(true);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$backend->expects($this->never())
|
|
|
|
->method('addToGroup');
|
|
|
|
|
2016-07-11 17:23:23 +03:00
|
|
|
$group->addUser($this->newUser('user1', $userBackend));
|
2013-07-10 02:06:22 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
public function testRemoveUser() {
|
2016-07-11 17:23:23 +03:00
|
|
|
$backend = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2013-07-10 02:06:22 +04:00
|
|
|
$userManager = $this->getUserManager();
|
2016-07-11 17:23:23 +03:00
|
|
|
$userBackend = $this->getMockBuilder('\OC\User\Backend')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2019-02-22 15:07:26 +03:00
|
|
|
$group = new \OC\Group\Group('group1', array($backend), $this->dispatcher, $userManager);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$backend->expects($this->once())
|
|
|
|
->method('inGroup')
|
|
|
|
->with('user1', 'group1')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(true);
|
2013-07-10 02:06:22 +04:00
|
|
|
$backend->expects($this->any())
|
|
|
|
->method('implementsActions')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(true);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$backend->expects($this->once())
|
|
|
|
->method('removeFromGroup')
|
|
|
|
->with('user1', 'group1');
|
|
|
|
|
2016-07-11 17:23:23 +03:00
|
|
|
$group->removeUser($this->newUser('user1', $userBackend));
|
2013-07-10 02:06:22 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
public function testRemoveUserNotInGroup() {
|
2016-07-11 17:23:23 +03:00
|
|
|
$backend = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2013-07-10 02:06:22 +04:00
|
|
|
$userManager = $this->getUserManager();
|
2017-07-24 21:42:55 +03:00
|
|
|
$userBackend = $this->getMockBuilder(\OC\User\Backend::class)
|
2016-07-11 17:23:23 +03:00
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2019-02-22 15:07:26 +03:00
|
|
|
$group = new \OC\Group\Group('group1', array($backend), $this->dispatcher, $userManager);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$backend->expects($this->once())
|
|
|
|
->method('inGroup')
|
|
|
|
->with('user1', 'group1')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(false);
|
2013-07-10 02:06:22 +04:00
|
|
|
$backend->expects($this->any())
|
|
|
|
->method('implementsActions')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(true);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$backend->expects($this->never())
|
|
|
|
->method('removeFromGroup');
|
|
|
|
|
2016-07-11 17:23:23 +03:00
|
|
|
$group->removeUser($this->newUser('user1', $userBackend));
|
2013-07-10 02:06:22 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
public function testRemoveUserMultipleBackends() {
|
2016-07-11 17:23:23 +03:00
|
|
|
$backend1 = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
$backend2 = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2013-07-10 02:06:22 +04:00
|
|
|
$userManager = $this->getUserManager();
|
2016-07-11 17:23:23 +03:00
|
|
|
$userBackend = $this->getMockBuilder('\OC\User\Backend')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2019-02-22 15:07:26 +03:00
|
|
|
$group = new \OC\Group\Group('group1', array($backend1, $backend2), $this->dispatcher, $userManager);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$backend1->expects($this->once())
|
|
|
|
->method('inGroup')
|
|
|
|
->with('user1', 'group1')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(true);
|
2013-07-10 02:06:22 +04:00
|
|
|
$backend1->expects($this->any())
|
|
|
|
->method('implementsActions')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(true);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$backend1->expects($this->once())
|
|
|
|
->method('removeFromGroup')
|
|
|
|
->with('user1', 'group1');
|
|
|
|
|
|
|
|
$backend2->expects($this->once())
|
|
|
|
->method('inGroup')
|
|
|
|
->with('user1', 'group1')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(true);
|
2013-07-10 02:06:22 +04:00
|
|
|
$backend2->expects($this->any())
|
|
|
|
->method('implementsActions')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(true);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$backend2->expects($this->once())
|
|
|
|
->method('removeFromGroup')
|
|
|
|
->with('user1', 'group1');
|
|
|
|
|
2016-07-11 17:23:23 +03:00
|
|
|
$group->removeUser($this->newUser('user1', $userBackend));
|
2013-07-10 02:06:22 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
public function testSearchUsers() {
|
2016-07-11 17:23:23 +03:00
|
|
|
$backend = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2013-07-10 02:06:22 +04:00
|
|
|
$userManager = $this->getUserManager();
|
2019-02-22 15:07:26 +03:00
|
|
|
$group = new \OC\Group\Group('group1', array($backend), $this->dispatcher, $userManager);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$backend->expects($this->once())
|
|
|
|
->method('usersInGroup')
|
|
|
|
->with('group1', '2')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(array('user2'));
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$users = $group->searchUsers('2');
|
|
|
|
|
|
|
|
$this->assertEquals(1, count($users));
|
2018-06-16 00:00:59 +03:00
|
|
|
$user2 = $users['user2'];
|
2013-07-10 02:06:22 +04:00
|
|
|
$this->assertEquals('user2', $user2->getUID());
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testSearchUsersMultipleBackends() {
|
2016-07-11 17:23:23 +03:00
|
|
|
$backend1 = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
$backend2 = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2013-07-10 02:06:22 +04:00
|
|
|
$userManager = $this->getUserManager();
|
2019-02-22 15:07:26 +03:00
|
|
|
$group = new \OC\Group\Group('group1', array($backend1, $backend2), $this->dispatcher, $userManager);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$backend1->expects($this->once())
|
|
|
|
->method('usersInGroup')
|
|
|
|
->with('group1', '2')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(array('user2'));
|
2013-07-10 02:06:22 +04:00
|
|
|
$backend2->expects($this->once())
|
|
|
|
->method('usersInGroup')
|
|
|
|
->with('group1', '2')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(array('user2'));
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$users = $group->searchUsers('2');
|
|
|
|
|
|
|
|
$this->assertEquals(1, count($users));
|
2018-06-16 00:00:59 +03:00
|
|
|
$user2 = $users['user2'];
|
2013-07-10 02:06:22 +04:00
|
|
|
$this->assertEquals('user2', $user2->getUID());
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testSearchUsersLimitAndOffset() {
|
2016-07-11 17:23:23 +03:00
|
|
|
$backend = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2013-07-10 02:06:22 +04:00
|
|
|
$userManager = $this->getUserManager();
|
2019-02-22 15:07:26 +03:00
|
|
|
$group = new \OC\Group\Group('group1', array($backend), $this->dispatcher, $userManager);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$backend->expects($this->once())
|
|
|
|
->method('usersInGroup')
|
|
|
|
->with('group1', 'user', 1, 1)
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(array('user2'));
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$users = $group->searchUsers('user', 1, 1);
|
|
|
|
|
|
|
|
$this->assertEquals(1, count($users));
|
2018-06-16 00:00:59 +03:00
|
|
|
$user2 = $users['user2'];
|
2013-07-10 02:06:22 +04:00
|
|
|
$this->assertEquals('user2', $user2->getUID());
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testSearchUsersMultipleBackendsLimitAndOffset() {
|
2016-07-11 17:23:23 +03:00
|
|
|
$backend1 = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
$backend2 = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2013-07-10 02:06:22 +04:00
|
|
|
$userManager = $this->getUserManager();
|
2019-02-22 15:07:26 +03:00
|
|
|
$group = new \OC\Group\Group('group1', array($backend1, $backend2), $this->dispatcher, $userManager);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$backend1->expects($this->once())
|
|
|
|
->method('usersInGroup')
|
|
|
|
->with('group1', 'user', 2, 1)
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(array('user2'));
|
2013-07-10 02:06:22 +04:00
|
|
|
$backend2->expects($this->once())
|
|
|
|
->method('usersInGroup')
|
2014-04-15 19:53:57 +04:00
|
|
|
->with('group1', 'user', 2, 1)
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(array('user1'));
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$users = $group->searchUsers('user', 2, 1);
|
|
|
|
|
|
|
|
$this->assertEquals(2, count($users));
|
2018-06-16 00:00:59 +03:00
|
|
|
$user2 = $users['user2'];
|
|
|
|
$user1 = $users['user1'];
|
2013-07-10 02:06:22 +04:00
|
|
|
$this->assertEquals('user2', $user2->getUID());
|
|
|
|
$this->assertEquals('user1', $user1->getUID());
|
|
|
|
}
|
|
|
|
|
2014-04-08 14:32:30 +04:00
|
|
|
public function testCountUsers() {
|
2016-07-11 17:23:23 +03:00
|
|
|
$backend1 = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2014-04-08 14:32:30 +04:00
|
|
|
$userManager = $this->getUserManager();
|
2019-02-22 15:07:26 +03:00
|
|
|
$group = new \OC\Group\Group('group1', array($backend1), $this->dispatcher, $userManager);
|
2014-04-08 14:32:30 +04:00
|
|
|
|
|
|
|
$backend1->expects($this->once())
|
|
|
|
->method('countUsersInGroup')
|
|
|
|
->with('group1', '2')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(3);
|
2014-04-08 14:32:30 +04:00
|
|
|
|
|
|
|
$backend1->expects($this->any())
|
|
|
|
->method('implementsActions')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(true);
|
2014-04-08 14:32:30 +04:00
|
|
|
|
|
|
|
$users = $group->count('2');
|
|
|
|
|
|
|
|
$this->assertSame(3, $users);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testCountUsersMultipleBackends() {
|
2016-07-11 17:23:23 +03:00
|
|
|
$backend1 = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
|
|
|
$backend2 = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2014-04-08 14:32:30 +04:00
|
|
|
$userManager = $this->getUserManager();
|
2019-02-22 15:07:26 +03:00
|
|
|
$group = new \OC\Group\Group('group1', array($backend1, $backend2), $this->dispatcher, $userManager);
|
2014-04-08 14:32:30 +04:00
|
|
|
|
|
|
|
$backend1->expects($this->once())
|
|
|
|
->method('countUsersInGroup')
|
|
|
|
->with('group1', '2')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(3);
|
2014-04-08 14:32:30 +04:00
|
|
|
$backend1->expects($this->any())
|
|
|
|
->method('implementsActions')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(true);
|
2014-04-08 14:32:30 +04:00
|
|
|
|
|
|
|
$backend2->expects($this->once())
|
|
|
|
->method('countUsersInGroup')
|
|
|
|
->with('group1', '2')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(4);
|
2014-04-08 14:32:30 +04:00
|
|
|
$backend2->expects($this->any())
|
|
|
|
->method('implementsActions')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(true);
|
2014-04-08 14:32:30 +04:00
|
|
|
|
|
|
|
$users = $group->count('2');
|
|
|
|
|
|
|
|
$this->assertSame(7, $users);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testCountUsersNoMethod() {
|
2016-07-11 17:23:23 +03:00
|
|
|
$backend1 = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2014-04-08 14:32:30 +04:00
|
|
|
$userManager = $this->getUserManager();
|
2019-02-22 15:07:26 +03:00
|
|
|
$group = new \OC\Group\Group('group1', array($backend1), $this->dispatcher, $userManager);
|
2014-04-08 14:32:30 +04:00
|
|
|
|
|
|
|
$backend1->expects($this->never())
|
|
|
|
->method('countUsersInGroup');
|
|
|
|
$backend1->expects($this->any())
|
|
|
|
->method('implementsActions')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(false);
|
2014-04-08 14:32:30 +04:00
|
|
|
|
|
|
|
$users = $group->count('2');
|
|
|
|
|
|
|
|
$this->assertSame(false, $users);
|
|
|
|
}
|
|
|
|
|
2013-07-10 02:06:22 +04:00
|
|
|
public function testDelete() {
|
2016-07-11 17:23:23 +03:00
|
|
|
$backend = $this->getMockBuilder('OC\Group\Database')
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
->getMock();
|
2013-07-10 02:06:22 +04:00
|
|
|
$userManager = $this->getUserManager();
|
2019-02-22 15:07:26 +03:00
|
|
|
$group = new \OC\Group\Group('group1', array($backend), $this->dispatcher, $userManager);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$backend->expects($this->once())
|
|
|
|
->method('deleteGroup')
|
|
|
|
->with('group1');
|
|
|
|
$backend->expects($this->any())
|
|
|
|
->method('implementsActions')
|
2020-03-26 00:21:27 +03:00
|
|
|
->willReturn(true);
|
2013-07-10 02:06:22 +04:00
|
|
|
|
|
|
|
$group->delete();
|
|
|
|
}
|
|
|
|
}
|