Spaces:
No application file
No application file
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; | |
} | |
} | |