ContentTranslationStandardFieldsTest.php

Same filename and directory in other branches
  1. 9 core/modules/content_translation/tests/src/Functional/ContentTranslationStandardFieldsTest.php
  2. 8.9.x core/modules/content_translation/tests/src/Functional/ContentTranslationStandardFieldsTest.php
  3. 10 core/modules/content_translation/tests/src/Functional/ContentTranslationStandardFieldsTest.php

Namespace

Drupal\Tests\content_translation\Functional

File

core/modules/content_translation/tests/src/Functional/ContentTranslationStandardFieldsTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\content_translation\Functional;

use Drupal\block_content\Entity\BlockContentType;
use Drupal\comment\Entity\CommentType;
use Drupal\Tests\BrowserTestBase;

/**
 * Tests the Content translation settings.
 *
 * @group content_translation
 */
class ContentTranslationStandardFieldsTest extends BrowserTestBase {
  
  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'language',
    'content_translation',
    'node',
    'comment',
    'field_ui',
  ];
  
  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';
  
  /**
   * {@inheritdoc}
   */
  protected $profile = 'testing';
  
  /**
   * {@inheritdoc}
   */
  protected function setUp() : void {
    parent::setUp();
    $admin_user = $this->drupalCreateUser([
      'access administration pages',
      'administer languages',
      'administer content translation',
      'administer content types',
      'administer node fields',
      'administer comment fields',
      'administer comments',
      'administer comment types',
    ]);
    $this->drupalLogin($admin_user);
  }
  
  /**
   * Tests that translatable fields are being rendered.
   */
  public function testFieldTranslatableArticle() : void {
    // Install block and field modules.
    \Drupal::service('module_installer')->install([
      'block',
      'block_content',
      'filter',
      'image',
      'text',
    ]);
    // Create a basic block type with a body field.
    $bundle = BlockContentType::create([
      'id' => 'basic',
      'label' => 'Basic',
      'revision' => FALSE,
    ]);
    $bundle->save();
    block_content_add_body_field($bundle->id());
    // Create a comment type with a body field.
    $bundle = CommentType::create([
      'id' => 'comment',
      'label' => 'Comment',
      'target_entity_type_id' => 'node',
    ]);
    $bundle->save();
    \Drupal::service('comment.manager')->addBodyField('comment');
    // Create the article content type and add a comment, image and tag field.
    $this->drupalCreateContentType([
      'type' => 'article',
      'title' => 'Article',
    ]);
    $entity_type_manager = \Drupal::entityTypeManager();
    $entity_type_manager->getStorage('field_storage_config')
      ->create([
      'entity_type' => 'node',
      'field_name' => 'comment',
      'type' => 'text',
    ])
      ->save();
    $entity_type_manager->getStorage('field_config')
      ->create([
      'label' => 'Comments',
      'field_name' => 'comment',
      'entity_type' => 'node',
      'bundle' => 'article',
    ])
      ->save();
    $entity_type_manager->getStorage('field_storage_config')
      ->create([
      'entity_type' => 'node',
      'field_name' => 'field_image',
      'type' => 'image',
    ])
      ->save();
    $entity_type_manager->getStorage('field_config')
      ->create([
      'label' => 'Image',
      'field_name' => 'field_image',
      'entity_type' => 'node',
      'bundle' => 'article',
    ])
      ->save();
    $entity_type_manager->getStorage('field_storage_config')
      ->create([
      'entity_type' => 'node',
      'field_name' => 'field_tags',
      'type' => 'text',
    ])
      ->save();
    $entity_type_manager->getStorage('field_config')
      ->create([
      'label' => 'Tags',
      'field_name' => 'field_tags',
      'entity_type' => 'node',
      'bundle' => 'article',
    ])
      ->save();
    $entity_type_manager->getStorage('field_storage_config')
      ->create([
      'entity_type' => 'user',
      'field_name' => 'user_picture',
      'type' => 'image',
    ])
      ->save();
    // Add a user picture field to the user entity.
    $entity_type_manager->getStorage('field_config')
      ->create([
      'label' => 'Tags',
      'field_name' => 'user_picture',
      'entity_type' => 'user',
      'bundle' => 'user',
    ])
      ->save();
    $path = 'admin/config/regional/content-language';
    $this->drupalGet($path);
    // Check content block fields.
    $this->assertSession()
      ->checkboxChecked('edit-settings-block-content-basic-fields-body');
    // Check comment fields.
    $this->assertSession()
      ->checkboxChecked('edit-settings-comment-comment-fields-comment-body');
    // Check node fields.
    $this->assertSession()
      ->checkboxChecked('edit-settings-node-article-fields-comment');
    $this->assertSession()
      ->checkboxChecked('edit-settings-node-article-fields-field-image');
    $this->assertSession()
      ->checkboxChecked('edit-settings-node-article-fields-field-tags');
    // Check user fields.
    $this->assertSession()
      ->checkboxChecked('edit-settings-user-user-fields-user-picture');
  }
  
  /**
   * Tests that revision_log is not translatable.
   */
  public function testRevisionLogNotTranslatable() : void {
    $path = 'admin/config/regional/content-language';
    $this->drupalGet($path);
    $this->assertSession()
      ->fieldNotExists('edit-settings-node-article-fields-revision-log');
  }

}

Classes

Title Deprecated Summary
ContentTranslationStandardFieldsTest Tests the Content translation settings.

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