You are here

public function AreaEntityTest::testEntityAreaData in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/views/tests/src/Kernel/Handler/AreaEntityTest.php \Drupal\Tests\views\Kernel\Handler\AreaEntityTest::testEntityAreaData()
  2. 9 core/modules/views/tests/src/Kernel/Handler/AreaEntityTest.php \Drupal\Tests\views\Kernel\Handler\AreaEntityTest::testEntityAreaData()

Tests views data for entity area handlers.

File

core/modules/views/tests/src/Kernel/Handler/AreaEntityTest.php, line 64

Class

AreaEntityTest
Tests the generic entity area handler.

Namespace

Drupal\Tests\views\Kernel\Handler

Code

public function testEntityAreaData() {
  $data = $this->container
    ->get('views.views_data')
    ->get('views');
  $entity_types = $this->container
    ->get('entity_type.manager')
    ->getDefinitions();
  $expected_entities = array_filter($entity_types, function (EntityTypeInterface $entity_type) {
    return $entity_type
      ->hasViewBuilderClass();
  });

  // Test that all expected entity types have data.
  foreach (array_keys($expected_entities) as $entity) {
    $this
      ->assertNotEmpty($data['entity_' . $entity], "Views entity '{$entity}' should have a data area.");

    // Test that entity_type is set correctly in the area data.
    $this
      ->assertEquals($data['entity_' . $entity]['area']['entity_type'], $entity, new FormattableMarkup('Correct entity_type set for @entity', [
      '@entity' => $entity,
    ]));
  }
  $expected_entities = array_filter($entity_types, function (EntityTypeInterface $type) {
    return !$type
      ->hasViewBuilderClass();
  });

  // Test that no configuration entity types have data.
  foreach (array_keys($expected_entities) as $entity) {
    $this
      ->assertArrayNotHasKey('entity_' . $entity, $data, "Views config entity '{$entity}' should not have a data area.");
  }
}