From 3e93f491f260b79987d90b5123f07d1a7d1298cd Mon Sep 17 00:00:00 2001 From: Thomas Müller Date: Tue, 21 Mar 2017 23:10:39 +0100 Subject: Adding AvatarHomeTest Signed-off-by: Morris Jobke --- apps/dav/lib/Avatars/AvatarHome.php | 22 +++++++++++++++++----- apps/dav/lib/Avatars/RootCollection.php | 5 +++-- 2 files changed, 20 insertions(+), 7 deletions(-) (limited to 'apps/dav/lib/Avatars') diff --git a/apps/dav/lib/Avatars/AvatarHome.php b/apps/dav/lib/Avatars/AvatarHome.php index d3fb2b95f34..9e00fe2e8f4 100644 --- a/apps/dav/lib/Avatars/AvatarHome.php +++ b/apps/dav/lib/Avatars/AvatarHome.php @@ -23,6 +23,7 @@ namespace OCA\DAV\Avatars; +use OCP\IAvatarManager; use Sabre\DAV\Exception\Forbidden; use Sabre\DAV\Exception\MethodNotAllowed; use Sabre\DAV\Exception\NotFound; @@ -30,15 +31,20 @@ use Sabre\DAV\ICollection; use Sabre\HTTP\URLUtil; class AvatarHome implements ICollection { + + /** @var array */ private $principalInfo; + /** @var IAvatarManager */ + private $avatarManager; /** * AvatarHome constructor. * * @param array $principalInfo */ - public function __construct($principalInfo) { + public function __construct($principalInfo, IAvatarManager $avatarManager) { $this->principalInfo = $principalInfo; + $this->avatarManager = $avatarManager; } function createFile($name, $data = null) { @@ -59,8 +65,8 @@ class AvatarHome implements ICollection { if ($size <= 0 || $size > 1024) { throw new MethodNotAllowed('Invalid image size'); } - $avatar = \OC::$server->getAvatarManager()->getAvatar($this->getName()); - if (!$avatar->exists()) { + $avatar = $this->avatarManager->getAvatar($this->getName()); + if ($avatar === null || !$avatar->exists()) { throw new NotFound(); } return new AvatarNode($size, $ext, $avatar); @@ -77,8 +83,14 @@ class AvatarHome implements ICollection { } function childExists($name) { - $ret = $this->getChild($name); - return !is_null($ret); + try { + $ret = $this->getChild($name); + return !is_null($ret); + } catch (NotFound $ex) { + return false; + } catch (MethodNotAllowed $ex) { + return false; + } } function delete() { diff --git a/apps/dav/lib/Avatars/RootCollection.php b/apps/dav/lib/Avatars/RootCollection.php index 8cad3d3721a..8614d5d22b0 100644 --- a/apps/dav/lib/Avatars/RootCollection.php +++ b/apps/dav/lib/Avatars/RootCollection.php @@ -15,10 +15,11 @@ class RootCollection extends AbstractPrincipalCollection { * supplied by the authentication backend. * * @param array $principalInfo - * @return IPrincipal + * @return AvatarHome */ function getChildForPrincipal(array $principalInfo) { - return new AvatarHome($principalInfo); + $avatarManager = \OC::$server->getAvatarManager(); + return new AvatarHome($principalInfo, $avatarManager); } function getName() { -- cgit v1.2.3