]> source.dussan.org Git - nextcloud-server.git/commitdiff
Round out Avatar Public API
authorArthur Schiwon <blizzz@owncloud.com>
Thu, 21 Nov 2013 22:40:25 +0000 (23:40 +0100)
committerArthur Schiwon <blizzz@owncloud.com>
Thu, 21 Nov 2013 22:40:25 +0000 (23:40 +0100)
lib/avatarmanager.php [deleted file]
lib/private/avatar.php
lib/private/avatarmanager.php [new file with mode: 0644]
lib/public/iavatarmanager.php
tests/lib/avatar.php

diff --git a/lib/avatarmanager.php b/lib/avatarmanager.php
deleted file mode 100644 (file)
index 51481e4..0000000
+++ /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();
-       }
-}
index e9b02a7d34c74d07787a90b60f00cbd74171f75e..e82e517b0916484e41b55457a2ab9f1dc64aa606 100644 (file)
@@ -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 (file)
index 0000000..3ca4686
--- /dev/null
@@ -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);
+       }
+}
index 818dbb124afaba64e961a2ceaa8c7ee1cc3d4bdd..9b185ae0467b90897327993fd00bf9e5b7f62d35 100644 (file)
@@ -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);
 }
index 6e6faed2d2c664f986733d982368ba56f39dcea1..9cc14865a292afe40385a46356d4109ac8df3b27 100644 (file)
@@ -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());
+       }
 }