Spaces:
No application file
No application file
File size: 2,722 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
<?php
declare(strict_types=1);
namespace Mautic\UserBundle\Tests\Functional\Controller;
use Mautic\CoreBundle\Entity\AuditLog;
use Mautic\CoreBundle\Entity\AuditLogRepository;
use Mautic\CoreBundle\Model\AuditLogModel;
use Mautic\CoreBundle\Test\MauticMysqlTestCase;
use Mautic\UserBundle\Entity\Role;
use Mautic\UserBundle\Entity\User;
use Mautic\UserBundle\Model\UserModel;
use Symfony\Component\HttpFoundation\Request;
class UserControllerFunctionalTest extends MauticMysqlTestCase
{
public function testEditUserAction(): void
{
$auditLogModel = $this->createMock(AuditLogModel::class);
$auditLogRepository = $this->createMock(AuditLogRepository::class);
$auditLog = $this->auditLogSetter(1, 'Test User', 'user', 'security', 1, 'login', ['username' => 'testuser']);
$auditLogRepository->method('getLogsForUser')->willReturn([$auditLog]);
$auditLogModel->method('getRepository')->willReturn($auditLogRepository);
$userModel = $this->createMock(UserModel::class);
$role = new Role();
$role->setName('Administrator');
$user = $this->userSetter($role);
$this->em->persist($auditLog);
$this->em->persist($user);
$this->em->persist($role);
$this->em->flush();
$userModel->method('getEntity')->willReturn($user);
$crawler = $this->client->request(Request::METHOD_GET, '/s/users/edit/1');
$clientResponse = $this->client->getResponse();
$this->assertEquals(200, $clientResponse->getStatusCode());
$this->assertStringContainsString('Test User</a>', $clientResponse->getContent());
}
/**
* @param array<mixed> $details
*/
public function auditLogSetter(int $userId, string $userName, string $bundle,
string $object, int $objectId, string $action, array $details): AuditLog
{
$auditLog = new AuditLog();
$auditLog->setUserId($userId);
$auditLog->setUserName($userName);
$auditLog->setBundle($bundle);
$auditLog->setObject($object);
$auditLog->setObjectId($objectId);
$auditLog->setAction($action);
$auditLog->setDetails($details);
$auditLog->setDateAdded(new \DateTime());
$auditLog->setIpAddress('127.0.0.1');
return $auditLog;
}
public function userSetter(Role $role): User
{
$user = new User();
$user->setUsername('testuser');
$user->setEmail('[email protected]');
$user->setFirstName('Test');
$user->setLastName('User');
$user->setPassword('password');
$user->setRole($role);
$user->setLastLogin('2024-02-22 10:30:00');
return $user;
}
}
|