function AreaEntityTest::testEntityAreaData

Same name and namespace in other branches
  1. 9 core/modules/views/tests/src/Kernel/Handler/AreaEntityTest.php \Drupal\Tests\views\Kernel\Handler\AreaEntityTest::testEntityAreaData()
  2. 10 core/modules/views/tests/src/Kernel/Handler/AreaEntityTest.php \Drupal\Tests\views\Kernel\Handler\AreaEntityTest::testEntityAreaData()
  3. 11.x 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->assertTrue(!empty($data['entity_' . $entity]), new FormattableMarkup('Views entity area data found for @entity', [
            '@entity' => $entity,
        ]));
        // Test that entity_type is set correctly in the area data.
        $this->assertEqual($entity, $data['entity_' . $entity]['area']['entity_type'], 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->assertTrue(empty($data['entity_' . $entity]), new FormattableMarkup('Views config entity area data not found for @entity', [
            '@entity' => $entity,
        ]));
    }
}

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