reviewer-1.2.x-dev/modules/reviewer_test_kit/tests/src/Kernel/Entity/Display/FieldNameGenerationTest.php
modules/reviewer_test_kit/tests/src/Kernel/Entity/Display/FieldNameGenerationTest.php
<?php
declare(strict_types=1);
namespace Drupal\Tests\reviewer_test_kit\Kernel\Entity\Display;
use Drupal\field\Entity\FieldConfig;
use Drupal\field\Entity\FieldStorageConfig;
use Drupal\reviewer\Reviewer\Action;
use Drupal\reviewer_test_kit\Plugin\reviewer\Task\Entity\Display\DisplayFieldsTaskBase;
use Drupal\Tests\reviewer_test_kit\Kernel\Entity\EntityTaskBaseTestBase;
use Drupal\Tests\taxonomy\Traits\TaxonomyTestTrait;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\Group;
/**
* Test for field name generation on tasks.
*/
#[Group('reviewer')]
#[CoversClass(DisplayFieldsTaskBase::class)]
final class FieldNameGenerationTest extends EntityTaskBaseTestBase {
use TaxonomyTestTrait;
/**
* {@inheritdoc}
*/
protected static $modules = [
'taxonomy',
];
/**
* {@inheritdoc}
*
* @throws \Drupal\Core\Entity\EntityStorageException
*/
protected function setUp(): void {
parent::setUp();
$this->installEntitySchema('taxonomy_term');
$this->installConfig(['taxonomy']);
$this->createVocabulary(['vid' => 'reviewer']);
// Add an entity reference field to test the $fieldTypes handlers.
$storage = FieldStorageConfig::create([
'entity_type' => 'node',
'field_name' => 'field_term',
'type' => 'entity_reference',
]);
$storage->save();
FieldConfig::create([
'field_storage' => $storage,
'bundle' => 'reviewer',
'label' => 'Term',
'settings' => [
'handler' => 'default:taxonomy_term',
'handler_settings' => [
'target_bundles' => [
'reviewer',
],
],
],
])->save();
}
/**
* Test field name generation from names and types.
*
* @throws \Drupal\Core\Entity\EntityStorageException
*/
public function testFieldNameGeneration(): void {
$form = $this
->loadForm()
->setComponent('field_link', [
'region' => 'content',
'type' => 'link',
])
->setComponent('field_node', [
'region' => 'content',
'type' => 'entity_reference_autocomplete',
])
->setComponent('field_term', [
'region' => 'content',
'type' => 'entity_reference_autocomplete',
]);
$form->save();
$expected_values = [
implode(',', array_keys($form->getComponents())),
implode(',', array_keys($form->getComponents())),
'field_link,field_node,field_term,uid',
'field_node,field_term',
];
$review = $this->runOneTaskReview(Action::Check, 'test_fields_review');
$results = $review->getResults()->getIndividualResults();
self::assertNotCount(0, $results);
foreach (array_values($results) as $index => $result) {
self::assertSame($expected_values[$index] ?? '', $result->getMessage());
}
}
}
