
| Current Path : /var/www/html/dataninja.cn/core/modules/layout_builder/tests/src/Kernel/ |
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/dataninja.cn/core/modules/layout_builder/tests/src/Kernel/TranslatableFieldTest.php |
<?php
namespace Drupal\Tests\layout_builder\Kernel;
use Drupal\entity_test\Entity\EntityTest;
use Drupal\field\Entity\FieldConfig;
use Drupal\field\Entity\FieldStorageConfig;
use Drupal\KernelTests\KernelTestBase;
use Drupal\language\Entity\ConfigurableLanguage;
use Drupal\layout_builder\Entity\LayoutBuilderEntityViewDisplay;
use Drupal\layout_builder\Plugin\SectionStorage\OverridesSectionStorage;
use Drupal\layout_builder\Section;
use Drupal\layout_builder\SectionComponent;
/**
* Tests Layout Builder with a translatable layout field.
*
* @group layout_builder
*/
class TranslatableFieldTest extends KernelTestBase {
/**
* {@inheritdoc}
*/
protected static $modules = [
'layout_discovery',
'layout_builder',
'entity_test',
'field',
'system',
'user',
'language',
];
/**
* {@inheritdoc}
*/
protected function setUp() {
parent::setUp();
$this->installSchema('system', ['key_value_expire']);
$this->installEntitySchema('entity_test');
// Create a translation.
ConfigurableLanguage::createFromLangcode('es')->save();
LayoutBuilderEntityViewDisplay::create([
'targetEntityType' => 'entity_test',
'bundle' => 'entity_test',
'mode' => 'default',
'status' => TRUE,
])
->enableLayoutBuilder()
->setOverridable()
->save();
FieldStorageConfig::loadByName('entity_test', OverridesSectionStorage::FIELD_NAME)
->setTranslatable(TRUE)
->save();
FieldConfig::loadByName('entity_test', 'entity_test', OverridesSectionStorage::FIELD_NAME)
->setTranslatable(TRUE)
->save();
}
/**
* Tests that sections on cleared when creating a new translation.
*/
public function testSectionsClearedOnCreateTranslation() {
$section_data = [
new Section('layout_default', [], [
'first-uuid' => new SectionComponent('first-uuid', 'content', ['id' => 'foo']),
]),
];
$entity = EntityTest::create([OverridesSectionStorage::FIELD_NAME => $section_data]);
$entity->save();
$this->assertFalse($entity->get(OverridesSectionStorage::FIELD_NAME)->isEmpty());
$entity = EntityTest::load($entity->id());
/** @var \Drupal\entity_test\Entity\EntityTest $translation */
$translation = $entity->addTranslation('es', $entity->toArray());
// Per-language layouts are not supported.
$this->assertTrue($translation->get(OverridesSectionStorage::FIELD_NAME)->isEmpty());
}
}