mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-07 18:14:35 +00:00
122 lines
5.0 KiB
PHP
122 lines
5.0 KiB
PHP
<?php
|
|
|
|
use Alchemy\Phrasea\Model\Entities\User;
|
|
use Alchemy\Phrasea\Model\Entities\UsrAuthProvider;
|
|
|
|
/**
|
|
* @group functional
|
|
* @group legacy
|
|
*/
|
|
class userTest extends \PhraseanetTestCase
|
|
{
|
|
public function testMail()
|
|
{
|
|
self::$DI['user']->setEmail('');
|
|
$this->assertNull(self::$DI['app']['repo.users']->findByEmail(self::$DI['user']->getEmail()));
|
|
self::$DI['user']->setEmail('noone@example.com');
|
|
$this->assertEquals(self::$DI['user'], self::$DI['app']['repo.users']->findByEmail('noone@example.com'));
|
|
try {
|
|
self::$DI['user']->setEmail('noonealt1@example.com');
|
|
$this->fail('A user already got this address');
|
|
} catch (Exception $e) {
|
|
|
|
}
|
|
}
|
|
|
|
public function testDeleteSetMailToNullAndRemovesProviders()
|
|
{
|
|
$user = self::$DI['app']['manipulator.user']->createUser('test_phpunit_providers', 'any');
|
|
|
|
$provider = new UsrAuthProvider();
|
|
$provider->setDistantId(12345);
|
|
$provider->setProvider('custom-one');
|
|
$provider->setUser($user);
|
|
|
|
self::$DI['app']['orm.em']->persist($provider);
|
|
self::$DI['app']['orm.em']->flush();
|
|
|
|
self::$DI['app']['manipulator.user']->delete($user);
|
|
|
|
$this->assertNull(self::$DI['app']['orm.em']->getRepository('Phraseanet:UsrAuthProvider')->findWithProviderAndId('custom-one', 12345));
|
|
}
|
|
|
|
public function testDeleteSetMailToNullAndRemovesSessions()
|
|
{
|
|
if (null === $user = self::$DI['app']['repo.users']->findByLogin('test_phpunit_sessions')) {
|
|
$user = self::$DI['app']['manipulator.user']->createUser('test_phpunit_sessions', self::$DI['app']['random.low']->generateString(8));
|
|
}
|
|
|
|
$session = new \Alchemy\Phrasea\Model\Entities\Session();
|
|
$session->setUser($user)->setUserAgent('');
|
|
|
|
self::$DI['app']['orm.em']->persist($session);
|
|
self::$DI['app']['orm.em']->flush();
|
|
|
|
self::$DI['app']['manipulator.user']->delete($user);
|
|
|
|
$repo = self::$DI['app']['orm.em']->getRepository('Phraseanet:Session');
|
|
$this->assertCount(0, $repo->findByUser($user));
|
|
}
|
|
|
|
public function testGetPref()
|
|
{
|
|
$user = self::$DI['app']['manipulator.user']->createUser('notif_ref_test', 'pass');
|
|
|
|
$this->assertNull(self::$DI['app']['settings']->getUserSetting($user, 'lalala'));
|
|
$this->assertSame('popo', self::$DI['app']['settings']->getUserSetting($user, 'lalala', 'popo'));
|
|
$this->assertSame(self::$DI['app']['settings']->getUsersSettings()['editing_top_box'], self::$DI['app']['settings']->getUserSetting($user, 'editing_top_box'));
|
|
}
|
|
|
|
public function testGetPrefWithACustomizedConf()
|
|
{
|
|
$user = self::$DI['app']['manipulator.user']->createUser('notif_ref_test', 'pass');
|
|
|
|
$data = self::$DI['app']['conf']->get(['user-settings']);
|
|
|
|
self::$DI['app']['conf']->set('user-settings', [
|
|
'images_per_page' => 42,
|
|
'images_size' => 666,
|
|
'lalala' => 'didou',
|
|
]);
|
|
|
|
self::$DI['app']['manipulator.user']->setUserSetting($user,'images_per_page', 35);
|
|
|
|
$this->assertNull(self::$DI['app']['settings']->getUserSetting($user, 'lalala'));
|
|
$this->assertSame(666, self::$DI['app']['settings']->getUserSetting($user, 'images_size'));
|
|
$this->assertSame(35, self::$DI['app']['settings']->getUserSetting($user, 'images_per_page'));
|
|
$this->assertSame(self::$DI['app']['settings']->getUsersSettings()['editing_top_box'], self::$DI['app']['settings']->getUserSetting($user, 'editing_top_box'));
|
|
|
|
if (null === $data) {
|
|
self::$DI['app']['conf']->remove('user-settings');
|
|
} else {
|
|
self::$DI['app']['conf']->set('user-settings', $data);
|
|
}
|
|
}
|
|
|
|
public function testSetPref()
|
|
{
|
|
$user = self::$DI['app']['manipulator.user']->createUser('notif_ref_test', 'pass');
|
|
|
|
self::$DI['app']['manipulator.user']->setUserSetting($user, 'prout', 'pooop');
|
|
$this->assertSame('pooop', self::$DI['app']['settings']->getUserSetting($user, 'prout'));
|
|
}
|
|
|
|
public function testGetNotificationPref()
|
|
{
|
|
$user = self::$DI['app']['manipulator.user']->createUser('notif_ref_test', 'pass');
|
|
|
|
$this->assertTrue(self::$DI['app']['settings']->getUserNotificationSetting($user, 'eventsmanager_notify_push'));
|
|
}
|
|
|
|
public function testNotificationPref()
|
|
{
|
|
$user = self::$DI['app']['manipulator.user']->createUser('notif_ref_test', 'pass');
|
|
|
|
$this->assertTrue(self::$DI['app']['settings']->getUserNotificationSetting($user, 'eventsmanager_notify_push'));
|
|
self::$DI['app']['manipulator.user']->setNotificationSetting($user, 'eventsmanager_notify_push', false);
|
|
$this->assertFalse(self::$DI['app']['settings']->getUserNotificationSetting($user, 'eventsmanager_notify_push'));
|
|
self::$DI['app']['manipulator.user']->setNotificationSetting($user, 'eventsmanager_notify_push', true);
|
|
$this->assertTrue(self::$DI['app']['settings']->getUserNotificationSetting($user, 'eventsmanager_notify_push'));
|
|
}
|
|
}
|