Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Tests\Functional\Controller;
- use App\Entity\AccessOrderentity;
- use App\Entity\Application;
- use App\Entity\Orderentity;
- use App\Entity\User;
- use App\Tests\BaseTestCase\CoversBaseControllerTrait;
- use App\Tests\BaseTestCase\WebTestCase;
- use App\Tests\Functional\Controller\AccessFixtures\AccessFixtures;
- /**
- * @covers \App\Controller\DefaultController
- */
- class DefaultControllerTest extends WebTestCase
- {
- use CoversBaseControllerTrait;
- /**
- * Test /
- *
- * @throws \ReflectionException
- */
- public function testHomePage()
- {
- $this->urlTest('/', 302, ['redirectUrl' => '/login']);
- $this->urlTest('/', 200, ['roles' => ['ROLE_USER']]);
- $this->urlTest('/', 403, ['roles' => ['ROLE_VIEW_ORDERENTITY']]); //Anything lower than ROLE_USER
- $this->urlTest('/', 302, ['roles' => ['ROLE_ADMIN'], 'redirectUrl' => '/admin']);
- }
- /**
- * @throws \ReflectionException
- */
- public function testAssertUserAccess()
- {
- $fixtures = \array_merge(self::FIXTURES, ['App\Tests\Functional\Controller\AccessFixtures\AccessFixtures']);
- $this->prepareClientWithFixtures(self::FIXTURES_LOAD_ALL, $fixtures);
- /** @var User $user */
- $user = $this->getEntityManager()->getRepository(User::class)->findOneBy(['name' => 'Franchisee-1']);
- $apps = $this->getEntityManager()->getRepository(Application::class)->findAll();
- $crawler = $this->urlTest('/', 200, ['loggedUser' => $user]);
- // These accesses are set in AccessFixtures
- foreach ($apps as $app) {
- switch ($app->getSlug()) {
- // No access part
- case AccessFixtures::APP_TEST_WITH_NO_ACCESS_OVERRIDEN:
- case AccessFixtures::APP_TEST_WITH_NO_ACCESS:
- case AccessFixtures::APP_BLUEBEAN_WITH_NO_ACCESS:
- case AccessFixtures::APP_BLUEBEAN_WITH_NO_ACCESS_OVERRIDEN;
- $this->assertStringNotContainsString($app->getUrl(), $crawler->html());
- break;
- // Has access part
- case AccessFixtures::APP_TEST_WITH_ACCESS_OVERRIDEN:
- case AccessFixtures::APP_TEST_WITH_ACCESS:
- case AccessFixtures::APP_BLUEBEAN_WITH_ACCESS:
- case AccessFixtures::APP_BLUEBEAN_WITH_ACCESS_OVERRIDEN:
- $this->assertStringContainsString($app->getUrl(), $crawler->html());
- break;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement