aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@owncloud.com>2013-11-21 23:40:25 +0100
committerArthur Schiwon <blizzz@owncloud.com>2013-11-21 23:40:25 +0100
commit00071401d7c16e700becf5447bebdc70441736ea (patch)
treee6d4617ab0d4a382e352ef0788869d7eaf3baa95
parentbcd776b0c0480291c793c89ba36477163c9e4249 (diff)
downloadnextcloud-server-00071401d7c16e700becf5447bebdc70441736ea.tar.gz
nextcloud-server-00071401d7c16e700becf5447bebdc70441736ea.zip
Round out Avatar Public API
-rw-r--r--lib/avatarmanager.php55
-rw-r--r--lib/private/avatar.php2
-rw-r--r--lib/private/avatarmanager.php26
-rw-r--r--lib/public/iavatarmanager.php25
-rw-r--r--tests/lib/avatar.php15
5 files changed, 47 insertions, 76 deletions
diff --git a/lib/avatarmanager.php b/lib/avatarmanager.php
deleted file mode 100644
index 51481e412de..00000000000
--- a/lib/avatarmanager.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-/**
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-
-namespace OC;
-
-use OCP\IAvatar;
-
-/*
- * This class implements methods to access Avatar functionality
- */
-class AvatarManager implements IAvatarManager {
-
- private $avatar;
-
- /**
- * @brief constructor
- * @param $user string user to do avatar-management with
- */
- function __construct($user) {
- $this->avatar = new \OC\Avatar($user);
- }
-
- /**
- * @brief get the users avatar
- * @param $size integer size in px of the avatar, defaults to 64
- * @return boolean|\OC_Image containing the avatar or false if there's no image
- */
- function get($size = 64) {
- $this->avatar->get($size);
- }
-
- /**
- * @brief sets the users avatar
- * @param $data mixed imagedata or path to set a new avatar
- * @throws Exception if the provided file is not a jpg or png image
- * @throws Exception if the provided image is not valid
- * @throws \OC\NotSquareException if the image is not square
- * @return void
- */
- function set($data) {
- $this->avatar->set($data);
- }
-
- /**
- * @brief remove the users avatar
- * @return void
- */
- function remove() {
- $this->avatar->remove();
- }
-}
diff --git a/lib/private/avatar.php b/lib/private/avatar.php
index e9b02a7d34c..e82e517b091 100644
--- a/lib/private/avatar.php
+++ b/lib/private/avatar.php
@@ -10,7 +10,7 @@
* This class gets and sets users avatars.
*/
-class OC_Avatar {
+class OC_Avatar implements \OCP\IAvatar {
private $view;
diff --git a/lib/private/avatarmanager.php b/lib/private/avatarmanager.php
new file mode 100644
index 00000000000..3ca46868ea6
--- /dev/null
+++ b/lib/private/avatarmanager.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC;
+
+use OCP\IAvatarManager;
+
+/*
+ * This class implements methods to access Avatar functionality
+ */
+class AvatarManager implements IAvatarManager {
+
+ /**
+ * @brief return a user specific instance of \OCP\IAvatar
+ * @see \OCP\IAvatar
+ * @param $user string the ownCloud user id
+ * @return \OCP\IAvatar
+ */
+ function getAvatar($user) {
+ return new \OC_Avatar($user);
+ }
+}
diff --git a/lib/public/iavatarmanager.php b/lib/public/iavatarmanager.php
index 818dbb124af..9b185ae0467 100644
--- a/lib/public/iavatarmanager.php
+++ b/lib/public/iavatarmanager.php
@@ -14,25 +14,10 @@ namespace OCP;
interface IAvatarManager {
/**
- * @brief get the users avatar
- * @param $size integer size in px of the avatar, avatars are square, defaults to 64
- * @return boolean|\OC_Image containing the avatar or false if there's no image
+ * @brief return a user specific instance of \OCP\IAvatar
+ * @see \OCP\IAvatar
+ * @param $user string the ownCloud user id
+ * @return \OCP\IAvatar
*/
- function get($size = 64);
-
- /**
- * @brief sets the users avatar
- * @param $data mixed imagedata or path to set a new avatar
- * @throws Exception if the provided file is not a jpg or png image
- * @throws Exception if the provided image is not valid
- * @throws \OCP\NotSquareException if the image is not square
- * @return void
- */
- function set($data);
-
- /**
- * @brief remove the users avatar
- * @return void
- */
- function remove();
+ function getAvatar($user);
}
diff --git a/tests/lib/avatar.php b/tests/lib/avatar.php
index 6e6faed2d2c..9cc14865a29 100644
--- a/tests/lib/avatar.php
+++ b/tests/lib/avatar.php
@@ -22,4 +22,19 @@ class Test_Avatar extends PHPUnit_Framework_TestCase {
$avatar->remove();
$this->assertEquals(false, $avatar->get());
}
+
+ public function testAvatarApi() {
+ $avatarManager = \OC::$server->getAvatarManager();
+ $avatar = $avatarManager->getAvatar(\OC_User::getUser());
+
+ $this->assertEquals(false, $avatar->get());
+
+ $expected = new OC_Image(\OC::$SERVERROOT.'/tests/data/testavatar.png');
+ $expected->resize(64);
+ $avatar->set($expected->data());
+ $this->assertEquals($expected->data(), $avatar->get()->data());
+
+ $avatar->remove();
+ $this->assertEquals(false, $avatar->get());
+ }
}