annotate core/modules/taxonomy/tests/src/Functional/TermTranslationFieldViewTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 4c8ae668cc8c
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\Tests\taxonomy\Functional;
Chris@0 4
Chris@0 5 use Drupal\node\Entity\Node;
Chris@0 6
Chris@0 7 /**
Chris@0 8 * Tests the translation of taxonomy terms field on nodes.
Chris@0 9 *
Chris@0 10 * @group taxonomy
Chris@0 11 */
Chris@0 12 class TermTranslationFieldViewTest extends TaxonomyTestBase {
Chris@0 13
Chris@0 14 use TaxonomyTranslationTestTrait;
Chris@0 15
Chris@0 16 /**
Chris@0 17 * The term that should be translated.
Chris@0 18 *
Chris@0 19 * @var \Drupal\taxonomy\Entity\Term
Chris@0 20 */
Chris@0 21 protected $term;
Chris@0 22
Chris@0 23 /**
Chris@0 24 * The tag in the source language.
Chris@0 25 *
Chris@0 26 * @var string
Chris@0 27 */
Chris@0 28 protected $baseTagName = 'OriginalTagName';
Chris@0 29
Chris@0 30 /**
Chris@0 31 * The translated value for the tag.
Chris@0 32 *
Chris@0 33 * @var string
Chris@0 34 */
Chris@0 35 protected $translatedTagName = 'TranslatedTagName';
Chris@0 36
Chris@0 37 /**
Chris@0 38 * Modules to enable.
Chris@0 39 *
Chris@0 40 * @var array
Chris@0 41 */
Chris@0 42 public static $modules = ['language', 'content_translation', 'taxonomy'];
Chris@0 43
Chris@0 44 protected function setUp() {
Chris@0 45 parent::setUp();
Chris@0 46 $this->setupLanguages();
Chris@0 47 $this->vocabulary = $this->createVocabulary();
Chris@0 48 $this->enableTranslation();
Chris@0 49 $this->setUpTerm();
Chris@0 50 $this->setUpTermReferenceField();
Chris@0 51 $this->setUpNode();
Chris@0 52 }
Chris@0 53
Chris@0 54 /**
Chris@0 55 * Tests if the translated taxonomy term is displayed.
Chris@0 56 */
Chris@0 57 public function testTranslatedTaxonomyTermReferenceDisplay() {
Chris@0 58 $path = 'node/' . $this->node->id();
Chris@0 59 $translation_path = $this->translateToLangcode . '/' . $path;
Chris@0 60
Chris@0 61 $this->drupalGet($path);
Chris@0 62 $this->assertNoText($this->translatedTagName);
Chris@0 63 $this->assertText($this->baseTagName);
Chris@0 64 $this->drupalGet($translation_path);
Chris@0 65 $this->assertText($this->translatedTagName);
Chris@0 66 $this->assertNoText($this->baseTagName);
Chris@0 67 }
Chris@0 68
Chris@0 69 /**
Chris@0 70 * Creates a test subject node, with translation.
Chris@0 71 */
Chris@0 72 protected function setUpNode() {
Chris@0 73 /** @var \Drupal\node\Entity\Node $node */
Chris@0 74 $node = Node::create([
Chris@0 75 'title' => $this->randomMachineName(),
Chris@0 76 'type' => 'article',
Chris@0 77 'description' => [
Chris@0 78 [
Chris@0 79 'value' => $this->randomMachineName(),
Chris@0 80 'format' => 'basic_html',
Chris@0 81 ],
Chris@0 82 ],
Chris@0 83 $this->termFieldName => [['target_id' => $this->term->id()]],
Chris@0 84 'langcode' => $this->baseLangcode,
Chris@0 85 ]);
Chris@0 86 $node->save();
Chris@0 87 $node->addTranslation($this->translateToLangcode, $node->toArray());
Chris@0 88 $node->save();
Chris@0 89 $this->node = $node;
Chris@0 90 }
Chris@0 91
Chris@0 92 /**
Chris@0 93 * Creates a test subject term, with translation.
Chris@0 94 */
Chris@0 95 protected function setUpTerm() {
Chris@0 96 $this->term = $this->createTerm($this->vocabulary, [
Chris@0 97 'name' => $this->baseTagName,
Chris@0 98 'langcode' => $this->baseLangcode,
Chris@0 99 ]);
Chris@0 100
Chris@0 101 $this->term->addTranslation($this->translateToLangcode, [
Chris@0 102 'name' => $this->translatedTagName,
Chris@0 103 ]);
Chris@0 104 $this->term->save();
Chris@0 105 }
Chris@0 106
Chris@0 107 }