Spaces:
No application file
No application file
File size: 3,002 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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
<?php
namespace MauticPlugin\MauticSocialBundle\Tests\Functional\Controller;
use Mautic\CoreBundle\Test\MauticMysqlTestCase;
use Mautic\UserBundle\Entity\Role;
use Mautic\UserBundle\Entity\User;
class MonitoringControllerTest extends MauticMysqlTestCase
{
public const USERNAME = 'jhony';
public function testIndex(): void
{
$this->client->request('GET', '/s/monitoring');
$response = $this->client->getResponse();
$this->assertEquals(200, $response->getStatusCode());
}
public function testNew(): void
{
$this->client->request('GET', '/s/monitoring/new');
$response = $this->client->getResponse();
$this->assertEquals(200, $response->getStatusCode());
}
public function testEdit(): void
{
$this->client->request('GET', '/s/monitoring/edit/1');
$response = $this->client->getResponse();
$this->assertEquals(200, $response->getStatusCode());
}
public function testIndexWithoutPermission(): void
{
$this->createAndLoginUser();
$this->client->request('GET', '/s/monitoring');
$response = $this->client->getResponse();
$this->assertEquals(403, $response->getStatusCode());
}
public function testNewWithoutPermission(): void
{
$this->createAndLoginUser();
$this->client->request('GET', '/s/monitoring/new');
$response = $this->client->getResponse();
$this->assertEquals(403, $response->getStatusCode());
}
public function testEditWithoutPermission(): void
{
$this->createAndLoginUser();
$this->client->request('GET', '/s/monitoring/edit/1');
$response = $this->client->getResponse();
$this->assertEquals(403, $response->getStatusCode());
}
private function createAndLoginUser(): User
{
// Create non-admin role
$role = $this->createRole();
// Create non-admin user
$user = $this->createUser($role);
$this->em->flush();
$this->em->detach($role);
$this->loginUser(self::USERNAME);
$this->client->setServerParameter('PHP_AUTH_USER', self::USERNAME);
$this->client->setServerParameter('PHP_AUTH_PW', 'mautic');
return $user;
}
private function createRole(bool $isAdmin = false): Role
{
$role = new Role();
$role->setName('Role');
$role->setIsAdmin($isAdmin);
$this->em->persist($role);
return $role;
}
private function createUser(Role $role): User
{
$user = new User();
$user->setFirstName('John');
$user->setLastName('Doe');
$user->setUsername(self::USERNAME);
$user->setEmail('[email protected]');
$encoder = self::$container->get('security.encoder_factory')->getEncoder($user);
$user->setPassword($encoder->encodePassword('mautic', null));
$user->setRole($role);
$this->em->persist($user);
return $user;
}
}
|