}
/**
- * 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);
}
/**
- * 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);
/** @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());
}
/**
* 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);
/**
* 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
* 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() {
$l = $this->getMock('\OCP\IL10N');
$l->method('t')->will($this->returnArgument(0));
$this->avatar = new \OC\Avatar($this->folder, $l);
-
}
public function testGetNoAvatar() {
$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([