]> source.dussan.org Git - nextcloud-server.git/commitdiff
Adding support of -1 as size to be passed into get and getFile
authorThomas Müller <thomas.mueller@tmit.eu>
Mon, 25 Jan 2016 12:24:56 +0000 (13:24 +0100)
committerThomas Müller <thomas.mueller@tmit.eu>
Mon, 25 Jan 2016 15:54:40 +0000 (16:54 +0100)
lib/private/avatar.php
lib/public/iavatar.php
tests/lib/avatartest.php

index d4e5f5225dc4c523b470084fdd412268658d67ab..a276fb7ccf9def05124de1530a3f7dae4a2f1252 100644 (file)
@@ -58,10 +58,8 @@ class Avatar implements \OCP\IAvatar {
        }
 
        /**
-        * get the users avatar
-        * @param int $size size in px of the avatar, avatars are square, defaults to 64
-        * @return boolean|\OCP\IImage containing the avatar or false if there's no image
-       */
+        * @inheritdoc
+        */
        public function get ($size = 64) {
                try {
                        $file = $this->getFile($size);
@@ -135,16 +133,16 @@ class Avatar implements \OCP\IAvatar {
        }
 
        /**
-        * Get the File of an avatar of size $size.
-        *
-        * @param int $size
-        * @return File
-        * @throws NotFoundException
+        * @inheritdoc
         */
        public function getFile($size) {
                $ext = $this->getExtention();
 
-               $path = 'avatar.' . $size . '.' . $ext;
+               if ($size === -1) {
+                       $path = 'avatar.' . $ext;
+               } else {
+                       $path = 'avatar.' . $size . '.' . $ext;
+               }
 
                try {
                        $file = $this->folder->get($path);
@@ -157,7 +155,9 @@ class Avatar implements \OCP\IAvatar {
                        /** @var File $file */
                        $file = $this->folder->get('avatar.' . $ext);
                        $avatar->loadFromData($file->getContent());
-                       $avatar->resize($size);
+                       if ($size !== -1) {
+                               $avatar->resize($size);
+                       }
                        $file = $this->folder->newFile($path);
                        $file->putContent($avatar->data());
                }
index fc4058ab4f2108e1a799d3a1160336b33b1a0895..6203d3d5576cd76ee39bbe9cd3f59f2834139d9f 100644 (file)
@@ -36,9 +36,9 @@ interface IAvatar {
 
        /**
         * get the users avatar
-        * @param int $size size in px of the avatar, avatars are square, defaults to 64
+        * @param int $size size in px of the avatar, avatars are square, defaults to 64, -1 can be used to not scale the image
         * @return boolean|\OCP\IImage containing the avatar or false if there's no image
-        * @since 6.0.0
+        * @since 6.0.0 - size of -1 was added in 9.0.0
         */
        public function get($size = 64);
 
@@ -70,7 +70,7 @@ interface IAvatar {
 
        /**
         * Get the file of the avatar
-        * @param int $size
+        * @param int $size -1 can be used to not scale the image
         * @return File
         * @throws NotFoundException
         * @since 9.0.0
index d3e615977cb4224f567fe25f2aa62e0b19261a02..fe6d3e2fa3f4a9f2391a588d594eca17587ce1f0 100644 (file)
@@ -7,14 +7,13 @@
  * See the COPYING-README file.
  */
 
-use OC\Avatar;
 use OCP\Files\Folder;
 
 class AvatarTest extends \Test\TestCase {
-       /** @var  Folder */
+       /** @var Folder | PHPUnit_Framework_MockObject_MockObject */
        private $folder;
 
-       /** @var  \OC\Avatar */
+       /** @var \OC\Avatar */
        private $avatar;
 
        public function setUp() {
@@ -24,7 +23,6 @@ class AvatarTest extends \Test\TestCase {
                $l = $this->getMock('\OCP\IL10N');
                $l->method('t')->will($this->returnArgument(0));
                $this->avatar = new \OC\Avatar($this->folder, $l);
-
        }
 
        public function testGetNoAvatar() {
@@ -47,6 +45,21 @@ class AvatarTest extends \Test\TestCase {
                $this->assertEquals($expected->data(), $this->avatar->get(128)->data());
        }
 
+       public function testGetAvatarSizeMinusOne() {
+               $this->folder->method('nodeExists')
+                       ->will($this->returnValueMap([
+                               ['avatar.jpg', true],
+                       ]));
+
+               $expected = new OC_Image(\OC::$SERVERROOT . '/tests/data/testavatar.png');
+
+               $file = $this->getMock('\OCP\Files\File');
+               $file->method('getContent')->willReturn($expected->data());
+               $this->folder->method('get')->with('avatar.jpg')->willReturn($file);
+
+               $this->assertEquals($expected->data(), $this->avatar->get(-1)->data());
+       }
+
        public function testGetAvatarNoSizeMatch() {
                $this->folder->method('nodeExists')
                        ->will($this->returnValueMap([