summaryrefslogtreecommitdiff
path: root/tests/units/Subscriber
diff options
context:
space:
mode:
Diffstat (limited to 'tests/units/Subscriber')
-rw-r--r--tests/units/Subscriber/LdapUserPhotoSubscriberTest.php83
1 files changed, 83 insertions, 0 deletions
diff --git a/tests/units/Subscriber/LdapUserPhotoSubscriberTest.php b/tests/units/Subscriber/LdapUserPhotoSubscriberTest.php
new file mode 100644
index 00000000..df44d232
--- /dev/null
+++ b/tests/units/Subscriber/LdapUserPhotoSubscriberTest.php
@@ -0,0 +1,83 @@
+<?php
+
+use Kanboard\Core\Security\Role;
+use Kanboard\Event\UserProfileSyncEvent;
+use Kanboard\Model\User;
+use Kanboard\Subscriber\LdapUserPhotoSubscriber;
+use Kanboard\User\DatabaseUserProvider;
+use Kanboard\User\LdapUserProvider;
+
+require_once __DIR__.'/../Base.php';
+
+class LdapUserPhotoSubscriberTest extends Base
+{
+ public function testWhenTheProviderIsNotLdap()
+ {
+ $userProvider = new DatabaseUserProvider(array());
+ $subscriber = new LdapUserPhotoSubscriber($this->container);
+ $userModel = new User($this->container);
+
+ $userModel->update(array('id' => 1, 'avatar_path' => 'my avatar'));
+ $user = $userModel->getById(1);
+
+ $subscriber->syncUserPhoto(new UserProfileSyncEvent($user, $userProvider));
+
+ $user = $userModel->getById(1);
+ $this->assertEquals('my avatar', $user['avatar_path']);
+ }
+
+ public function testWhenTheUserHaveLdapPhoto()
+ {
+ $userProvider = new LdapUserProvider('dn', 'admin', 'Admin', 'admin@localhost', Role::APP_ADMIN, array(), 'my photo');
+ $subscriber = new LdapUserPhotoSubscriber($this->container);
+ $userModel = new User($this->container);
+ $user = $userModel->getById(1);
+
+ $this->container['objectStorage']
+ ->expects($this->once())
+ ->method('put')
+ ->with($this->anything(), 'my photo');
+
+
+ $subscriber->syncUserPhoto(new UserProfileSyncEvent($user, $userProvider));
+
+ $user = $userModel->getById(1);
+ $this->assertStringStartsWith('avatars', $user['avatar_path']);
+ }
+
+ public function testWhenTheUserDoNotHaveLdapPhoto()
+ {
+ $userProvider = new LdapUserProvider('dn', 'admin', 'Admin', 'admin@localhost', Role::APP_ADMIN, array());
+ $subscriber = new LdapUserPhotoSubscriber($this->container);
+ $userModel = new User($this->container);
+ $user = $userModel->getById(1);
+
+ $this->container['objectStorage']
+ ->expects($this->never())
+ ->method('put');
+
+ $subscriber->syncUserPhoto(new UserProfileSyncEvent($user, $userProvider));
+
+ $user = $userModel->getById(1);
+ $this->assertEmpty($user['avatar_path']);
+ }
+
+ public function testWhenTheUserAlreadyHaveAvatar()
+ {
+ $userProvider = new LdapUserProvider('dn', 'admin', 'Admin', 'admin@localhost', Role::APP_ADMIN, array(), 'my photo');
+ $subscriber = new LdapUserPhotoSubscriber($this->container);
+ $userModel = new User($this->container);
+
+ $userModel->update(array('id' => 1, 'avatar_path' => 'my avatar'));
+ $user = $userModel->getById(1);
+
+ $this->container['objectStorage']
+ ->expects($this->never())
+ ->method('put');
+
+ $subscriber->syncUserPhoto(new UserProfileSyncEvent($user, $userProvider));
+
+ $user = $userModel->getById(1);
+ $this->assertEquals('my avatar', $user['avatar_path']);
+ }
+}