Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
CRAP | |
0.00% |
0 / 31 |
TaxonomyTranslationTestTrait | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
12 | |
0.00% |
0 / 31 |
setupLanguages | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
enableTranslation | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 7 |
|||
setUpTermReferenceField | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 21 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\taxonomy\Tests\TaxonomyTranslationTestTrait. | |
*/ | |
namespace Drupal\taxonomy\Tests; | |
use Drupal\Core\Field\FieldStorageDefinitionInterface; | |
use Drupal\field\Tests\EntityReference\EntityReferenceTestTrait; | |
use Drupal\field\Entity\FieldStorageConfig; | |
use Drupal\language\Entity\ConfigurableLanguage; | |
/** | |
* Provides common testing base for translated taxonomy terms. | |
*/ | |
trait TaxonomyTranslationTestTrait { | |
use EntityReferenceTestTrait; | |
/** | |
* The vocabulary. | |
* | |
* @var \Drupal\taxonomy\Entity\Vocabulary; | |
*/ | |
protected $vocabulary; | |
/** | |
* The field name for our taxonomy term field. | |
* | |
* @var string | |
*/ | |
protected $termFieldName = 'field_tag'; | |
/** | |
* The langcode of the source language. | |
* | |
* @var string | |
*/ | |
protected $baseLangcode = 'en'; | |
/** | |
* Target langcode for translation. | |
* | |
* @var string | |
*/ | |
protected $translateToLangcode = 'hu'; | |
/** | |
* The node to check the translated value on. | |
* | |
* @var \Drupal\node\Entity\Node | |
*/ | |
protected $node; | |
/** | |
* Adds additional languages. | |
*/ | |
protected function setupLanguages() { | |
ConfigurableLanguage::createFromLangcode($this->translateToLangcode)->save(); | |
$this->rebuildContainer(); | |
} | |
/** | |
* Enables translations where it needed. | |
*/ | |
protected function enableTranslation() { | |
// Enable translation for the current entity type and ensure the change is | |
// picked up. | |
\Drupal::service('content_translation.manager')->setEnabled('node', 'article', TRUE); | |
\Drupal::service('content_translation.manager')->setEnabled('taxonomy_term', $this->vocabulary->id(), TRUE); | |
drupal_static_reset(); | |
\Drupal::entityManager()->clearCachedDefinitions(); | |
\Drupal::service('router.builder')->rebuild(); | |
\Drupal::service('entity.definition_update_manager')->applyUpdates(); | |
} | |
/** | |
* Adds term reference field for the article content type. | |
* | |
* @param bool $translatable | |
* (optional) If TRUE, create a translatable term reference field. Defaults | |
* to FALSE. | |
*/ | |
protected function setUpTermReferenceField() { | |
$handler_settings = array( | |
'target_bundles' => array( | |
$this->vocabulary->id() => $this->vocabulary->id(), | |
), | |
'auto_create' => TRUE, | |
); | |
$this->createEntityReferenceField('node', 'article', $this->termFieldName, NULL, 'taxonomy_term', 'default', $handler_settings, FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED); | |
$field_storage = FieldStorageConfig::loadByName('node', $this->termFieldName); | |
$field_storage->setTranslatable(FALSE); | |
$field_storage->save(); | |
entity_get_form_display('node', 'article', 'default') | |
->setComponent($this->termFieldName, array( | |
'type' => 'entity_reference_autocomplete_tags', | |
)) | |
->save(); | |
entity_get_display('node', 'article', 'default') | |
->setComponent($this->termFieldName, array( | |
'type' => 'entity_reference_label', | |
)) | |
->save(); | |
} | |
} |