VocabularyTranslationTest.php

Same filename in this branch
  1. 9 core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d6/VocabularyTranslationTest.php
  2. 9 core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d7/VocabularyTranslationTest.php
Same filename and directory in other branches
  1. 8.9.x core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d6/VocabularyTranslationTest.php
  2. 8.9.x core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d7/VocabularyTranslationTest.php
  3. 8.9.x core/modules/taxonomy/tests/src/Functional/VocabularyTranslationTest.php
  4. 10 core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d6/VocabularyTranslationTest.php
  5. 10 core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d7/VocabularyTranslationTest.php
  6. 10 core/modules/taxonomy/tests/src/Functional/VocabularyTranslationTest.php
  7. 11.x core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d6/VocabularyTranslationTest.php
  8. 11.x core/modules/taxonomy/tests/src/Kernel/Plugin/migrate/source/d7/VocabularyTranslationTest.php
  9. 11.x core/modules/taxonomy/tests/src/Functional/VocabularyTranslationTest.php

Namespace

Drupal\Tests\taxonomy\Functional

File

core/modules/taxonomy/tests/src/Functional/VocabularyTranslationTest.php

View source
<?php

namespace Drupal\Tests\taxonomy\Functional;

use Drupal\language\Entity\ConfigurableLanguage;

/**
 * Tests content translation for vocabularies.
 *
 * @group taxonomy
 */
class VocabularyTranslationTest extends TaxonomyTestBase {
    
    /**
     * {@inheritdoc}
     */
    protected static $modules = [
        'content_translation',
        'language',
        'config_translation',
    ];
    
    /**
     * {@inheritdoc}
     */
    protected $defaultTheme = 'stark';
    
    /**
     * Languages to enable.
     *
     * @var string[]
     */
    protected $additionalLangcodes = [
        'es',
    ];
    
    /**
     * {@inheritdoc}
     */
    protected function setUp() : void {
        parent::setUp();
        // Create an administrative user.
        $this->drupalLogin($this->drupalCreateUser([
            'administer taxonomy',
            'administer content translation',
            'translate configuration',
        ]));
        // Add languages.
        foreach ($this->additionalLangcodes as $langcode) {
            ConfigurableLanguage::createFromLangcode($langcode)->save();
        }
    }
    
    /**
     * Tests language settings for vocabularies.
     */
    public function testVocabularyLanguage() {
        $this->drupalGet('admin/structure/taxonomy/add');
        // Check that the field to enable content translation is available.
        $this->assertSession()
            ->fieldExists('edit-default-language-content-translation');
        // Create the vocabulary.
        $vid = mb_strtolower($this->randomMachineName());
        $edit['name'] = $this->randomMachineName();
        $edit['description'] = $this->randomMachineName();
        $edit['langcode'] = 'en';
        $edit['vid'] = $vid;
        $edit['default_language[content_translation]'] = TRUE;
        $this->submitForm($edit, 'Save');
        // Check if content translation is enabled on the edit page.
        $this->drupalGet('admin/structure/taxonomy/manage/' . $vid);
        $this->assertSession()
            ->checkboxChecked('edit-default-language-content-translation');
    }
    
    /**
     * Tests vocabulary name translation for the overview and reset pages.
     */
    public function testVocabularyTitleLabelTranslation() : void {
        $this->drupalGet('admin/structure/taxonomy/add');
        // Create the vocabulary.
        $vid = mb_strtolower($this->randomMachineName());
        $edit['name'] = $this->randomMachineName();
        $edit['description'] = $this->randomMachineName();
        $edit['langcode'] = 'en';
        $edit['vid'] = $vid;
        $edit['default_language[content_translation]'] = TRUE;
        $this->submitForm($edit, 'Save');
        $langcode = $this->additionalLangcodes[0];
        $vid_name = $edit['name'];
        $translated_vid_name = "Translated {$vid_name}";
        $this->assertSession()
            ->pageTextContains($vid_name);
        // Assert that the name label is displayed on the translation form with the
        // right value.
        $this->drupalGet("admin/structure/taxonomy/manage/{$vid}/translate/{$langcode}/add");
        // Translate the name label.
        $this->submitForm([
            "translation[config_names][taxonomy.vocabulary.{$vid}][name]" => $translated_vid_name,
        ], 'Save translation');
        // Assert that the right name label is displayed on the taxonomy term
        // overview page.
        $this->drupalGet("admin/structure/taxonomy/manage/{$vid}/overview");
        $this->assertSession()
            ->pageTextContains($vid_name);
        $this->drupalGet("{$langcode}/admin/structure/taxonomy/manage/{$vid}/overview");
        $this->assertSession()
            ->pageTextContains($translated_vid_name);
        // Assert that the right name label is displayed on the taxonomy reset page.
        $this->drupalGet("admin/structure/taxonomy/manage/{$vid}/reset");
        $this->assertSession()
            ->pageTextContains($vid_name);
        $this->drupalGet("{$langcode}/admin/structure/taxonomy/manage/{$vid}/reset");
        $this->assertSession()
            ->pageTextContains($translated_vid_name);
    }

}

Classes

Title Deprecated Summary
VocabularyTranslationTest Tests content translation for vocabularies.

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