namespace OC;
use OCP\Files\Folder;
+use OCP\Files\NotFoundException;
use OCP\IAvatarManager;
use OCP\IUserManager;
use OCP\Files\IRootFolder;
* @param string $userId the ownCloud user id
* @return \OCP\IAvatar
* @throws \Exception In case the username is potentially dangerous
+ * @throws NotFoundException In case there is no user folder yet
*/
public function getAvatar($userId) {
$user = $this->userManager->get($userId);
* @see \OCP\IAvatar
* @param string $user the ownCloud user id
* @return \OCP\IAvatar
+ * @throws \Exception In case the username is potentially dangerous
+ * @throws \OCP\Files\NotFoundException In case there is no user folder yet
* @since 6.0.0
*/
public function getAvatar($user);
$avatarAvailable = false;
if ($this->config->getSystemValue('enable_avatars', true) === true) {
- $avatarAvailable = $this->avatarManager->getAvatar($user->getUID())->exists();
+ try {
+ $avatarAvailable = $this->avatarManager->getAvatar($user->getUID())->exists();
+ } catch (\Exception $e) {
+ //No avatar yet
+ }
}
return [
$this->assertEquals($expectedResult, $result);
}
+ public function testNoAvatar() {
+ $this->container['IsAdmin'] = true;
+
+ list($user, $expectedResult) = $this->mockUser();
+
+ $subadmin = $this->getMockBuilder('\OC\SubAdmin')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $subadmin->expects($this->once())
+ ->method('getSubAdminsGroups')
+ ->with($user)
+ ->will($this->returnValue([]));
+ $this->container['GroupManager']
+ ->expects($this->any())
+ ->method('getSubAdmin')
+ ->will($this->returnValue($subadmin));
+
+ $this->container['OCP\\IAvatarManager']
+ ->method('getAvatar')
+ ->will($this->throwException(new \OCP\Files\NotFoundException()));
+ $expectedResult['isAvatarAvailable'] = false;
+
+ $result = self::invokePrivate($this->container['UsersController'], 'formatUserForIndex', [$user]);
+ $this->assertEquals($expectedResult, $result);
+ }
+
/**
* @return array
*/