function FilterEntityReferenceTrait::setUpEntityTypes

Sets up the entity types and relationships.

2 calls to FilterEntityReferenceTrait::setUpEntityTypes()
FilterEntityReferenceTest::setUp in core/modules/views_ui/tests/src/FunctionalJavascript/FilterEntityReferenceTest.php
FilterEntityReferenceWebTest::setUp in core/modules/views_ui/tests/src/Functional/FilterEntityReferenceWebTest.php
Sets up the test.

File

core/modules/views_ui/tests/src/Traits/FilterEntityReferenceTrait.php, line 60

Class

FilterEntityReferenceTrait
Sets up the entity types and relationships for entity reference tests.

Namespace

Drupal\Tests\views_ui\Traits

Code

protected function setUpEntityTypes() : void {
    // Create an entity type, and a referenceable type. Since these are coded
    // into the test view, they are not randomly named.
    $this->hostBundle = $this->drupalCreateContentType([
        'type' => 'page',
    ]);
    $this->targetBundle = $this->drupalCreateContentType([
        'type' => 'article',
    ]);
    $field_storage = FieldStorageConfig::create([
        'entity_type' => 'node',
        'field_name' => 'field_test',
        'type' => 'entity_reference',
        'settings' => [
            'target_type' => 'node',
        ],
        'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
    ]);
    $field_storage->save();
    $field = FieldConfig::create([
        'entity_type' => 'node',
        'field_name' => 'field_test',
        'bundle' => $this->hostBundle
            ->id(),
        'settings' => [
            'handler' => 'default',
            'handler_settings' => [
                'target_bundles' => [
                    $this->targetBundle
                        ->id() => $this->targetBundle
                        ->label(),
                ],
            ],
        ],
    ]);
    $field->save();
    // Create 10 nodes for use as target entities.
    for ($i = 0; $i < 10; $i++) {
        $node = $this->drupalCreateNode([
            'type' => $this->targetBundle
                ->id(),
            'title' => ucfirst($this->targetBundle
                ->id()) . ' ' . $i,
        ]);
        $this->targetEntities[$node->id()] = $node;
    }
    // Create 1 host entity to reference target entities from.
    $node = $this->drupalCreateNode([
        'type' => $this->hostBundle
            ->id(),
        'title' => ucfirst($this->hostBundle
            ->id()) . ' 0',
    ]);
    $this->hostEntities = [
        $node->id() => $node,
    ];
    $field_storage = FieldStorageConfig::create([
        'entity_type' => 'node',
        'field_name' => 'field_test_config',
        'type' => 'entity_reference',
        'settings' => [
            'target_type' => 'node_type',
        ],
        'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
    ]);
    $field_storage->save();
    $field = FieldConfig::create([
        'entity_type' => 'node',
        'field_name' => 'field_test_config',
        'bundle' => $this->hostBundle
            ->id(),
        'settings' => [
            'handler' => 'default',
            'handler_settings' => [
                'sort' => [
                    'field' => '_none',
                ],
            ],
        ],
    ]);
    $field->save();
}

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