class ContentTranslationContextualLinksTest

Same name in this branch
  1. 9 core/modules/content_translation/tests/src/Functional/ContentTranslationContextualLinksTest.php \Drupal\Tests\content_translation\Functional\ContentTranslationContextualLinksTest
Same name and namespace in other branches
  1. 11.x core/modules/content_translation/tests/src/FunctionalJavascript/ContentTranslationContextualLinksTest.php \Drupal\Tests\content_translation\FunctionalJavascript\ContentTranslationContextualLinksTest
  2. 11.x core/modules/content_translation/tests/src/Functional/ContentTranslationContextualLinksTest.php \Drupal\Tests\content_translation\Functional\ContentTranslationContextualLinksTest

Tests that contextual links are available for content translation.

@group content_translation

Hierarchy

Expanded class hierarchy of ContentTranslationContextualLinksTest

File

core/modules/content_translation/tests/src/FunctionalJavascript/ContentTranslationContextualLinksTest.php, line 13

Namespace

Drupal\Tests\content_translation\FunctionalJavascript
View source
class ContentTranslationContextualLinksTest extends WebDriverTestBase {
  
  /**
   * The 'translator' user to use during testing.
   *
   * @var \Drupal\user\UserInterface
   */
  protected $translator;
  
  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'content_translation',
    'contextual',
    'node',
  ];
  
  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';
  
  /**
   * {@inheritdoc}
   */
  protected function setUp() : void {
    parent::setUp();
    // Set up an additional language.
    ConfigurableLanguage::createFromLangcode('es')->save();
    // Create a content type.
    $this->drupalCreateContentType([
      'type' => 'page',
    ]);
    // Enable content translation.
    $this->drupalLogin($this->rootUser);
    $this->drupalGet('admin/config/regional/content-language');
    $edit = [
      'entity_types[node]' => TRUE,
      'settings[node][page][translatable]' => TRUE,
    ];
    $this->submitForm($edit, 'Save configuration');
    $this->drupalLogout();
    // Create a translator user.
    $permissions = [
      'access contextual links',
      'administer nodes',
      'edit any page content',
      'translate any entity',
    ];
    $this->translator = $this->drupalCreateUser($permissions);
  }
  
  /**
   * Tests that a contextual link is available for translating a node.
   */
  public function testContentTranslationContextualLinks() {
    $node = $this->drupalCreateNode([
      'type' => 'page',
      'title' => 'Test',
    ]);
    // Check that the translate link appears on the node page.
    $this->drupalLogin($this->translator);
    $this->drupalGet('node/' . $node->id());
    $link = $this->assertSession()
      ->waitForElement('css', '[data-contextual-id^="node:node=1"] .contextual-links a:contains("Translate")');
    $this->assertStringContainsString('node/1/translations', $link->getAttribute('href'));
  }

}

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