summaryrefslogtreecommitdiffstats
path: root/apps/dav/lib/Avatars
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2017-03-21 23:10:39 +0100
committerRoeland Jago Douma <roeland@famdouma.nl>2017-03-29 00:04:29 +0200
commit3e93f491f260b79987d90b5123f07d1a7d1298cd (patch)
tree611e4988de81e7bdb389f0d17f6a6674f4e49506 /apps/dav/lib/Avatars
parent73007255ceac2364f8563c84d6b46e113ff44d82 (diff)
downloadnextcloud-server-3e93f491f260b79987d90b5123f07d1a7d1298cd.tar.gz
nextcloud-server-3e93f491f260b79987d90b5123f07d1a7d1298cd.zip
Adding AvatarHomeTest
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
Diffstat (limited to 'apps/dav/lib/Avatars')
-rw-r--r--apps/dav/lib/Avatars/AvatarHome.php22
-rw-r--r--apps/dav/lib/Avatars/RootCollection.php5
2 files changed, 20 insertions, 7 deletions
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() {