public function FieldDefinitionIntegrityTest::testFieldPluginDefinitionAvailability in Drupal 9
Same name and namespace in other branches
- 8 core/modules/field/tests/src/Kernel/FieldDefinitionIntegrityTest.php \Drupal\Tests\field\Kernel\FieldDefinitionIntegrityTest::testFieldPluginDefinitionAvailability()
Tests to load field plugin definitions used in core's existing entities.
File
- core/
modules/ field/ tests/ src/ Kernel/ FieldDefinitionIntegrityTest.php, line 93
Class
- FieldDefinitionIntegrityTest
- Tests the integrity of field API plugin definitions.
Namespace
Drupal\Tests\field\KernelCode
public function testFieldPluginDefinitionAvailability() {
$this
->enableModules($this
->modulesWithSubdirectory('src' . DIRECTORY_SEPARATOR . 'Entity'));
/** @var \Drupal\Component\Plugin\Discovery\DiscoveryInterface $field_type_manager */
$field_formatter_manager = $this->container
->get('plugin.manager.field.formatter');
/** @var \Drupal\Component\Plugin\Discovery\DiscoveryInterface $field_type_manager */
$field_widget_manager = $this->container
->get('plugin.manager.field.widget');
/** @var \Drupal\Core\Entity\EntityFieldManagerInterface $entity_field_manager */
$entity_field_manager = $this->container
->get('entity_field.manager');
/** @var \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager */
$entity_type_manager = $this->container
->get('entity_type.manager');
/** @var \Drupal\Core\Field\BaseFieldDefinition[][] $field_definitions */
$field_definitions = [];
/** @var \Drupal\Core\Entity\EntityTypeInterface[] $content_entity_types */
$content_entity_types = array_filter($entity_type_manager
->getDefinitions(), function (EntityTypeInterface $entity_type) {
return $entity_type instanceof ContentEntityTypeInterface;
});
foreach ($content_entity_types as $entity_type_id => $entity_type_definition) {
$field_definitions[$entity_type_id] = $entity_field_manager
->getBaseFieldDefinitions($entity_type_id);
}
foreach ($field_definitions as $entity_type_id => $definitions) {
foreach ($definitions as $field_id => $field_definition) {
$this
->checkDisplayOption($entity_type_id, $field_id, $field_definition, $field_formatter_manager, 'view');
$this
->checkDisplayOption($entity_type_id, $field_id, $field_definition, $field_widget_manager, 'form');
}
}
}