diff options
author | Arthur Schiwon <blizzz@owncloud.com> | 2013-11-21 23:40:25 +0100 |
---|---|---|
committer | Arthur Schiwon <blizzz@owncloud.com> | 2013-11-21 23:40:25 +0100 |
commit | 00071401d7c16e700becf5447bebdc70441736ea (patch) | |
tree | e6d4617ab0d4a382e352ef0788869d7eaf3baa95 | |
parent | bcd776b0c0480291c793c89ba36477163c9e4249 (diff) | |
download | nextcloud-server-00071401d7c16e700becf5447bebdc70441736ea.tar.gz nextcloud-server-00071401d7c16e700becf5447bebdc70441736ea.zip |
Round out Avatar Public API
-rw-r--r-- | lib/avatarmanager.php | 55 | ||||
-rw-r--r-- | lib/private/avatar.php | 2 | ||||
-rw-r--r-- | lib/private/avatarmanager.php | 26 | ||||
-rw-r--r-- | lib/public/iavatarmanager.php | 25 | ||||
-rw-r--r-- | tests/lib/avatar.php | 15 |
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()); + } } |