installEntitySchema('entity_test'); $this->installEntitySchema('user'); $this->installConfig(['system']); $this->installSchema('system', ['sequences', 'key_value']); // Add a datetime range field. $this->fieldStorage = FieldStorageConfig::create([ 'field_name' => Unicode::strtolower($this->randomMachineName()), 'entity_type' => 'entity_test', 'type' => 'daterange', 'settings' => ['datetime_type' => DateTimeItem::DATETIME_TYPE_DATE], ]); $this->fieldStorage->save(); $this->field = FieldConfig::create([ 'field_storage' => $this->fieldStorage, 'bundle' => 'entity_test', 'required' => TRUE, ]); $this->field->save(); $display_options = [ 'type' => 'daterange_default', 'label' => 'hidden', 'settings' => [ 'format_type' => 'fallback', 'separator' => 'UNTRANSLATED', ], ]; EntityViewDisplay::create([ 'targetEntityType' => $this->field->getTargetEntityTypeId(), 'bundle' => $this->field->getTargetBundle(), 'mode' => 'default', 'status' => TRUE, ])->setComponent($this->fieldStorage->getName(), $display_options) ->save(); } /** * Tests the translation of the range separator. */ public function testSeparatorTranslation() { // Create an entity. $entity = EntityTest::create([ 'name' => $this->randomString(), $this->fieldStorage->getName() => [ 'value' => '2016-09-20', 'end_value' => '2016-09-21', ], ]); // Verify the untranslated separator. $display = EntityViewDisplay::collectRenderDisplay($entity, 'default'); $build = $display->build($entity); $output = $this->container->get('renderer')->renderRoot($build); $this->verbose($output); $this->assertContains('UNTRANSLATED', (string) $output); // Translate the separator. ConfigurableLanguage::createFromLangcode('nl')->save(); /** @var \Drupal\language\ConfigurableLanguageManagerInterface $language_manager */ $language_manager = $this->container->get('language_manager'); $language_manager->getLanguageConfigOverride('nl', 'core.entity_view_display.entity_test.entity_test.default') ->set('content.' . $this->fieldStorage->getName() . '.settings.separator', 'NL_TRANSLATED!') ->save(); $this->container->get('language.config_factory_override') ->setLanguage(new Language(['id' => 'nl'])); $this->container->get('cache_tags.invalidator')->invalidateTags($entity->getCacheTags()); $display = EntityViewDisplay::collectRenderDisplay($entity, 'default'); $build = $display->build($entity); $output = $this->container->get('renderer')->renderRoot($build); $this->verbose($output); $this->assertContains('NL_TRANSLATED!', (string) $output); } }