function EntityLanguageTestBase::setUp

Same name and namespace in other branches
  1. 9 core/tests/Drupal/KernelTests/Core/Entity/EntityLanguageTestBase.php \Drupal\KernelTests\Core\Entity\EntityLanguageTestBase::setUp()
  2. 8.9.x core/tests/Drupal/KernelTests/Core/Entity/EntityLanguageTestBase.php \Drupal\KernelTests\Core\Entity\EntityLanguageTestBase::setUp()
  3. 11.x core/tests/Drupal/KernelTests/Core/Entity/EntityLanguageTestBase.php \Drupal\KernelTests\Core\Entity\EntityLanguageTestBase::setUp()

Overrides EntityKernelTestBase::setUp

1 call to EntityLanguageTestBase::setUp()
EntityAccessControlHandlerTest::setUp in core/tests/Drupal/KernelTests/Core/Entity/EntityAccessControlHandlerTest.php
1 method overrides EntityLanguageTestBase::setUp()
EntityAccessControlHandlerTest::setUp in core/tests/Drupal/KernelTests/Core/Entity/EntityAccessControlHandlerTest.php

File

core/tests/Drupal/KernelTests/Core/Entity/EntityLanguageTestBase.php, line 52

Class

EntityLanguageTestBase
Base class for language-aware entity tests.

Namespace

Drupal\KernelTests\Core\Entity

Code

protected function setUp() : void {
  parent::setUp();
  $this->languageManager = $this->container
    ->get('language_manager');
  foreach (entity_test_entity_types() as $entity_type_id) {
    // The entity_test schema is installed by the parent.
    if ($entity_type_id != 'entity_test') {
      $this->installEntitySchema($entity_type_id);
    }
  }
  $this->installConfig([
    'language',
  ]);
  // Create the test field.
  $this->container
    ->get('module_handler')
    ->loadInclude('entity_test', 'install');
  entity_test_install();
  // Enable translations for the test entity type.
  $this->state
    ->set('entity_test.translation', TRUE);
  // Create a translatable test field.
  $this->fieldName = $this->randomMachineName() . '_field_name';
  // Create an untranslatable test field.
  $this->untranslatableFieldName = $this->randomMachineName() . '_field_name';
  // Create field fields in all entity variations.
  foreach (entity_test_entity_types() as $entity_type) {
    FieldStorageConfig::create([
      'field_name' => $this->fieldName,
      'entity_type' => $entity_type,
      'type' => 'text',
      'cardinality' => 4,
    ])
      ->save();
    FieldConfig::create([
      'field_name' => $this->fieldName,
      'entity_type' => $entity_type,
      'bundle' => $entity_type,
      'translatable' => TRUE,
    ])
      ->save();
    FieldStorageConfig::create([
      'field_name' => $this->untranslatableFieldName,
      'entity_type' => $entity_type,
      'type' => 'text',
      'cardinality' => 4,
    ])
      ->save();
    FieldConfig::create([
      'field_name' => $this->untranslatableFieldName,
      'entity_type' => $entity_type,
      'bundle' => $entity_type,
      'translatable' => FALSE,
    ])
      ->save();
  }
  // Create the default languages.
  $this->installConfig([
    'language',
  ]);
  // Create test languages.
  $this->langcodes = [];
  for ($i = 0; $i < 3; ++$i) {
    $language = ConfigurableLanguage::create([
      'id' => 'l' . $i,
      'label' => $this->randomString(),
      'weight' => $i,
    ]);
    $this->langcodes[$i] = $language->getId();
    $language->save();
  }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.