
| Current Path : /var/www/html_old/abc/web/core/tests/Drupal/KernelTests/Core/Entity/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/html_old/abc/web/core/tests/Drupal/KernelTests/Core/Entity/LegacyEntityDisplayBaseTest.php |
<?php
namespace Drupal\KernelTests\Core\Entity;
use Drupal\Core\Entity\Entity\EntityViewDisplay;
use Drupal\KernelTests\KernelTestBase;
/**
* Tests Deprecated EntityDisplayBase functionality.
*
* @group Entity
* @group legacy
*/
class LegacyEntityDisplayBaseTest extends KernelTestBase {
/**
* {@inheritdoc}
*/
public static $modules = [
'entity_test',
'entity_test_third_party',
'field',
'system',
'comment',
'user',
];
/**
* {@inheritdoc}
*/
protected function setUp() {
parent::setUp();
$this->installEntitySchema('comment');
$this->installEntitySchema('entity_test');
$this->installSchema('user', ['users_data']);
}
/**
* Tests legacy handling of 'type' => 'hidden'.
*
* @group legacy
*
* @expectedDeprecation Support for using 'type' => 'hidden' in a component is deprecated in drupal:8.3.0 and is removed from drupal:9.0.0. Use 'region' => 'hidden' instead. See https://www.drupal.org/node/2801513
*/
public function testLegacyPreSave() {
$entity_display = EntityViewDisplay::create([
'targetEntityType' => 'entity_test',
'bundle' => 'entity_test',
'mode' => 'default',
'status' => TRUE,
'content' => [
'foo' => ['type' => 'visible'],
'bar' => ['type' => 'hidden'],
'name' => ['type' => 'hidden', 'region' => 'content'],
],
]);
// Ensure that no region is set on the component.
$this->assertArrayNotHasKey('region', $entity_display->getComponent('foo'));
$this->assertArrayNotHasKey('region', $entity_display->getComponent('bar'));
// Ensure that a region is set on the component after saving.
$entity_display->save();
// The component with a visible type has been assigned a region.
$component = $entity_display->getComponent('foo');
$this->assertArrayHasKey('region', $component);
$this->assertSame('content', $component['region']);
// The component with a hidden type has been removed.
$this->assertNull($entity_display->getComponent('bar'));
// The component with a valid region and hidden type is unchanged.
$component = $entity_display->getComponent('name');
$this->assertArrayHasKey('region', $component);
$this->assertSame('content', $component['region']);
}
/**
* Tests the deprecated ::handleHiddenType() method.
*
* @expectedDeprecation Drupal\Core\Entity\EntityDisplayBase::handleHiddenType is deprecated in drupal:8.3.0 and is removed from drupal:9.0.0. No replacement is provided. See https://www.drupal.org/node/2801513
*/
public function testHandleHiddenType() {
$entity_display = EntityViewDisplay::create([
'targetEntityType' => 'entity_test',
'bundle' => 'entity_test',
'mode' => 'default',
'status' => TRUE,
'content' => [
'foo' => ['type' => 'visible'],
'bar' => ['type' => 'hidden'],
'name' => ['type' => 'hidden', 'region' => 'content'],
],
]);
$method = new \ReflectionMethod($entity_display, 'handleHiddenType');
$method->setAccessible(TRUE);
$this->assertSame(['type' => 'hidden'], $entity_display->getComponent('bar'));
$method->invoke($entity_display, 'bar', ['type' => 'hidden']);
$this->assertNull($entity_display->getComponent('bar'));
}
}