function QuickEditEntityFieldAccessCheckTest::testAccess

Same name in other branches
  1. 8.9.x core/modules/quickedit/tests/src/Unit/Access/QuickEditEntityFieldAccessCheckTest.php \Drupal\Tests\quickedit\Unit\Access\QuickEditEntityFieldAccessCheckTest::testAccess()

Tests the method for checking access to routes.

@dataProvider providerTestAccess

Parameters

bool $entity_is_editable: Whether the subject entity is editable.

bool $field_storage_is_accessible: Whether the user has access to the field storage entity.

\Drupal\Core\Access\AccessResult $expected_result: The expected result of the access call.

File

core/modules/quickedit/tests/src/Unit/Access/QuickEditEntityFieldAccessCheckTest.php, line 68

Class

QuickEditEntityFieldAccessCheckTest
@coversDefaultClass \Drupal\quickedit\Access\QuickEditEntityFieldAccessCheck @group Access @group quickedit @group legacy

Namespace

Drupal\Tests\quickedit\Unit\Access

Code

public function testAccess($entity_is_editable, $field_storage_is_accessible, AccessResult $expected_result) {
    $entity = $this->createMockEntity();
    $entity->expects($this->any())
        ->method('access')
        ->willReturn(AccessResult::allowedIf($entity_is_editable)->cachePerPermissions());
    $field_storage = $this->createMock('Drupal\\field\\FieldStorageConfigInterface');
    $field_storage->expects($this->any())
        ->method('access')
        ->willReturn(AccessResult::allowedIf($field_storage_is_accessible));
    $expected_result->cachePerPermissions();
    $field_name = 'valid';
    $entity_with_field = clone $entity;
    $entity_with_field->expects($this->any())
        ->method('get')
        ->with($field_name)
        ->willReturn($field_storage);
    $entity_with_field->expects($this->once())
        ->method('hasTranslation')
        ->with(LanguageInterface::LANGCODE_NOT_SPECIFIED)
        ->willReturn(TRUE);
    $account = $this->createMock('Drupal\\Core\\Session\\AccountInterface');
    $access = $this->editAccessCheck
        ->access($entity_with_field, $field_name, LanguageInterface::LANGCODE_NOT_SPECIFIED, $account);
    $this->assertEquals($expected_result, $access);
}

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