summaryrefslogtreecommitdiffstats
path: root/apps/user_ldap/tests/User/UserTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/user_ldap/tests/User/UserTest.php')
-rw-r--r--apps/user_ldap/tests/User/UserTest.php105
1 files changed, 105 insertions, 0 deletions
diff --git a/apps/user_ldap/tests/User/UserTest.php b/apps/user_ldap/tests/User/UserTest.php
index 3f3b33fbead..aa6498be082 100644
--- a/apps/user_ldap/tests/User/UserTest.php
+++ b/apps/user_ldap/tests/User/UserTest.php
@@ -507,6 +507,9 @@ class UserTest extends \Test\TestCase {
->will($this->returnValue(['this is a photo']));
$this->image->expects($this->once())
+ ->method('loadFromBase64')
+ ->willReturn('imageResource');
+ $this->image->expects($this->once())
->method('valid')
->will($this->returnValue(true));
$this->image->expects($this->once())
@@ -553,6 +556,9 @@ class UserTest extends \Test\TestCase {
});
$this->image->expects($this->once())
+ ->method('loadFromBase64')
+ ->willReturn('imageResource');
+ $this->image->expects($this->once())
->method('valid')
->will($this->returnValue(true));
$this->image->expects($this->once())
@@ -582,6 +588,97 @@ class UserTest extends \Test\TestCase {
$this->user->updateAvatar();
}
+ public function testUpdateAvatarCorruptPhotoProvided() {
+ $this->access->expects($this->any())
+ ->method('readAttribute')
+ ->willReturnCallback(function($dn, $attr) {
+ if($dn === $this->dn
+ && $attr === 'jpegPhoto')
+ {
+ return false;
+ } elseif($dn === $this->dn
+ && $attr === 'thumbnailPhoto')
+ {
+ return ['this is a photo'];
+ }
+ return null;
+ });
+
+ $this->image->expects($this->once())
+ ->method('loadFromBase64')
+ ->willReturn(false);
+ $this->image->expects($this->never())
+ ->method('valid');
+ $this->image->expects($this->never())
+ ->method('width');
+ $this->image->expects($this->never())
+ ->method('height');
+ $this->image->expects($this->never())
+ ->method('centerCrop');
+
+ $this->filesystemhelper->expects($this->never())
+ ->method('isLoaded');
+
+ $avatar = $this->createMock(IAvatar::class);
+ $avatar->expects($this->never())
+ ->method('set');
+
+ $this->avatarManager->expects($this->never())
+ ->method('getAvatar');
+
+ $this->user->updateAvatar();
+ }
+
+ public function testUpdateAvatarUnsupportedThumbnailPhotoProvided() {
+ $this->access->expects($this->any())
+ ->method('readAttribute')
+ ->willReturnCallback(function($dn, $attr) {
+ if($dn === $this->dn
+ && $attr === 'jpegPhoto')
+ {
+ return false;
+ } elseif($dn === $this->dn
+ && $attr === 'thumbnailPhoto')
+ {
+ return ['this is a photo'];
+ }
+ return null;
+ });
+
+ $this->image->expects($this->once())
+ ->method('loadFromBase64')
+ ->willReturn('imageResource');
+ $this->image->expects($this->once())
+ ->method('valid')
+ ->will($this->returnValue(true));
+ $this->image->expects($this->once())
+ ->method('width')
+ ->will($this->returnValue(128));
+ $this->image->expects($this->once())
+ ->method('height')
+ ->will($this->returnValue(128));
+ $this->image->expects($this->once())
+ ->method('centerCrop')
+ ->will($this->returnValue(true));
+
+ $this->filesystemhelper->expects($this->once())
+ ->method('isLoaded')
+ ->will($this->returnValue(true));
+
+ $avatar = $this->createMock(IAvatar::class);
+ $avatar->expects($this->once())
+ ->method('set')
+ ->with($this->isInstanceOf($this->image))
+ ->willThrowException(new \Exception());
+
+ $this->avatarManager->expects($this->once())
+ ->method('getAvatar')
+ ->with($this->equalTo($this->uid))
+ ->will($this->returnValue($avatar));
+
+ $this->assertFalse($this->user->updateAvatar());
+ }
+
public function testUpdateAvatarNotProvided() {
$this->access->expects($this->any())
->method('readAttribute')
@@ -715,6 +812,14 @@ class UserTest extends \Test\TestCase {
$this->user->getAvatarImage();
}
+ public function imageDataProvider() {
+ return [
+ [ false, false ],
+ [ 'corruptData', false ],
+ [ 'validData', true ],
+ ];
+ }
+
public function testProcessAttributes() {
$requiredMethods = array(
'markRefreshTime',