Add dispatcher events to User and Group objects

Signed-off-by: Joas Schilling <coding@schilljs.com>
pull/11871/head
Joas Schilling 5 years ago committed by Julius Härtl
parent 55ae7fa2a4
commit 01b4db62fb
No known key found for this signature in database
GPG Key ID: 4C614C6ED2CDE6DF

@ -27,6 +27,7 @@ namespace OCA\Files\Tests\Service;
use OC\Tags;
use OCA\Files\Service\TagService;
use OCP\Activity\IManager;
use OCP\IUser;
use OCP\IUserSession;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
@ -75,8 +76,7 @@ class TagServiceTest extends \Test\TestCase {
\OC::$server->getUserManager()->createUser($this->user, 'test');
\OC_User::setUserId($this->user);
\OC_Util::setupFS($this->user);
/** @var \OCP\IUser */
$user = new \OC\User\User($this->user, null);
$user = $this->createMock(IUser::class);
/**
* @var \OCP\IUserSession
*/

@ -64,7 +64,7 @@ class UserGlobalStoragesServiceTest extends GlobalStoragesServiceTest {
$this->globalStoragesService = $this->service;
$this->user = new \OC\User\User(self::USER_ID, null);
$this->user = $this->createMock(IUser::class);
/** @var \OCP\IUserSession|\PHPUnit_Framework_MockObject_MockObject $userSession */
$userSession = $this->createMock(IUserSession::class);
$userSession

@ -1299,7 +1299,7 @@ class View {
if ($owner instanceof IUser) {
return $owner;
} else {
return new User($ownerId, null);
return new User($ownerId, null, \OC::$server->getEventDispatcher());
}
}

@ -31,55 +31,50 @@
namespace OC\Group;
use OCP\Group\Backend\IHideFromCollaborationBackend;
use OC\Hooks\PublicEmitter;
use OCP\GroupInterface;
use OCP\IGroup;
use OCP\IUser;
use OCP\Group\Backend\ICountDisabledInGroup;
use OCP\IUserManager;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\GenericEvent;
class Group implements IGroup {
/** @var null|string */
protected $displayName;
/**
* @var string $id
*/
/** @var string */
private $gid;
/**
* @var \OC\User\User[] $users
*/
/** @var \OC\User\User[] */
private $users = array();
/**
* @var bool $usersLoaded
*/
/** @var bool */
private $usersLoaded;
/**
* @var \OC\Group\Backend[]|\OC\Group\Database[] $backend
*/
/** @var Backend[] */
private $backends;
/**
* @var \OC\Hooks\PublicEmitter $emitter
*/
/** @var EventDispatcherInterface */
private $dispatcher;
/** @var \OC\User\Manager|IUserManager */
private $userManager;
/** @var PublicEmitter */
private $emitter;
/**
* @var \OC\User\Manager $userManager
*/
private $userManager;
/**
* @param string $gid
* @param \OC\Group\Backend[] $backends
* @param \OC\User\Manager $userManager
* @param \OC\Hooks\PublicEmitter $emitter
* @param Backend[] $backends
* @param EventDispatcherInterface $dispatcher
* @param IUserManager $userManager
* @param PublicEmitter $emitter
* @param string $displayName
*/
public function __construct($gid, $backends, $userManager, $emitter = null, $displayName = null) {
public function __construct(string $gid, array $backends, EventDispatcherInterface $dispatcher, IUserManager $userManager, PublicEmitter $emitter = null, ?string $displayName = null) {
$this->gid = $gid;
$this->backends = $backends;
$this->dispatcher = $dispatcher;
$this->userManager = $userManager;
$this->emitter = $emitter;
$this->displayName = $displayName;
@ -151,6 +146,10 @@ class Group implements IGroup {
return;
}
$this->dispatcher->dispatch(IGroup::class . '::preAddUser', new GenericEvent($this, [
'user' => $user,
]));
if ($this->emitter) {
$this->emitter->emit('\OC\Group', 'preAddUser', array($this, $user));
}
@ -160,6 +159,11 @@ class Group implements IGroup {
if ($this->users) {
$this->users[$user->getUID()] = $user;
}
$this->dispatcher->dispatch(IGroup::class . '::postAddUser', new GenericEvent($this, [
'user' => $user,
]));
if ($this->emitter) {
$this->emitter->emit('\OC\Group', 'postAddUser', array($this, $user));
}
@ -175,6 +179,9 @@ class Group implements IGroup {
*/
public function removeUser($user) {
$result = false;
$this->dispatcher->dispatch(IGroup::class . '::preRemoveUser', new GenericEvent($this, [
'user' => $user,
]));
if ($this->emitter) {
$this->emitter->emit('\OC\Group', 'preRemoveUser', array($this, $user));
}
@ -185,6 +192,9 @@ class Group implements IGroup {
}
}
if ($result) {
$this->dispatcher->dispatch(IGroup::class . '::postRemoveUser', new GenericEvent($this, [
'user' => $user,
]));
if ($this->emitter) {
$this->emitter->emit('\OC\Group', 'postRemoveUser', array($this, $user));
}
@ -292,6 +302,7 @@ class Group implements IGroup {
}
$result = false;
$this->dispatcher->dispatch(IGroup::class . '::preDelete', new GenericEvent($this));
if ($this->emitter) {
$this->emitter->emit('\OC\Group', 'preDelete', array($this));
}
@ -301,8 +312,11 @@ class Group implements IGroup {
$backend->deleteGroup($this->gid);
}
}
if ($result and $this->emitter) {
$this->emitter->emit('\OC\Group', 'postDelete', array($this));
if ($result) {
$this->dispatcher->dispatch(IGroup::class . '::postDelete', new GenericEvent($this));
if ($this->emitter) {
$this->emitter->emit('\OC\Group', 'postDelete', array($this));
}
}
return $result;
}

@ -44,6 +44,7 @@ use OCP\IGroup;
use OCP\IGroupManager;
use OCP\ILogger;
use OCP\IUser;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
/**
* Class Manager
@ -61,39 +62,37 @@ use OCP\IUser;
* @package OC\Group
*/
class Manager extends PublicEmitter implements IGroupManager {
/**
* @var GroupInterface[] $backends
*/
private $backends = array();
/** @var GroupInterface[] */
private $backends = [];
/**
* @var \OC\User\Manager $userManager
*/
/** @var \OC\User\Manager */
private $userManager;
/** @var EventDispatcherInterface */
private $dispatcher;
/** @var ILogger */
private $logger;
/**
* @var \OC\Group\Group[]
*/
private $cachedGroups = array();
/** @var \OC\Group\Group[] */
private $cachedGroups = [];
/**
* @var \OC\Group\Group[]
*/
private $cachedUserGroups = array();
/** @var \OC\Group\Group[] */
private $cachedUserGroups = [];
/** @var \OC\SubAdmin */
private $subAdmin = null;
/** @var ILogger */
private $logger;
/**
* @param \OC\User\Manager $userManager
* @param EventDispatcherInterface $dispatcher
* @param ILogger $logger
*/
public function __construct(\OC\User\Manager $userManager, ILogger $logger) {
public function __construct(\OC\User\Manager $userManager,
EventDispatcherInterface $dispatcher,
ILogger $logger) {
$this->userManager = $userManager;
$this->dispatcher = $dispatcher;
$this->logger = $logger;
$cachedGroups = & $this->cachedGroups;
$cachedUserGroups = & $this->cachedUserGroups;
$this->listen('\OC\Group', 'postDelete', function ($group) use (&$cachedGroups, &$cachedUserGroups) {
@ -101,19 +100,19 @@ class Manager extends PublicEmitter implements IGroupManager {
* @var \OC\Group\Group $group
*/
unset($cachedGroups[$group->getGID()]);
$cachedUserGroups = array();
$cachedUserGroups = [];
});
$this->listen('\OC\Group', 'postAddUser', function ($group) use (&$cachedUserGroups) {
/**
* @var \OC\Group\Group $group
*/
$cachedUserGroups = array();
$cachedUserGroups = [];
});
$this->listen('\OC\Group', 'postRemoveUser', function ($group) use (&$cachedUserGroups) {
/**
* @var \OC\Group\Group $group
*/
$cachedUserGroups = array();
$cachedUserGroups = [];
});
}
@ -144,7 +143,7 @@ class Manager extends PublicEmitter implements IGroupManager {
}
public function clearBackends() {
$this->backends = array();
$this->backends = [];
$this->clearCaches();
}
@ -158,8 +157,8 @@ class Manager extends PublicEmitter implements IGroupManager {
protected function clearCaches() {
$this->cachedGroups = array();
$this->cachedUserGroups = array();
$this->cachedGroups = [];
$this->cachedUserGroups = [];
}
/**
@ -179,7 +178,7 @@ class Manager extends PublicEmitter implements IGroupManager {
* @return \OCP\IGroup
*/
protected function getGroupObject($gid, $displayName = null) {
$backends = array();
$backends = [];
foreach ($this->backends as $backend) {
if ($backend->implementsActions(\OC\Group\Backend::GROUP_DETAILS)) {
$groupData = $backend->getGroupDetails($gid);
@ -197,7 +196,7 @@ class Manager extends PublicEmitter implements IGroupManager {
if (count($backends) === 0) {
return null;
}
$this->cachedGroups[$gid] = new Group($gid, $backends, $this->userManager, $this, $displayName);
$this->cachedGroups[$gid] = new Group($gid, $backends, $this->dispatcher, $this->userManager, $this, $displayName);
return $this->cachedGroups[$gid];
}
@ -239,7 +238,7 @@ class Manager extends PublicEmitter implements IGroupManager {
* @return \OC\Group\Group[]
*/
public function search($search, $limit = null, $offset = null) {
$groups = array();
$groups = [];
foreach ($this->backends as $backend) {
$groupIds = $backend->getGroups($search, $limit, $offset);
foreach ($groupIds as $groupId) {
@ -276,7 +275,7 @@ class Manager extends PublicEmitter implements IGroupManager {
if (isset($this->cachedUserGroups[$uid])) {
return $this->cachedUserGroups[$uid];
}
$groups = array();
$groups = [];
foreach ($this->backends as $backend) {
$groupIds = $backend->getUserGroups($uid);
if (is_array($groupIds)) {
@ -351,11 +350,11 @@ class Manager extends PublicEmitter implements IGroupManager {
public function displayNamesInGroup($gid, $search = '', $limit = -1, $offset = 0) {
$group = $this->get($gid);
if(is_null($group)) {
return array();
return [];
}
$search = trim($search);
$groupUsers = array();
$groupUsers = [];
if(!empty($search)) {
// only user backends have the capability to do a complex search for users
@ -384,7 +383,7 @@ class Manager extends PublicEmitter implements IGroupManager {
$groupUsers = $group->searchUsers('', $limit, $offset);
}
$matchingUsers = array();
$matchingUsers = [];
foreach($groupUsers as $groupUser) {
$matchingUsers[$groupUser->getUID()] = $groupUser->getDisplayName();
}

@ -316,14 +316,13 @@ class Server extends ServerContainer implements IServerContainer {
$this->registerAlias('LazyRootFolder', \OCP\Files\IRootFolder::class);
$this->registerService(\OC\User\Manager::class, function (Server $c) {
$config = $c->getConfig();
return new \OC\User\Manager($config);
return new \OC\User\Manager($c->getConfig(), $c->getEventDispatcher());
});
$this->registerAlias('UserManager', \OC\User\Manager::class);
$this->registerAlias(\OCP\IUserManager::class, \OC\User\Manager::class);
$this->registerService(\OCP\IGroupManager::class, function (Server $c) {
$groupManager = new \OC\Group\Manager($this->getUserManager(), $this->getLogger());
$groupManager = new \OC\Group\Manager($this->getUserManager(), $c->getEventDispatcher(), $this->getLogger());
$groupManager->listen('\OC\Group', 'preCreate', function ($gid) {
\OC_Hook::emit('OC_Group', 'pre_createGroup', array('run' => true, 'gid' => $gid));
});
@ -1095,6 +1094,8 @@ class Server extends ServerContainer implements IServerContainer {
$this->registerAlias(\OCP\Collaboration\AutoComplete\IManager::class, \OC\Collaboration\AutoComplete\Manager::class);
$this->registerAlias(\OCP\Collaboration\Resources\IManager::class, \OC\Collaboration\Resources\Manager::class);
$this->registerService('SettingsManager', function (Server $c) {
$manager = new \OC\Settings\Manager(
$c->getLogger(),

@ -39,6 +39,7 @@ use OCP\IUserBackend;
use OCP\IUserManager;
use OCP\IConfig;
use OCP\UserInterface;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
/**
* Class Manager
@ -68,16 +69,14 @@ class Manager extends PublicEmitter implements IUserManager {
*/
private $cachedUsers = array();
/**
* @var \OCP\IConfig $config
*/
/** @var IConfig */
private $config;
/** @var EventDispatcherInterface */
private $dispatcher;
/**
* @param \OCP\IConfig $config
*/
public function __construct(IConfig $config) {
public function __construct(IConfig $config, EventDispatcherInterface $dispatcher) {
$this->config = $config;
$this->dispatcher = $dispatcher;
$cachedUsers = &$this->cachedUsers;
$this->listen('\OC\User', 'postDelete', function ($user) use (&$cachedUsers) {
/** @var \OC\User\User $user */
@ -156,7 +155,7 @@ class Manager extends PublicEmitter implements IUserManager {
return $this->cachedUsers[$uid];
}
$user = new User($uid, $backend, $this, $this->config);
$user = new User($uid, $backend, $this->dispatcher, $this, $this->config);
if ($cacheUser) {
$this->cachedUsers[$uid] = $user;
}

@ -42,30 +42,34 @@ use OCP\IUser;
use OCP\IConfig;
use OCP\UserInterface;
use \OCP\IUserBackend;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\GenericEvent;
class User implements IUser {
/** @var string $uid */
/** @var string */
private $uid;
/** @var string $displayName */
/** @var string */
private $displayName;
/** @var UserInterface $backend */
/** @var UserInterface|null */
private $backend;
/** @var EventDispatcherInterface */
private $dispatcher;
/** @var bool $enabled */
/** @var bool */
private $enabled;
/** @var Emitter|Manager $emitter */
/** @var Emitter|Manager */
private $emitter;
/** @var string $home */
/** @var string */
private $home;
/** @var int $lastLogin */
/** @var int */
private $lastLogin;
/** @var \OCP\IConfig $config */
/** @var \OCP\IConfig */
private $config;
/** @var IAvatarManager */
@ -74,16 +78,10 @@ class User implements IUser {
/** @var IURLGenerator */
private $urlGenerator;
/**
* @param string $uid
* @param UserInterface $backend
* @param \OC\Hooks\Emitter $emitter
* @param IConfig|null $config
* @param IURLGenerator $urlGenerator
*/
public function __construct($uid, $backend, $emitter = null, IConfig $config = null, $urlGenerator = null) {
public function __construct(string $uid, ?UserInterface $backend, EventDispatcherInterface $dispatcher, $emitter = null, IConfig $config = null, $urlGenerator = null) {
$this->uid = $uid;
$this->backend = $backend;
$this->dispatcher = $dispatcher;
$this->emitter = $emitter;
if(is_null($config)) {
$config = \OC::$server->getConfig();
@ -115,7 +113,7 @@ class User implements IUser {
public function getDisplayName() {
if (!isset($this->displayName)) {
$displayName = '';
if ($this->backend and $this->backend->implementsActions(Backend::GET_DISPLAYNAME)) {
if ($this->backend && $this->backend->implementsActions(Backend::GET_DISPLAYNAME)) {
// get display name and strip whitespace from the beginning and end of it
$backendDisplayName = $this->backend->getDisplayName($this->uid);
if (is_string($backendDisplayName)) {
@ -199,6 +197,7 @@ class User implements IUser {
* @return bool
*/
public function delete() {
$this->dispatcher->dispatch(IUser::class . '::preDelete', new GenericEvent($this));
if ($this->emitter) {
$this->emitter->emit('\OC\User', 'preDelete', array($this));
}
@ -243,6 +242,7 @@ class User implements IUser {
$accountManager = \OC::$server->query(AccountManager::class);
$accountManager->deleteUser($this);
$this->dispatcher->dispatch(IUser::class . '::postDelete', new GenericEvent($this));
if ($this->emitter) {
$this->emitter->emit('\OC\User', 'postDelete', array($this));
}
@ -258,11 +258,19 @@ class User implements IUser {
* @return bool
*/
public function setPassword($password, $recoveryPassword = null) {
$this->dispatcher->dispatch(IUser::class . '::preSetPassword', new GenericEvent($this, [
'password' => $password,
'recoveryPassword' => $recoveryPassword,
]));
if ($this->emitter) {
$this->emitter->emit('\OC\User', 'preSetPassword', array($this, $password, $recoveryPassword));
}
if ($this->backend->implementsActions(Backend::SET_PASSWORD)) {
$result = $this->backend->setPassword($this->uid, $password);
$this->dispatcher->dispatch(IUser::class . '::postSetPassword', new GenericEvent($this, [
'password' => $password,
'recoveryPassword' => $recoveryPassword,
]));
if ($this->emitter) {
$this->emitter->emit('\OC\User', 'postSetPassword', array($this, $password, $recoveryPassword));
}
@ -455,6 +463,11 @@ class User implements IUser {
}
public function triggerChange($feature, $value = null, $oldValue = null) {
$this->dispatcher->dispatch(IUser::class . '::changeUser', new GenericEvent($this, [
'feature' => $feature,
'value' => $value,
'oldValue' => $oldValue,
]));
if ($this->emitter) {
$this->emitter->emit('\OC\User', 'changeUser', array($this, $feature, $value, $oldValue));
}

@ -17,7 +17,9 @@ use OCP\App\AppPathNotFoundException;
use OCP\App\IAppManager;
use OCP\ICache;
use OCP\ICacheFactory;
use OCP\IGroup;
use OCP\IGroupManager;
use OCP\IUser;
use OCP\IUserSession;
use OCP\IAppConfig;
use OCP\IConfig;
@ -144,10 +146,14 @@ class AppManagerTest extends TestCase {
}
public function testEnableAppForGroups() {
$groups = array(
new Group('group1', array(), null),
new Group('group2', array(), null)
);
$group1 = $this->createMock(IGroup::class);
$group1->method('getGID')
->willReturn('group1');
$group2 = $this->createMock(IGroup::class);
$group2->method('getGID')
->willReturn('group2');
$groups = [$group1, $group2];
$this->expectClearCache();
/** @var AppManager|\PHPUnit_Framework_MockObject_MockObject $manager */
@ -187,10 +193,14 @@ class AppManagerTest extends TestCase {
* @param array $appInfo
*/
public function testEnableAppForGroupsAllowedTypes(array $appInfo) {
$groups = array(
new Group('group1', array(), null),
new Group('group2', array(), null)
);
$group1 = $this->createMock(IGroup::class);
$group1->method('getGID')
->willReturn('group1');
$group2 = $this->createMock(IGroup::class);
$group2->method('getGID')
->willReturn('group2');
$groups = [$group1, $group2];
$this->expectClearCache();
/** @var AppManager|\PHPUnit_Framework_MockObject_MockObject $manager */
@ -237,10 +247,14 @@ class AppManagerTest extends TestCase {
* @expectedExceptionMessage test can't be enabled for groups.
*/
public function testEnableAppForGroupsForbiddenTypes($type) {
$groups = array(
new Group('group1', array(), null),
new Group('group2', array(), null)
);
$group1 = $this->createMock(IGroup::class);
$group1->method('getGID')
->willReturn('group1');
$group2 = $this->createMock(IGroup::class);
$group2->method('getGID')
->willReturn('group2');
$groups = [$group1, $group2];
/** @var AppManager|\PHPUnit_Framework_MockObject_MockObject $manager */
$manager = $this->getMockBuilder(AppManager::class)
@ -284,10 +298,11 @@ class AppManagerTest extends TestCase {
}
private function newUser($uid) {
$config = $this->createMock(IConfig::class);
$urlgenerator = $this->createMock(IURLGenerator::class);
$user = $this->createMock(IUser::class);
$user->method('getUID')
->willReturn($uid);
return new User($uid, null, null, $config, $urlgenerator);
return $user;
}
public function testIsEnabledForUserEnabled() {

@ -332,7 +332,7 @@ class CacheTest extends \Test\TestCase {
$userId = $this->getUniqueId('user');
\OC::$server->getUserManager()->createUser($userId, $userId);
$this->loginAsUser($userId);
$user = new \OC\User\User($userId, null);
$user = new \OC\User\User($userId, null, \OC::$server->getEventDispatcher());
$file1 = 'folder';
$file2 = 'folder/foobar';
@ -402,7 +402,7 @@ class CacheTest extends \Test\TestCase {
$userId = static::getUniqueID('user');
\OC::$server->getUserManager()->createUser($userId, $userId);
static::loginAsUser($userId);
$user = new \OC\User\User($userId, null);
$user = new \OC\User\User($userId, null, \OC::$server->getEventDispatcher());
$file1 = 'folder';
$file2 = 'folder/foobar';

@ -14,6 +14,7 @@ use OC\Files\Storage\Home;
use OC\Files\Storage\Temporary;
use OC\User\User;
use OCP\IConfig;
use OCP\IUser;
use Test\TestCase;
use Test\Traits\UserTrait;
@ -29,9 +30,15 @@ class FileInfoTest extends TestCase {
}
public function testIsMountedHomeStorage() {
$user = $this->createMock(IUser::class);
$user->method('getUID')
->willReturn('foo');
$user->method('getHome')
->willReturn('foo');
$fileInfo = new FileInfo(
'',
new Home(['user' => new User('foo', $this->userBackend, null, $this->config)]),
new Home(['user' => $user]),
'', [], null);
$this->assertFalse($fileInfo->isMounted());
}

@ -45,7 +45,7 @@ class IntegrationTest extends \Test\TestCase {
\OC_Hook::clear('OC_Filesystem');
$user = new User($this->getUniqueID('user'), new \Test\Util\User\Dummy);
$user = new User($this->getUniqueID('user'), new \Test\Util\User\Dummy, \OC::$server->getEventDispatcher());
$this->loginAsUser($user->getUID());
$this->view = new View();

@ -18,6 +18,7 @@ use OCP\Files\Storage;
use OCP\IConfig;
use OCP\ILogger;
use OCP\IURLGenerator;
use OCP\IUser;
use OCP\IUserManager;
use OCP\Files\NotFoundException;
@ -45,14 +46,7 @@ abstract class NodeTest extends \Test\TestCase {
protected function setUp() {
parent::setUp();
$config = $this->getMockBuilder(IConfig::class)
->disableOriginalConstructor()
->getMock();
$urlGenerator = $this->getMockBuilder(IURLGenerator
::class)
->disableOriginalConstructor()
->getMock();
$this->user = new \OC\User\User('', new \Test\Util\User\Dummy, null, $config, $urlGenerator);
$this->user = $this->createMock(IUser::class);
$this->manager = $this->getMockBuilder(Manager::class)
->disableOriginalConstructor()
->getMock();

@ -39,14 +39,7 @@ class RootTest extends \Test\TestCase {
protected function setUp() {
parent::setUp();
$config = $this->getMockBuilder(IConfig::class)
->disableOriginalConstructor()
->getMock();
$urlgenerator = $this->getMockBuilder(IURLGenerator::class)
->disableOriginalConstructor()
->getMock();
$this->user = new \OC\User\User('', new \Test\Util\User\Dummy, null, $config, $urlgenerator);
$this->user = $this->createMock(IUser::class);
$this->manager = $this->getMockBuilder(Manager::class)
->disableOriginalConstructor()
->getMock();

@ -12,8 +12,19 @@ namespace Test\Group;
use OC\User\User;
use OCP\IConfig;
use OCP\IURLGenerator;
use OCP\IUser;
use PHPUnit\Framework\MockObject\MockObject;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
class GroupTest extends \Test\TestCase {
/** @var EventDispatcherInterface|MockObject */
protected $dispatcher;
public function setUp() {
parent::setUp();
$this->dispatcher = $this->createMock(EventDispatcherInterface::class);
}
/**
* @param string $uid
@ -21,14 +32,13 @@ class GroupTest extends \Test\TestCase {
* @return User
*/
private function newUser($uid, \OC\User\Backend $backend) {
$config = $this->getMockBuilder(IConfig::class)
->disableOriginalConstructor()
->getMock();
$urlgenerator = $this->getMockBuilder(IURLGenerator::class)
->disableOriginalConstructor()
->getMock();
$user = $this->createMock(IUser::class);
$user->method('getUID')
->willReturn($uid);
$user->method('getBackend')
->willReturn($backend);
return new User($uid, $backend, null, $config, $urlgenerator);
return $user;
}
/**
@ -59,7 +69,7 @@ class GroupTest extends \Test\TestCase {
->disableOriginalConstructor()
->getMock();
$userManager = $this->getUserManager();
$group = new \OC\Group\Group('group1', array($backend), $userManager);
$group = new \OC\Group\Group('group1', array($backend), $this->dispatcher, $userManager);
$backend->expects($this->once())
->method('usersInGroup')
@ -83,7 +93,7 @@ class GroupTest extends \Test\TestCase {
->disableOriginalConstructor()
->getMock();
$userManager = $this->getUserManager();
$group = new \OC\Group\Group('group1', array($backend1, $backend2), $userManager);
$group = new \OC\Group\Group('group1', array($backend1, $backend2), $this->dispatcher, $userManager);
$backend1->expects($this->once())
->method('usersInGroup')
@ -114,7 +124,7 @@ class GroupTest extends \Test\TestCase {
$userBackend = $this->getMockBuilder('\OC\User\Backend')
->disableOriginalConstructor()
->getMock();
$group = new \OC\Group\Group('group1', array($backend), $userManager);
$group = new \OC\Group\Group('group1', array($backend), $this->dispatcher, $userManager);
$backend->expects($this->once())
->method('inGroup')
@ -135,7 +145,7 @@ class GroupTest extends \Test\TestCase {
$userBackend = $this->getMockBuilder(\OC\User\Backend::class)
->disableOriginalConstructor()
->getMock();
$group = new \OC\Group\Group('group1', array($backend1, $backend2), $userManager);
$group = new \OC\Group\Group('group1', array($backend1, $backend2), $this->dispatcher, $userManager);
$backend1->expects($this->once())
->method('inGroup')
@ -158,7 +168,7 @@ class GroupTest extends \Test\TestCase {
$userBackend = $this->getMockBuilder('\OC\User\Backend')
->disableOriginalConstructor()
->getMock();
$group = new \OC\Group\Group('group1', array($backend), $userManager);
$group = new \OC\Group\Group('group1', array($backend), $this->dispatcher, $userManager);
$backend->expects($this->once())
->method('inGroup')
@ -183,7 +193,7 @@ class GroupTest extends \Test\TestCase {
$userBackend = $this->getMockBuilder('\OC\User\Backend')
->disableOriginalConstructor()
->getMock();
$group = new \OC\Group\Group('group1', array($backend), $userManager);
$group = new \OC\Group\Group('group1', array($backend), $this->dispatcher, $userManager);
$backend->expects($this->once())
->method('inGroup')
@ -207,7 +217,7 @@ class GroupTest extends \Test\TestCase {
$userBackend = $this->getMockBuilder('\OC\User\Backend')
->disableOriginalConstructor()
->getMock();
$group = new \OC\Group\Group('group1', array($backend), $userManager);
$group = new \OC\Group\Group('group1', array($backend), $this->dispatcher, $userManager);
$backend->expects($this->once())
->method('inGroup')
@ -232,7 +242,7 @@ class GroupTest extends \Test\TestCase {
$userBackend = $this->getMockBuilder(\OC\User\Backend::class)
->disableOriginalConstructor()
->getMock();
$group = new \OC\Group\Group('group1', array($backend), $userManager);
$group = new \OC\Group\Group('group1', array($backend), $this->dispatcher, $userManager);
$backend->expects($this->once())
->method('inGroup')
@ -259,7 +269,7 @@ class GroupTest extends \Test\TestCase {
$userBackend = $this->getMockBuilder('\OC\User\Backend')
->disableOriginalConstructor()
->getMock();
$group = new \OC\Group\Group('group1', array($backend1, $backend2), $userManager);
$group = new \OC\Group\Group('group1', array($backend1, $backend2), $this->dispatcher, $userManager);
$backend1->expects($this->once())
->method('inGroup')
@ -293,7 +303,7 @@ class GroupTest extends \Test\TestCase {
->disableOriginalConstructor()
->getMock();
$userManager = $this->getUserManager();
$group = new \OC\Group\Group('group1', array($backend), $userManager);
$group = new \OC\Group\Group('group1', array($backend), $this->dispatcher, $userManager);
$backend->expects($this->once())
->method('usersInGroup')
@ -315,7 +325,7 @@ class GroupTest extends \Test\TestCase {
->disableOriginalConstructor()
->getMock();
$userManager = $this->getUserManager();
$group = new \OC\Group\Group('group1', array($backend1, $backend2), $userManager);
$group = new \OC\Group\Group('group1', array($backend1, $backend2), $this->dispatcher, $userManager);
$backend1->expects($this->once())
->method('usersInGroup')
@ -338,7 +348,7 @@ class GroupTest extends \Test\TestCase {
->disableOriginalConstructor()
->getMock();
$userManager = $this->getUserManager();
$group = new \OC\Group\Group('group1', array($backend), $userManager);
$group = new \OC\Group\Group('group1', array($backend), $this->dispatcher, $userManager);
$backend->expects($this->once())
->method('usersInGroup')
@ -360,7 +370,7 @@ class GroupTest extends \Test\TestCase {
->disableOriginalConstructor()
->getMock();
$userManager = $this->getUserManager();
$group = new \OC\Group\Group('group1', array($backend1, $backend2), $userManager);
$group = new \OC\Group\Group('group1', array($backend1, $backend2), $this->dispatcher, $userManager);
$backend1->expects($this->once())
->method('usersInGroup')
@ -385,7 +395,7 @@ class GroupTest extends \Test\TestCase {
->disableOriginalConstructor()
->getMock();
$userManager = $this->getUserManager();
$group = new \OC\Group\Group('group1', array($backend1), $userManager);
$group = new \OC\Group\Group('group1', array($backend1), $this->dispatcher, $userManager);
$backend1->expects($this->once())
->method('countUsersInGroup')
@ -409,7 +419,7 @@ class GroupTest extends \Test\TestCase {
->disableOriginalConstructor()
->getMock();
$userManager = $this->getUserManager();
$group = new \OC\Group\Group('group1', array($backend1, $backend2), $userManager);
$group = new \OC\Group\Group('group1', array($backend1, $backend2), $this->dispatcher, $userManager);
$backend1->expects($this->once())
->method('countUsersInGroup')
@ -437,7 +447,7 @@ class GroupTest extends \Test\TestCase {
->disableOriginalConstructor()
->getMock();
$userManager = $this->getUserManager();
$group = new \OC\Group\Group('group1', array($backend1), $userManager);
$group = new \OC\Group\Group('group1', array($backend1), $this->dispatcher, $userManager);
$backend1->expects($this->never())
->method('countUsersInGroup');
@ -455,7 +465,7 @@ class GroupTest extends \Test\TestCase {
->disableOriginalConstructor()
->getMock();
$userManager = $this->getUserManager();
$group = new \OC\Group\Group('group1', array($backend), $userManager);
$group = new \OC\Group\Group('group1', array($backend), $this->dispatcher, $userManager);
$backend->expects($this->once())
->method('deleteGroup')

@ -27,18 +27,23 @@ use OC\User\Manager;
use OCP\ILogger;
use OCP\IUser;
use OCP\GroupInterface;
use PHPUnit\Framework\MockObject\MockObject;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Test\TestCase;
class ManagerTest extends TestCase {
/** @var Manager|\PHPUnit_Framework_MockObject_MockObject $userManager */
/** @var Manager|MockObject */
protected $userManager;
/** @var ILogger|\PHPUnit_Framework_MockObject_MockObject $userManager */
/** @var EventDispatcherInterface|MockObject */
protected $dispatcher;
/** @var ILogger|MockObject */
protected $logger;
protected function setUp() {
parent::setUp();
$this->userManager = $this->createMock(Manager::class);
$this->dispatcher = $this->createMock(EventDispatcherInterface::class);
$this->logger = $this->createMock(ILogger::class);
}
@ -101,7 +106,7 @@ class ManagerTest extends TestCase {
->with('group1')
->will($this->returnValue(true));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend);
$group = $manager->get('group1');
@ -110,7 +115,7 @@ class ManagerTest extends TestCase {
}
public function testGetNoBackend() {
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$this->assertNull($manager->get('group1'));
}
@ -125,7 +130,7 @@ class ManagerTest extends TestCase {
->with('group1')
->will($this->returnValue(false));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend);
$this->assertNull($manager->get('group1'));
@ -135,7 +140,7 @@ class ManagerTest extends TestCase {
$backend = new \Test\Util\Group\Dummy();
$backend->createGroup('group1');
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend);
$group = $manager->get('group1');
@ -162,7 +167,7 @@ class ManagerTest extends TestCase {
->with('group1')
->will($this->returnValue(true));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend1);
$manager->addBackend($backend2);
@ -187,7 +192,7 @@ class ManagerTest extends TestCase {
$backendGroupCreated = true;
}));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend);
$group = $manager->createGroup('group1');
@ -204,7 +209,7 @@ class ManagerTest extends TestCase {
$backend->expects($this->never())
->method('createGroup');
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend);
$group = $manager->createGroup('group1');
@ -225,7 +230,7 @@ class ManagerTest extends TestCase {
->with('group1')
->will($this->returnValue(true));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend);
$groups = $manager->search('1');
@ -259,7 +264,7 @@ class ManagerTest extends TestCase {
->method('groupExists')
->will($this->returnValue(true));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend1);
$manager->addBackend($backend2);
@ -296,7 +301,7 @@ class ManagerTest extends TestCase {
->method('groupExists')
->will($this->returnValue(true));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend1);
$manager->addBackend($backend2);
@ -323,7 +328,7 @@ class ManagerTest extends TestCase {
/** @var \OC\User\Manager $userManager */
$userManager = $this->createMock(Manager::class);
$manager = new \OC\Group\Manager($userManager, $this->logger);
$manager = new \OC\Group\Manager($userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend);
$groups = $manager->search('1');
@ -344,7 +349,7 @@ class ManagerTest extends TestCase {
->with('group1')
->will($this->returnValue(true));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend);
$groups = $manager->getUserGroups($this->getTestUser('user1'));
@ -391,7 +396,7 @@ class ManagerTest extends TestCase {
->with('group1')
->will($this->returnValue(false));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend);
/** @var \OC\User\User|\PHPUnit_Framework_MockObject_MockObject $user */
@ -417,7 +422,7 @@ class ManagerTest extends TestCase {
->method('groupExists')
->will($this->returnValue(true));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend);
$this->assertTrue($manager->isInGroup('user1', 'group1'));
@ -436,7 +441,7 @@ class ManagerTest extends TestCase {
->method('groupExists')
->will($this->returnValue(true));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend);
$this->assertTrue($manager->isAdmin('user1'));
@ -455,7 +460,7 @@ class ManagerTest extends TestCase {
->method('groupExists')
->will($this->returnValue(true));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend);
$this->assertFalse($manager->isAdmin('user1'));
@ -486,7 +491,7 @@ class ManagerTest extends TestCase {
->method('groupExists')
->will($this->returnValue(true));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend1);
$manager->addBackend($backend2);
@ -545,7 +550,7 @@ class ManagerTest extends TestCase {
}
}));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend);
$users = $manager->displayNamesInGroup('testgroup', 'user3');
@ -605,7 +610,7 @@ class ManagerTest extends TestCase {
}
}));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend);
$users = $manager->displayNamesInGroup('testgroup', 'user3', 1);
@ -669,7 +674,7 @@ class ManagerTest extends TestCase {
}
}));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend);
$users = $manager->displayNamesInGroup('testgroup', 'user3', 1, 1);
@ -709,7 +714,7 @@ class ManagerTest extends TestCase {
}
}));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend);
$users = $manager->displayNamesInGroup('testgroup', '');
@ -748,7 +753,7 @@ class ManagerTest extends TestCase {
}
}));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend);
$users = $manager->displayNamesInGroup('testgroup', '', 1);
@ -787,7 +792,7 @@ class ManagerTest extends TestCase {
}
}));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend);
$users = $manager->displayNamesInGroup('testgroup', '', 1, 1);
@ -815,7 +820,7 @@ class ManagerTest extends TestCase {
->with('group1')
->will($this->returnValue(true));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend);
// prime cache
@ -858,7 +863,7 @@ class ManagerTest extends TestCase {
->method('removeFromGroup')
->will($this->returnValue(true));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend);
// prime cache
@ -888,7 +893,7 @@ class ManagerTest extends TestCase {
->with('user1')
->will($this->returnValue(null));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend);
$groups = $manager->getUserIdGroups('user1');
@ -914,7 +919,7 @@ class ManagerTest extends TestCase {
['group2', ['gid' => 'group2']],
]));
$manager = new \OC\Group\Manager($this->userManager, $this->logger);
$manager = new \OC\Group\Manager($this->userManager, $this->dispatcher, $this->logger);
$manager->addBackend($backend);
// group with display name

@ -21,6 +21,7 @@
*/
namespace Test;
use OCP\IUser;
use OCP\IUserSession;
/**
@ -49,7 +50,9 @@ class TagsTest extends \Test\TestCase {
$userId = $this->getUniqueID('user_');
\OC::$server->getUserManager()->createUser($userId, 'pass');
\OC_User::setUserId($userId);
$this->user = new \OC\User\User($userId, null);
$this->user = $this->createMock(IUser::class);
$this->user->method('getUID')
->willReturn($userId);
$this->userSession = $this->createMock(IUserSession::class);
$this->userSession
->expects($this->any())
@ -292,14 +295,19 @@ class TagsTest extends \Test\TestCase {
$tagger = $this->tagMgr->load('test');
$tagger->tagAs(1, $testTag);
$otherUserId = $this->getUniqueID('user2_');
$otherUser = $this->createMock(IUser::class);
$otherUser->method('getUID')
->willReturn($otherUserId);
\OC::$server->getUserManager()->createUser($otherUserId, 'pass');
\OC_User::setUserId($otherUserId);
$otherUserSession = $this->createMock(IUserSession::class);
$otherUserSession
->expects($this->any())
->method('getUser')
->will($this->returnValue(new \OC\User\User($otherUserId, null)));
->willReturn($otherUser);
$otherTagMgr = new \OC\TagManager($this->tagMapper, $otherUserSession);
$otherTagger = $otherTagMgr->load('test');

@ -22,7 +22,7 @@
namespace Test\User;
use OC\HintException;
use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\GenericEvent;
use OC\User\User;
@ -34,7 +34,7 @@ use OC\User\User;
class DatabaseTest extends Backend {
/** @var array */
private $users;
/** @var EventDispatcher | \PHPUnit_Framework_MockObject_MockObject */
/** @var EventDispatcherInterface|\PHPUnit_Framework_MockObject_MockObject */
private $eventDispatcher;
public function getUser() {
@ -46,7 +46,7 @@ class DatabaseTest extends Backend {
protected function setUp() {
parent::setUp();
$this->eventDispatcher = $this->createMock(EventDispatcher::class);
$this->eventDispatcher = $this->createMock(EventDispatcherInterface::class);
$this->backend=new \OC\User\Database($this->eventDispatcher);
}
@ -124,8 +124,8 @@ class DatabaseTest extends Backend {
$user2 = $this->getUser();
$this->backend->createUser($user2, 'pass1');
$user1Obj = new User($user1, $this->backend);
$user2Obj = new User($user2, $this->backend);
$user1Obj = new User($user1, $this->backend, $this->eventDispatcher);
$user2Obj = new User($user2, $this->backend, $this->eventDispatcher);
$emailAddr1 = "$user1@nextcloud.com";
$emailAddr2 = "$user2@nextcloud.com";

@ -13,6 +13,7 @@ use OC\User\Database;
use OC\User\Manager;
use OCP\IConfig;
use OCP\IUser;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Test\TestCase;
/**
@ -26,16 +27,19 @@ class ManagerTest extends TestCase {
/** @var IConfig */
private $config;
/** @var EventDispatcherInterface */
private $dispatcher;
public function setUp() {
parent::setUp();
$this->config = $this->createMock(IConfig::class);
$this->dispatcher = $this->createMock(EventDispatcherInterface::class);
}
public function testGetBackends() {
$userDummyBackend = $this->createMock(\Test\Util\User\Dummy::class);
$manager = new \OC\User\Manager($this->config);
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
$manager->registerBackend($userDummyBackend);
$this->assertEquals([$userDummyBackend], $manager->getBackends());
$dummyDatabaseBackend = $this->createMock(Database::class);
@ -54,7 +58,7 @@ class ManagerTest extends TestCase {
->with($this->equalTo('foo'))
->will($this->returnValue(true));
$manager = new \OC\User\Manager($this->config);
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
$manager->registerBackend($backend);
$this->assertTrue($manager->userExists('foo'));
@ -70,14 +74,14 @@ class ManagerTest extends TestCase {
->with($this->equalTo('foo'))
->will($this->returnValue(false));
$manager = new \OC\User\Manager($this->config);
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
$manager->registerBackend($backend);
$this->assertFalse($manager->userExists('foo'));
}
public function testUserExistsNoBackends() {
$manager = new \OC\User\Manager($this->config);
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
$this->assertFalse($manager->userExists('foo'));
}
@ -101,7 +105,7 @@ class ManagerTest extends TestCase {
->with($this->equalTo('foo'))
->will($this->returnValue(true));
$manager = new \OC\User\Manager($this->config);
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
$manager->registerBackend($backend1);
$manager->registerBackend($backend2);
@ -125,7 +129,7 @@ class ManagerTest extends TestCase {
$backend2->expects($this->never())
->method('userExists');
$manager = new \OC\User\Manager($this->config);
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
$manager->registerBackend($backend1);
$manager->registerBackend($backend2);
@ -152,7 +156,7 @@ class ManagerTest extends TestCase {
}
}));
$manager = new \OC\User\Manager($this->config);
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
$manager->registerBackend($backend);
$user = $manager->checkPassword('foo', 'bar');
@ -171,7 +175,7 @@ class ManagerTest extends TestCase {
->method('implementsActions')
->will($this->returnValue(false));
$manager = new \OC\User\Manager($this->config);
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
$manager->registerBackend($backend);
$this->assertFalse($manager->checkPassword('foo', 'bar'));
@ -189,7 +193,7 @@ class ManagerTest extends TestCase {
$backend->expects($this->never())
->method('loginName2UserName');
$manager = new \OC\User\Manager($this->config);
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
$manager->registerBackend($backend);
$this->assertEquals('foo', $manager->get('foo')->getUID());
@ -205,7 +209,7 @@ class ManagerTest extends TestCase {
->with($this->equalTo('foo'))
->will($this->returnValue(false));
$manager = new \OC\User\Manager($this->config);
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
$manager->registerBackend($backend);
$this->assertEquals(null, $manager->get('foo'));
@ -223,7 +227,7 @@ class ManagerTest extends TestCase {
$backend->expects($this->never())
->method('loginName2UserName');
$manager = new \OC\User\Manager($this->config);
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
$manager->registerBackend($backend);
$this->assertEquals('bLeNdEr', $manager->get('bLeNdEr')->getUID());
@ -241,7 +245,7 @@ class ManagerTest extends TestCase {
$backend->expects($this->never())
->method('loginName2UserName');
$manager = new \OC\User\Manager($this->config);
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
$manager->registerBackend($backend);
$result = $manager->search('fo');
@ -275,7 +279,7 @@ class ManagerTest extends TestCase {
$backend2->expects($this->never())
->method('loginName2UserName');
$manager = new \OC\User\Manager($this->config);
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
$manager->registerBackend($backend1);
$manager->registerBackend($backend2);
@ -329,7 +333,7 @@ class ManagerTest extends TestCase {
->willReturn(true);
$manager = new \OC\User\Manager($this->config);
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
$manager->registerBackend($backend);
$this->expectException(\InvalidArgumentException::class, $exception);
@ -356,7 +360,7 @@ class ManagerTest extends TestCase {
$backend->expects($this->never())
->method('loginName2UserName');
$manager = new \OC\User\Manager($this->config);
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
$manager->registerBackend($backend);
$user = $manager->createUser('foo', 'bar');
@ -383,7 +387,7 @@ class ManagerTest extends TestCase {
->with($this->equalTo('foo'))
->will($this->returnValue(true));
$manager = new \OC\User\Manager($this->config);
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
$manager->registerBackend($backend);
$manager->createUser('foo', 'bar');
@ -404,14 +408,14 @@ class ManagerTest extends TestCase {
$backend->expects($this->never())
->method('userExists');
$manager = new \OC\User\Manager($this->config);
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
$manager->registerBackend($backend);
$this->assertFalse($manager->createUser('foo', 'bar'));
}
public function testCreateUserNoBackends() {
$manager = new \OC\User\Manager($this->config);
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
$this->assertFalse($manager->createUser('foo', 'bar'));
}
@ -431,7 +435,7 @@ class ManagerTest extends TestCase {
->with('MyUid', 'MyPassword')
->willReturn(false);
$manager = new Manager($config);
$manager = new Manager($config, $this->dispatcher);
$manager->createUserFromBackend('MyUid', 'MyPassword', $backend);
}
@ -471,7 +475,7 @@ class ManagerTest extends TestCase {
->with($this->equalTo('foo'))
->will($this->returnValue(true));
$manager = new \OC\User\Manager($this->config);
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
$manager->registerBackend($backend1);
$manager->registerBackend($backend2);
@ -479,7 +483,7 @@ class ManagerTest extends TestCase {
}
public function testCountUsersNoBackend() {
$manager = new \OC\User\Manager($this->config);
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
$result = $manager->countUsers();
$this->assertTrue(is_array($result));
@ -504,7 +508,7 @@ class ManagerTest extends TestCase {
->method('getBackendName')
->will($this->returnValue('Mock_Test_Util_User_Dummy'));
$manager = new \OC\User\Manager($this->config);
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
$manager->registerBackend($backend);
$result = $manager->countUsers();
@ -545,7 +549,7 @@ class ManagerTest extends TestCase {
->method('getBackendName')
->will($this->returnValue('Mock_Test_Util_User_Dummy'));
$manager = new \OC\User\Manager($this->config);
$manager = new \OC\User\Manager($this->config, $this->dispatcher);
$manager->registerBackend($backend1);
$manager->registerBackend($backend2);
@ -660,7 +664,7 @@ class ManagerTest extends TestCase {
->with('foo', 'login', 'lastLogin')
->will($this->returnValue(0));
$manager = new \OC\User\Manager($config);
$manager = new \OC\User\Manager($config, $this->dispatcher);
$backend = new \Test\Util\User\Dummy();
$manager->registerBackend($backend);
@ -694,7 +698,7 @@ class ManagerTest extends TestCase {
->with($this->equalTo('uid2'))
->will($this->returnValue(true));
$manager = new \OC\User\Manager($config);
$manager = new \OC\User\Manager($config, $this->dispatcher);
$manager->registerBackend($backend);
$users = $manager->getByEmail('test@example.com');

@ -28,6 +28,7 @@ use OCP\IUser;
use OCP\Lockdown\ILockdownManager;
use OCP\Security\ICrypto;
use OCP\Security\ISecureRandom;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
/**
* @group DB
@ -167,7 +168,7 @@ class SessionTest extends \Test\TestCase {
'getUser'
])
->getMock();
$user = new User('sepp', null);
$user = new User('sepp', null, $this->createMock(EventDispatcherInterface::class));
$userSession->expects($this->once())
->method('getUser')
->will($this->returnValue($isLoggedIn ? $user : null));
@ -184,7 +185,7 @@ class SessionTest extends \Test\TestCase {
$backend = $this->createMock(\Test\Util\User\Dummy::class);
$user = $this->getMockBuilder(User::class)->setConstructorArgs(['foo', $backend])->getMock();
$user = $this->createMock(IUser::class);
$user->expects($this->once())
->method('getUID')
->will($this->returnValue('foo'));
@ -220,12 +221,12 @@ class SessionTest extends \Test\TestCase {
$mockedManagerMethods = array_diff($managerMethods, ['__construct', 'emit', 'listen']);
$manager = $this->getMockBuilder(Manager::class)
->setMethods($mockedManagerMethods)
->setConstructorArgs([$this->config])
->setConstructorArgs([$this->config, $this->createMock(EventDispatcherInterface::class)])
->getMock();
$backend = $this->createMock(\Test\Util\User\Dummy::class);
$user = $this->getMockBuilder(User::class)->setConstructorArgs(['foo', $backend])->getMock();
$user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('isEnabled')
->will($this->returnValue(true));
@ -271,12 +272,12 @@ class SessionTest extends \Test\TestCase {
$mockedManagerMethods = array_diff($managerMethods, ['__construct', 'emit', 'listen']);
$manager = $this->getMockBuilder(Manager::class)
->setMethods($mockedManagerMethods)
->setConstructorArgs([$this->config])
->setConstructorArgs([$this->config, $this->createMock(EventDispatcherInterface::class)])
->getMock();
$backend = $this->createMock(\Test\Util\User\Dummy::class);
$user = $this->getMockBuilder(User::class)->setConstructorArgs(['foo', $backend])->getMock();
$user = $this->createMock(IUser::class);
$user->expects($this->any())
->method('isEnabled')
->will($this->returnValue(false));
@ -299,12 +300,12 @@ class SessionTest extends \Test\TestCase {
$mockedManagerMethods = array_diff($managerMethods, ['__construct', 'emit', 'listen']);
$manager = $this->getMockBuilder(Manager::class)
->setMethods($mockedManagerMethods)
->setConstructorArgs([$this->config])
->setConstructorArgs([$this->config, $this->createMock(EventDispatcherInterface::class)])
->getMock();
$backend = $this->createMock(\Test\Util\User\Dummy::class);
$userSession = new \OC\User\Session($manager, $session, $this->timeFactory, $this->tokenProvider, $this->config, $this->random, $this->lockdownManager, $this->logger);
$user = $this->getMockBuilder(User::class)->setConstructorArgs(['foo', $backend])->getMock();
$user = $this->createMock(IUser::class);
$session->expects($this->never())
->method('set');
@ -535,7 +536,7 @@ class SessionTest extends \Test\TestCase {
$mockedManagerMethods = array_diff($managerMethods, ['__construct', 'emit', 'listen']);
$manager = $this->getMockBuilder(Manager::class)
->setMethods($mockedManagerMethods)
->setConstructorArgs([$this->config])
->setConstructorArgs([$this->config, $this->createMock(EventDispatcherInterface::class)])
->getMock();
$userSession = $this->getMockBuilder(Session::class)
//override, otherwise tests will fail because of setcookie()
@ -621,7 +622,7 @@ class SessionTest extends \Test\TestCase {
$mockedManagerMethods = array_diff($managerMethods, ['__construct', 'emit', 'listen']);
$manager = $this->getMockBuilder(Manager::class)
->setMethods($mockedManagerMethods)
->setConstructorArgs([$this->config])
->setConstructorArgs([$this->config, $this->createMock(EventDispatcherInterface::class)])
->getMock();
$userSession = $this->getMockBuilder(Session::class)
//override, otherwise tests will fail because of setcookie()
@ -681,7 +682,7 @@ class SessionTest extends \Test\TestCase {
$mockedManagerMethods = array_diff($managerMethods, ['__construct', 'emit', 'listen']);
$manager = $this->getMockBuilder(Manager::class)
->setMethods($mockedManagerMethods)
->setConstructorArgs([$this->config])
->setConstructorArgs([$this->config, $this->createMock(EventDispatcherInterface::class)])
->getMock();
$userSession = $this->getMockBuilder(Session::class)
//override, otherwise tests will fail because of setcookie()
@ -729,7 +730,7 @@ class SessionTest extends \Test\TestCase {
$mockedManagerMethods = array_diff($managerMethods, ['__construct', 'emit', 'listen']);
$manager = $this->getMockBuilder(Manager::class)
->setMethods($mockedManagerMethods)
->setConstructorArgs([$this->config])
->setConstructorArgs([$this->config, $this->createMock(EventDispatcherInterface::class)])
->getMock();
$userSession = $this->getMockBuilder(Session::class)
//override, otherwise tests will fail because of setcookie()
@ -765,8 +766,8 @@ class SessionTest extends \Test\TestCase {
public function testActiveUserAfterSetSession() {
$users = array(
'foo' => new User('foo', null),
'bar' => new User('bar', null)
'foo' => new User('foo', null, $this->createMock(EventDispatcherInterface::class)),
'bar' => new User('bar', null, $this->createMock(EventDispatcherInterface::class))
);
$manager = $this->getMockBuilder('\OC\User\Manager')

@ -17,6 +17,8 @@ use OCP\IUser;
use OCP\Notification\IManager as INotificationManager;
use OCP\Notification\INotification;
use OCP\UserInterface;
use PHPUnit\Framework\MockObject\MockObject;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Test\TestCase;
/**
@ -27,6 +29,15 @@ use Test\TestCase;
* @package Test\User
*/
class UserTest extends TestCase {
/** @var EventDispatcherInterface|MockObject */
protected $dispatcher;
public function setUp() {
parent::setUp();
$this->dispatcher = $this->createMock(EventDispatcherInterface::class);
}
public function testDisplayName() {
/**
* @var \OC\User\Backend | \PHPUnit_Framework_MockObject_MockObject $backend
@ -42,7 +53,7 @@ class UserTest extends TestCase {
->with($this->equalTo(\OC\User\Backend::GET_DISPLAYNAME))
->will($this->returnValue(true));
$user = new User('foo', $backend);
$user = new User('foo', $backend, $this->dispatcher);
$this->assertEquals('Foo', $user->getDisplayName());
}
@ -64,7 +75,7 @@ class UserTest extends TestCase {
->with($this->equalTo(\OC\User\Backend::GET_DISPLAYNAME))
->will($this->returnValue(true));
$user = new User('foo', $backend);
$user = new User('foo', $backend, $this->dispatcher);
$this->assertEquals('foo', $user->getDisplayName());
}
@ -81,7 +92,7 @@ class UserTest extends TestCase {
->with($this->equalTo(\OC\User\Backend::GET_DISPLAYNAME))
->will($this->returnValue(false));
$user = new User('foo', $backend);
$user = new User('foo', $backend, $this->dispatcher);
$this->assertEquals('foo', $user->getDisplayName());
}
@ -104,7 +115,7 @@ class UserTest extends TestCase {
}
}));
$user = new User('foo', $backend);
$user = new User('foo', $backend, $this->dispatcher);
$this->assertTrue($user->setPassword('bar',''));
}
@ -120,7 +131,7 @@ class UserTest extends TestCase {
->method('implementsActions')
->will($this->returnValue(false));
$user = new User('foo', $backend);
$user = new User('foo', $backend, $this->dispatcher);
$this->assertFalse($user->setPassword('bar',''));
}
@ -144,7 +155,7 @@ class UserTest extends TestCase {
}
}));
$user = new User('foo', $backend);
$user = new User('foo', $backend, $this->dispatcher);
$this->assertTrue($user->canChangeAvatar());
}
@ -168,7 +179,7 @@ class UserTest extends TestCase {
}
}));
$user = new User('foo', $backend);
$user = new User('foo', $backend, $this->dispatcher);
$this->assertFalse($user->canChangeAvatar());
}
@ -184,7 +195,7 @@ class UserTest extends TestCase {
->method('implementsActions')
->willReturn(false);
$user = new User('foo', $backend);
$user = new User('foo', $backend, $this->dispatcher);
$this->assertTrue($user->canChangeAvatar());
}
@ -197,7 +208,7 @@ class UserTest extends TestCase {
->method('deleteUser')
->with($this->equalTo('foo'));
$user = new User('foo', $backend);
$user = new User('foo', $backend, $this->dispatcher);
$this->assertTrue($user->delete());
}
@ -229,7 +240,7 @@ class UserTest extends TestCase {
->method('deleteUser')
->with($this->equalTo('foo'));
$user = new User('foo', $backend);
$user = new User('foo', $backend, $this->dispatcher);
$this->assertTrue($user->delete());
}
@ -253,14 +264,14 @@ class UserTest extends TestCase {
}
}));
$user = new User('foo', $backend);
$user = new User('foo', $backend, $this->dispatcher);
$this->assertEquals('/home/foo', $user->getHome());
}
public function testGetBackendClassName() {
$user = new User('foo', new \Test\Util\User\Dummy());
$user = new User('foo', new \Test\Util\User\Dummy(), $this->dispatcher);
$this->assertEquals('Dummy', $user->getBackendClassName());
$user = new User('foo', new \OC\User\Database());
$user = new User('foo', new \OC\User\Database(), $this->dispatcher);
$this->assertEquals('Database', $user->getBackendClassName());
}
@ -287,7 +298,7 @@ class UserTest extends TestCase {
->with($this->equalTo('datadirectory'))
->will($this->returnValue('arbitrary/path'));
$user = new User('foo', $backend, null, $allConfig);
$user = new User('foo', $backend, $this->dispatcher, null, $allConfig);
$this->assertEquals('arbitrary/path/foo', $user->getHome());
}
@ -307,7 +318,7 @@ class UserTest extends TestCase {
}
}));
$user = new User('foo', $backend);
$user = new User('foo', $backend, $this->dispatcher);
$this->assertTrue($user->canChangePassword());
}
@ -321,7 +332,7 @@ class UserTest extends TestCase {
->method('implementsActions')
->will($this->returnValue(false));
$user = new User('foo', $backend);
$user = new User('foo', $backend, $this->dispatcher);
$this->assertFalse($user->canChangePassword());
}
@ -341,7 +352,7 @@ class UserTest extends TestCase {
}
}));
$user = new User('foo', $backend);
$user = new User('foo', $backend, $this->dispatcher);
$this->assertTrue($user->canChangeDisplayName());
}
@ -355,7 +366,7 @@ class UserTest extends TestCase {
->method('implementsActions')
->will($this->returnValue(false));
$user = new User('foo', $backend);
$user = new User('foo', $backend, $this->dispatcher);
$this->assertFalse($user->canChangeDisplayName());
}
@ -380,7 +391,7 @@ class UserTest extends TestCase {
->with('foo','Foo')
->willReturn(true);
$user = new User('foo', $backend);
$user = new User('foo', $backend, $this->dispatcher);
$this->assertTrue($user->setDisplayName('Foo'));
$this->assertEquals('Foo',$user->getDisplayName());
}
@ -404,7 +415,7 @@ class UserTest extends TestCase {
}
}));
$user = new User('foo', $backend);
$user = new User('foo', $backend, $this->dispatcher);
$this->assertFalse($user->setDisplayName(' '));
$this->assertEquals('foo',$user->getDisplayName());
}
@ -422,7 +433,7 @@ class UserTest extends TestCase {
$backend->expects($this->never())
->method('setDisplayName');
$user = new User('foo', $backend);
$user = new User('foo', $backend, $this->dispatcher);
$this->assertFalse($user->setDisplayName('Foo'));
$this->assertEquals('foo',$user->getDisplayName());
}
@ -462,7 +473,7 @@ class UserTest extends TestCase {
}
}));
$user = new User('foo', $backend, $emitter);
$user = new User('foo', $backend, $this->dispatcher, $emitter);
$user->setPassword('bar','');
$this->assertEquals(2, $hooksCalled);
@ -492,7 +503,7 @@ class UserTest extends TestCase {
->method('deleteUser')
->willReturn($result);
$emitter = new PublicEmitter();
$user = new User('foo', $backend, $emitter);
$user = new User('foo', $backend, $this->dispatcher, $emitter);
/**
* @param User $user
@ -573,7 +584,7 @@ class UserTest extends TestCase {
->method('getAbsoluteURL')
->withAnyParameters()
->willReturn('http://localhost:8888/owncloud');
$user = new User('foo', $backend, null, null, $urlGenerator);
$user = new User('foo', $backend, $this->dispatcher, null, null, $urlGenerator);
$this->assertEquals('foo@localhost:8888/owncloud', $user->getCloudId());
}
@ -609,7 +620,7 @@ class UserTest extends TestCase {
'email'
);
$user = new User('foo', $backend, $emitter, $config);
$user = new User('foo', $backend, $this->dispatcher, $emitter, $config);
$user->setEMailAddress('');
}
@ -646,7 +657,7 @@ class UserTest extends TestCase {
'foo@bar.com'
);
$user = new User('foo', $backend, $emitter, $config);
$user = new User('foo', $backend, $this->dispatcher, $emitter, $config);
$user->setEMailAddress('foo@bar.com');
}
@ -674,7 +685,7 @@ class UserTest extends TestCase {
'foo@bar.com'
);
$user = new User('foo', $backend, $emitter, $config);
$user = new User('foo', $backend, $this->dispatcher, $emitter, $config);
$user->setEMailAddress('foo@bar.com');
}
@ -711,7 +722,7 @@ class UserTest extends TestCase {
'23 TB'
);
$user = new User('foo', $backend, $emitter, $config);
$user = new User('foo', $backend, $this->dispatcher, $emitter, $config);
$user->setQuota('23 TB');
}
@ -739,7 +750,7 @@ class UserTest extends TestCase {
'23 TB'
);
$user = new User('foo', $backend, $emitter, $config);
$user = new User('foo', $backend, $this->dispatcher, $emitter, $config);
$user->setQuota('23 TB');
}
@ -759,7 +770,7 @@ class UserTest extends TestCase {
}
}));
$user = new User('foo', $backend, null, $config);
$user = new User('foo', $backend, $this->dispatcher, null, $config);
$this->assertSame(42, $user->getLastLogin());
}
@ -779,7 +790,7 @@ class UserTest extends TestCase {
'true'
);
$user = new User('foo', $backend, null, $config);
$user = new User('foo', $backend, $this->dispatcher, null, $config);
$user->setEnabled(true);
}
@ -803,6 +814,7 @@ class UserTest extends TestCase {
->setConstructorArgs([
'foo',
$backend,
$this->dispatcher,
null,
$config,
])
@ -836,6 +848,7 @@ class UserTest extends TestCase {
->setConstructorArgs([
'foo',
$backend,
$this->dispatcher,
null,
$config,
])
@ -867,7 +880,7 @@ class UserTest extends TestCase {
}
}));
$user = new User('foo', $backend, null, $config);
$user = new User('foo', $backend, $this->dispatcher, null, $config);
$this->assertSame('foo@bar.com', $user->getEMailAddress());
}
}

Loading…
Cancel
Save