content_entity_base-8.x-1.x-dev/tests/src/Kernel/EntityAccessTest.php
tests/src/Kernel/EntityAccessTest.php
<?php namespace Drupal\Tests\content_entity_base\Kernel; use Drupal\ceb_test\Entity\CebTestContentType; use Drupal\user\Entity\User; use Symfony\Component\HttpFoundation\Request; /** * Ensures access checking works as expected. * * @group content_entity_base */ class EntityAccessTest extends CEBKernelTestBase { /** * @var \Symfony\Component\HttpKernel\HttpKernelInterface */ protected $httpKernel; /** * @var \Drupal\ceb_test\Entity\CebTestContentType */ protected $bundle; /** * @var \Drupal\ceb_test\Entity\CebTestContentType */ protected $bundle2; /** * {@inheritdoc} */ protected function setUp() { parent::setUp(); $this->installConfig('system'); \Drupal::service('router.builder')->rebuild(); $this->httpKernel = \Drupal::service('http_kernel'); $this->bundle = CebTestContentType::create([ 'id' => 'test_bundle', 'label' => 'Test Bundle', 'revision' => TRUE, ]); $this->bundle->save(); $this->bundle2 = CebTestContentType::create([ 'id' => 'test_bundle2', 'label' => 'Test Bundle2', 'revision' => TRUE, ]); $this->bundle2->save(); $root_user = User::create([ 'name' => 'admin', ]); $root_user->save(); } public function testCreateAccess() { $account = $this->drupalCreateUser(["create test_bundle ceb_test_content"]); \Drupal::currentUser()->setAccount($account); $response = $this->httpKernel->handle(Request::create('/admin/ceb_test_content/add/test_bundle')); $this->assertEquals(200, $response->getStatusCode()); $response = $this->httpKernel->handle(Request::create('/admin/ceb_test_content/add/test_bundle2')); $this->assertEquals(403, $response->getStatusCode()); $account2 = $this->drupalCreateUser(["create test_bundle2 ceb_test_content"]); \Drupal::currentUser()->setAccount($account2); $response = $this->httpKernel->handle(Request::create('/admin/ceb_test_content/add/test_bundle')); $this->assertEquals(403, $response->getStatusCode()); $response = $this->httpKernel->handle(Request::create('/admin/ceb_test_content/add/test_bundle2')); $this->assertEquals(200, $response->getStatusCode()); } }