trait MediaTypeCreationTrait in Drupal 9
Same name and namespace in other branches
- 8 core/modules/media/tests/src/Traits/MediaTypeCreationTrait.php \Drupal\Tests\media\Traits\MediaTypeCreationTrait
- 10 core/modules/media/tests/src/Traits/MediaTypeCreationTrait.php \Drupal\Tests\media\Traits\MediaTypeCreationTrait
Provides methods to create a media type from given values.
This trait is meant to be used only by test classes.
Hierarchy
- trait \Drupal\Tests\media\Traits\MediaTypeCreationTrait
20 files declare their use of MediaTypeCreationTrait
- CKEditorIntegrationTest.php in core/
modules/ media_library/ tests/ src/ FunctionalJavascript/ CKEditorIntegrationTest.php - CKEditorIntegrationTest.php in core/
modules/ media/ tests/ src/ FunctionalJavascript/ CKEditorIntegrationTest.php - ContentEntityTest.php in core/
modules/ migrate_drupal/ tests/ src/ Kernel/ Plugin/ migrate/ source/ ContentEntityTest.php - ContentModerationTest.php in core/
modules/ media_library/ tests/ src/ FunctionalJavascript/ ContentModerationTest.php - EditorMediaDialogTest.php in core/
modules/ media/ tests/ src/ Kernel/ EditorMediaDialogTest.php
File
- core/
modules/ media/ tests/ src/ Traits/ MediaTypeCreationTrait.php, line 12
Namespace
Drupal\Tests\media\TraitsView source
trait MediaTypeCreationTrait {
/**
* Create a media type for a source plugin.
*
* @param string $source_plugin_id
* The media source plugin ID.
* @param mixed[] $values
* (optional) Additional values for the media type entity:
* - id: The ID of the media type. If none is provided, a random value will
* be used.
* - label: The human-readable label of the media type. If none is provided,
* a random value will be used.
* See \Drupal\media\MediaTypeInterface and \Drupal\media\Entity\MediaType
* for full documentation of the media type properties.
*
* @return \Drupal\media\MediaTypeInterface
* A media type.
*
* @see \Drupal\media\MediaTypeInterface
* @see \Drupal\media\Entity\MediaType
*/
protected function createMediaType($source_plugin_id, array $values = []) {
$values += [
'id' => $this
->randomMachineName(),
'label' => $this
->randomString(),
'source' => $source_plugin_id,
];
/** @var \Drupal\media\MediaTypeInterface $media_type */
$media_type = MediaType::create($values);
$source = $media_type
->getSource();
$source_field = $source
->createSourceField($media_type);
$source_configuration = $source
->getConfiguration();
$source_configuration['source_field'] = $source_field
->getName();
$source
->setConfiguration($source_configuration);
$this
->assertSame(SAVED_NEW, $media_type
->save());
// The media type form creates a source field if it does not exist yet. The
// same must be done in a kernel test, since it does not use that form.
// @see \Drupal\media\MediaTypeForm::save()
$source_field
->getFieldStorageDefinition()
->save();
// The source field storage has been created, now the field can be saved.
$source_field
->save();
// Add the source field to the form display for the media type.
$form_display = \Drupal::service('entity_display.repository')
->getFormDisplay('media', $media_type
->id(), 'default');
$source
->prepareFormDisplay($media_type, $form_display);
$form_display
->save();
return $media_type;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
MediaTypeCreationTrait:: |
protected | function | Create a media type for a source plugin. |