View source
<?php
namespace Drupal\Tests\field\Kernel;
use Drupal\Core\Entity\Entity\EntityFormDisplay;
use Drupal\Core\Entity\Entity\EntityFormMode;
use Drupal\Core\Entity\Entity\EntityViewDisplay;
use Drupal\Core\Entity\Entity\EntityViewMode;
use Drupal\field\Entity\FieldConfig;
use Drupal\field\Entity\FieldStorageConfig;
class DisplayModeUpdateTest extends FieldKernelTestBase {
protected $defaultViewDisplayName;
protected $defaultFormDisplayName;
protected $foobarViewDisplayName;
protected $foobarFormDisplayName;
protected function setUp() {
parent::setUp();
$default_view_display = EntityViewDisplay::create([
'targetEntityType' => 'entity_test',
'bundle' => 'entity_test',
'mode' => 'default',
'status' => TRUE,
]);
$default_view_display
->save();
$this->defaultViewDisplayName = $default_view_display
->getConfigDependencyName();
$default_form_display = EntityFormDisplay::create([
'targetEntityType' => 'entity_test',
'bundle' => 'entity_test',
'mode' => 'default',
'status' => TRUE,
]);
$default_form_display
->save();
$this->defaultFormDisplayName = $default_form_display
->getConfigDependencyName();
EntityViewMode::create([
'id' => 'entity_test.foobar',
'targetEntityType' => 'entity_test',
'status' => TRUE,
'enabled' => TRUE,
])
->save();
$foobar_view_display = EntityViewDisplay::create([
'targetEntityType' => 'entity_test',
'bundle' => 'entity_test',
'mode' => 'foobar',
'status' => TRUE,
]);
$foobar_view_display
->save();
$this->foobarViewDisplayName = $foobar_view_display
->getConfigDependencyName();
EntityFormMode::create([
'id' => 'entity_test.foobar',
'targetEntityType' => 'entity_test',
'status' => TRUE,
'enabled' => TRUE,
])
->save();
$foobar_form_display = EntityFormDisplay::create([
'targetEntityType' => 'entity_test',
'bundle' => 'entity_test',
'mode' => 'foobar',
'status' => TRUE,
]);
$foobar_form_display
->save();
$this->foobarFormDisplayName = $foobar_form_display
->getConfigDependencyName();
}
public function testDisplayModeUpdateAfterFieldCreation() {
$this
->assertArrayNotHasKey('field_test', \Drupal::config($this->defaultViewDisplayName)
->get('hidden'));
$this
->assertArrayNotHasKey('field_test', \Drupal::config($this->defaultFormDisplayName)
->get('hidden'));
$this
->assertArrayNotHasKey('field_test', \Drupal::config($this->foobarViewDisplayName)
->get('hidden'));
$this
->assertArrayNotHasKey('field_test', \Drupal::config($this->foobarFormDisplayName)
->get('hidden'));
$field_storage = FieldStorageConfig::create([
'field_name' => 'field_test',
'entity_type' => 'entity_test',
'type' => 'test_field',
'cardinality' => 1,
]);
$field_storage
->save();
FieldConfig::create([
'field_storage' => $field_storage,
'bundle' => 'entity_test',
])
->save();
$this
->assertArrayHasKey('field_test', \Drupal::config($this->defaultViewDisplayName)
->get('hidden'));
$this
->assertArrayHasKey('field_test', \Drupal::config($this->defaultFormDisplayName)
->get('hidden'));
$this
->assertArrayHasKey('field_test', \Drupal::config($this->foobarViewDisplayName)
->get('hidden'));
$this
->assertArrayHasKey('field_test', \Drupal::config($this->foobarFormDisplayName)
->get('hidden'));
}
}