You are here

protected function MediaSourceTestBase::createMediaTypeField in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/media/tests/src/FunctionalJavascript/MediaSourceTestBase.php \Drupal\Tests\media\FunctionalJavascript\MediaSourceTestBase::createMediaTypeField()

Creates storage and field instance, attached to a given media type.

Parameters

string $field_name: The field name.

string $field_type: The field type.

string $media_type_id: The media type config entity ID.

1 call to MediaSourceTestBase::createMediaTypeField()
MediaSourceTestBase::createMediaTypeFields in core/modules/media/tests/src/FunctionalJavascript/MediaSourceTestBase.php
Create a set of fields in a media type.

File

core/modules/media/tests/src/FunctionalJavascript/MediaSourceTestBase.php, line 40

Class

MediaSourceTestBase
Base class for media source tests.

Namespace

Drupal\Tests\media\FunctionalJavascript

Code

protected function createMediaTypeField($field_name, $field_type, $media_type_id) {
  $storage = FieldStorageConfig::create([
    'field_name' => $field_name,
    'entity_type' => 'media',
    'type' => $field_type,
  ]);
  $storage
    ->save();
  FieldConfig::create([
    'field_storage' => $storage,
    'bundle' => $media_type_id,
  ])
    ->save();

  // Make the field widget visible in the form display.
  $component = \Drupal::service('plugin.manager.field.widget')
    ->prepareConfiguration($field_type, []);

  /** @var \Drupal\Core\Entity\EntityDisplayRepositoryInterface $display_repository */
  $display_repository = \Drupal::service('entity_display.repository');
  $entity_form_display = $display_repository
    ->getFormDisplay('media', $media_type_id, 'default');
  $entity_form_display
    ->setComponent($field_name, $component)
    ->save();

  // Use the default formatter and settings.
  $component = \Drupal::service('plugin.manager.field.formatter')
    ->prepareConfiguration($field_type, []);
  $entity_display = $display_repository
    ->getViewDisplay('media', $media_type_id);
  $entity_display
    ->setComponent($field_name, $component)
    ->save();
}