class TranslationLinkTest

Same name and namespace in other branches
  1. 11.x core/modules/content_translation/tests/src/Functional/Views/TranslationLinkTest.php \Drupal\Tests\content_translation\Functional\Views\TranslationLinkTest
  2. 10 core/modules/content_translation/tests/src/Functional/Views/TranslationLinkTest.php \Drupal\Tests\content_translation\Functional\Views\TranslationLinkTest

Tests the content translation overview link field handler.

@group content_translation

Hierarchy

Expanded class hierarchy of TranslationLinkTest

See also

\Drupal\content_translation\Plugin\views\field\TranslationLink

File

core/modules/content_translation/tests/src/Functional/Views/TranslationLinkTest.php, line 16

Namespace

Drupal\Tests\content_translation\Functional\Views
View source
class TranslationLinkTest extends ContentTranslationTestBase {
  
  /**
   * Views used by this test.
   *
   * @var array
   */
  public static $testViews = [
    'test_entity_translations_link',
  ];
  
  /**
   * Modules to enable.
   *
   * @var array
   */
  protected static $modules = [
    'content_translation_test_views',
  ];
  
  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';
  
  /**
   * {@inheritdoc}
   */
  protected function setUp() : void {
    // @todo Use entity_type once it has multilingual Views integration.
    $this->entityTypeId = 'user';
    parent::setUp();
    // Assign user 1  a language code so that the entity can be translated.
    $user = User::load(1);
    $user->langcode = 'en';
    $user->save();
    // Assign user 2 LANGCODE_NOT_SPECIFIED code so entity can't be translated.
    $user = User::load(2);
    $user->langcode = Language::LANGCODE_NOT_SPECIFIED;
    $user->save();
    ViewTestData::createTestViews(static::class, [
      'content_translation_test_views',
    ]);
  }
  
  /**
   * {@inheritdoc}
   */
  protected function getTranslatorPermissions() {
    $permissions = parent::getTranslatorPermissions();
    $permissions[] = 'access user profiles';
    return $permissions;
  }
  
  /**
   * Tests the content translation overview link field handler.
   */
  public function testTranslationLink() {
    $this->drupalGet('test-entity-translations-link');
    $this->assertSession()
      ->linkByHrefExists('user/1/translations');
    $this->assertSession()
      ->linkByHrefNotExists('user/2/translations', 'The translations link is not present when content_translation_translate_access() is FALSE.');
  }

}

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