You are here

protected function EntityReferenceRevisionsCompositeTranslatableFieldTest::setUp in Entity Reference Revisions 8

Overrides EntityKernelTestBase::setUp

File

tests/src/Kernel/EntityReferenceRevisionsCompositeTranslatableFieldTest.php, line 57

Class

EntityReferenceRevisionsCompositeTranslatableFieldTest
Tests entity_reference_revisions composites with a translatable field.

Namespace

Drupal\Tests\entity_reference_revisions\Kernel

Code

protected function setUp() {
  parent::setUp();
  ConfigurableLanguage::createFromLangcode('de')
    ->save();
  ConfigurableLanguage::createFromLangcode('fr')
    ->save();
  $this
    ->installEntitySchema('entity_test_composite');
  $this
    ->installSchema('node', [
    'node_access',
  ]);

  // Create article content type.
  NodeType::create([
    'type' => 'article',
    'name' => 'Article',
  ])
    ->save();

  // Create the reference to the composite entity test.
  $field_storage = FieldStorageConfig::create(array(
    'field_name' => 'composite_reference',
    'entity_type' => 'node',
    'type' => 'entity_reference_revisions',
    'settings' => array(
      'target_type' => 'entity_test_composite',
    ),
  ));
  $field_storage
    ->save();
  $field = FieldConfig::create(array(
    'field_storage' => $field_storage,
    'bundle' => 'article',
    'translatable' => TRUE,
  ));
  $field
    ->save();

  // Inject database connection and entity type manager for the tests.
  $this->database = \Drupal::database();
  $this->entityTypeManager = \Drupal::entityTypeManager();

  // @todo content_translation should not be needed for a storage test, but
  //   \Drupal\Core\Entity\ContentEntityBase::isTranslatable() only returns
  //   TRUE if the bundle is explicitly translatable.
  \Drupal::service('content_translation.manager')
    ->setEnabled('node', 'article', TRUE);
  \Drupal::service('content_translation.manager')
    ->setEnabled('entity_test_composite', 'entity_test_composite', TRUE);
  \Drupal::service('content_translation.manager')
    ->setBundleTranslationSettings('node', 'article', [
    'untranslatable_fields_hide' => TRUE,
  ]);
  \Drupal::service('entity_type.bundle.info')
    ->clearCachedBundles();
}