From 4c56acffd1a4e8760828408a200b0cb2cb154f95 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Sat, 13 Jan 2018 20:34:39 +0100 Subject: [PATCH 1/3] Made AvatarManager string and add return types Signed-off-by: Roeland Jago Douma --- lib/private/AvatarManager.php | 6 ++++-- lib/public/IAvatarManager.php | 7 ++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/private/AvatarManager.php b/lib/private/AvatarManager.php index b8c6c2a1eb..dea7f5f3a0 100644 --- a/lib/private/AvatarManager.php +++ b/lib/private/AvatarManager.php @@ -1,4 +1,5 @@ userManager->get($userId); - if (is_null($user)) { + if ($user === null) { throw new \Exception('user does not exist'); } diff --git a/lib/public/IAvatarManager.php b/lib/public/IAvatarManager.php index 04f4cd00d0..19e4b93503 100644 --- a/lib/public/IAvatarManager.php +++ b/lib/public/IAvatarManager.php @@ -1,4 +1,5 @@ Date: Sat, 13 Jan 2018 20:36:02 +0100 Subject: [PATCH 2/3] Use \OC\User\Manager internally in the avatarmanager Signed-off-by: Roeland Jago Douma --- lib/private/AvatarManager.php | 8 ++++---- lib/private/Server.php | 7 ++++--- tests/lib/AvatarManagerTest.php | 5 +++-- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/private/AvatarManager.php b/lib/private/AvatarManager.php index dea7f5f3a0..eb45564210 100644 --- a/lib/private/AvatarManager.php +++ b/lib/private/AvatarManager.php @@ -28,13 +28,13 @@ declare(strict_types=1); namespace OC; +use OC\User\Manager; use OCP\Files\IAppData; use OCP\Files\NotFoundException; use OCP\IAvatar; use OCP\IAvatarManager; use OCP\IConfig; use OCP\ILogger; -use OCP\IUserManager; use OCP\IL10N; /** @@ -42,7 +42,7 @@ use OCP\IL10N; */ class AvatarManager implements IAvatarManager { - /** @var IUserManager */ + /** @var Manager */ private $userManager; /** @var IAppData */ @@ -60,14 +60,14 @@ class AvatarManager implements IAvatarManager { /** * AvatarManager constructor. * - * @param IUserManager $userManager + * @param Manager $userManager * @param IAppData $appData * @param IL10N $l * @param ILogger $logger * @param IConfig $config */ public function __construct( - IUserManager $userManager, + Manager $userManager, IAppData $appData, IL10N $l, ILogger $logger, diff --git a/lib/private/Server.php b/lib/private/Server.php index 4a851d6722..380ab633b8 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -284,11 +284,12 @@ class Server extends ServerContainer implements IServerContainer { }); $this->registerAlias('LazyRootFolder', \OCP\Files\IRootFolder::class); - $this->registerService(\OCP\IUserManager::class, function (Server $c) { + $this->registerService(\OC\User\Manager::class, function (Server $c) { $config = $c->getConfig(); return new \OC\User\Manager($config); }); - $this->registerAlias('UserManager', \OCP\IUserManager::class); + $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()); @@ -523,7 +524,7 @@ class Server extends ServerContainer implements IServerContainer { $this->registerService(\OCP\IAvatarManager::class, function (Server $c) { return new AvatarManager( - $c->getUserManager(), + $c->query(\OC\User\Manager::class), $c->getAppDataDir('avatar'), $c->getL10N('lib'), $c->getLogger(), diff --git a/tests/lib/AvatarManagerTest.php b/tests/lib/AvatarManagerTest.php index 83a5cfd9b3..9f2a4f4f33 100644 --- a/tests/lib/AvatarManagerTest.php +++ b/tests/lib/AvatarManagerTest.php @@ -27,6 +27,7 @@ namespace Test; use OC\Avatar; use OC\AvatarManager; use OC\Files\AppData\AppData; +use OC\User\Manager; use OCP\Files\IAppData; use OCP\Files\SimpleFS\ISimpleFolder; use OCP\IConfig; @@ -39,7 +40,7 @@ use OCP\IUserManager; * Class AvatarManagerTest */ class AvatarManagerTest extends \Test\TestCase { - /** @var IUserManager|\PHPUnit_Framework_MockObject_MockObject */ + /** @var Manager|\PHPUnit_Framework_MockObject_MockObject */ private $userManager; /** @var IAppData|\PHPUnit_Framework_MockObject_MockObject */ private $appData; @@ -55,7 +56,7 @@ class AvatarManagerTest extends \Test\TestCase { public function setUp() { parent::setUp(); - $this->userManager = $this->createMock(IUserManager::class); + $this->userManager = $this->createMock(Manager::class); $this->appData = $this->createMock(IAppData::class); $this->l10n = $this->createMock(IL10N::class); $this->logger = $this->createMock(ILogger::class); From 8614eb91db754eec7904841e44fbbbc63ffb013a Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Tue, 16 Jan 2018 15:37:47 +0100 Subject: [PATCH 3/3] Fix avatarHome Signed-off-by: Roeland Jago Douma --- apps/dav/lib/Avatars/AvatarHome.php | 2 +- apps/dav/tests/unit/Avatars/AvatarHomeTest.php | 17 +++++++---------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/apps/dav/lib/Avatars/AvatarHome.php b/apps/dav/lib/Avatars/AvatarHome.php index ee654f2aaa..2047c5894e 100644 --- a/apps/dav/lib/Avatars/AvatarHome.php +++ b/apps/dav/lib/Avatars/AvatarHome.php @@ -70,7 +70,7 @@ class AvatarHome implements ICollection { throw new MethodNotAllowed('Invalid image size'); } $avatar = $this->avatarManager->getAvatar($this->getName()); - if ($avatar === null || !$avatar->exists()) { + if (!$avatar->exists()) { throw new NotFound(); } return new AvatarNode($size, $ext, $avatar); diff --git a/apps/dav/tests/unit/Avatars/AvatarHomeTest.php b/apps/dav/tests/unit/Avatars/AvatarHomeTest.php index aa5c4bf304..2dffa8b742 100644 --- a/apps/dav/tests/unit/Avatars/AvatarHomeTest.php +++ b/apps/dav/tests/unit/Avatars/AvatarHomeTest.php @@ -86,11 +86,10 @@ class AvatarHomeTest extends TestCase { if ($expectedException !== null) { $this->expectException($expectedException); } - $avatar = null; - if ($hasAvatar) { - $avatar = $this->createMock(IAvatar::class); - $avatar->expects($this->once())->method('exists')->willReturn(true); - } + + $avatar = $this->createMock(IAvatar::class); + $avatar->method('exists')->willReturn($hasAvatar); + $this->avatarManager->expects($this->any())->method('getAvatar')->with('admin')->willReturn($avatar); $avatarNode = $this->home->getChild($path); $this->assertInstanceOf(AvatarNode::class, $avatarNode); @@ -111,11 +110,9 @@ class AvatarHomeTest extends TestCase { * @dataProvider providesTestGetChild */ public function testChildExists($expectedException, $hasAvatar, $path) { - $avatar = null; - if ($hasAvatar) { - $avatar = $this->createMock(IAvatar::class); - $avatar->expects($this->once())->method('exists')->willReturn(true); - } + $avatar = $this->createMock(IAvatar::class); + $avatar->method('exists')->willReturn($hasAvatar); + $this->avatarManager->expects($this->any())->method('getAvatar')->with('admin')->willReturn($avatar); $childExists = $this->home->childExists($path); $this->assertEquals($hasAvatar, $childExists);