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());
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc