function FieldBlockTest::testBlockAccessEntityAllowedFieldNotAllowed

Same name and namespace in other branches
  1. 9 core/modules/layout_builder/tests/src/Kernel/FieldBlockTest.php \Drupal\Tests\layout_builder\Kernel\FieldBlockTest::testBlockAccessEntityAllowedFieldNotAllowed()
  2. 8.9.x core/modules/layout_builder/tests/src/Kernel/FieldBlockTest.php \Drupal\Tests\layout_builder\Kernel\FieldBlockTest::testBlockAccessEntityAllowedFieldNotAllowed()
  3. 11.x core/modules/layout_builder/tests/src/Kernel/FieldBlockTest.php \Drupal\Tests\layout_builder\Kernel\FieldBlockTest::testBlockAccessEntityAllowedFieldNotAllowed()

Tests field access.

@covers ::blockAccess
@dataProvider providerTestBlockAccessNotAllowed

File

core/modules/layout_builder/tests/src/Kernel/FieldBlockTest.php, line 133

Class

FieldBlockTest
@coversDefaultClass \Drupal\layout_builder\Plugin\Block\FieldBlock[[api-linebreak]] @group Field

Namespace

Drupal\Tests\layout_builder\Kernel

Code

public function testBlockAccessEntityAllowedFieldNotAllowed($expected, $field_access) : void {
  $entity = $this->prophesize(FieldableEntityInterface::class);
  $block = $this->getTestBlock($entity);
  $account = $this->prophesize(AccountInterface::class);
  $entity->access('view', $account->reveal(), TRUE)
    ->willReturn(AccessResult::allowed());
  $entity->hasField('the_field_name')
    ->willReturn(TRUE);
  $field = $this->prophesize(FieldItemListInterface::class);
  $entity->get('the_field_name')
    ->willReturn($field->reveal());
  $field->access('view', $account->reveal(), TRUE)
    ->willReturn($field_access);
  $field->isEmpty()
    ->shouldNotBeCalled();
  $access = $block->access($account->reveal(), TRUE);
  $this->assertSame($expected, $access->isAllowed());
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.