|
|
<?php |
|
|
|
|
|
use Kanboard\Core\Security\Role; |
|
|
use Kanboard\Event\UserProfileSyncEvent; |
|
|
use Kanboard\Model\UserModel; |
|
|
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 UserModel($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 UserModel($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 UserModel($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 UserModel($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']); |
|
|
} |
|
|
} |
|
|
|