public function ContentTmgmtEntitySourceNoCanonicalLinkTest::testNoCanonicalLinkTemplate

Tests for no canonical link templates.

File

sources/content/tests/src/Functional/ContentTmgmtEntitySourceNoCanonicalLinkTest.php, line 55

Class

ContentTmgmtEntitySourceNoCanonicalLinkTest
Test for translatable entity types with no canonical link template.

Namespace

Drupal\Tests\tmgmt_content\Functional

Code

public function testNoCanonicalLinkTemplate() {

  // Create an entity that has no canonical link but is translatable.
  $entity = EntityTestTranslatableUISkip::create([
    'name' => 'name english',
    'langcode' => 'en',
  ]);
  $entity
    ->save();

  // Go to the overview page and assert that the entity label appears.
  $this
    ->drupalGet('admin/tmgmt/sources/content/entity_test_translatable_UI_skip');
  $this
    ->assertSession()
    ->pageTextContains($entity
    ->label());

  // Add a translation to the entity and submit it to the provider.
  $edit = [
    'items[' . $entity
      ->id() . ']' => TRUE,
  ];
  $this
    ->submitForm($edit, 'Request translation');
  $this
    ->submitForm([], 'Submit to provider');
  $this
    ->assertSession()
    ->pageTextContains('The translation of ' . $entity
    ->label() . ' to German is finished and can now be reviewed.');

  // Review and save the entity translation.
  $this
    ->clickLink('reviewed');

  // Non-publishable and non-moderated entities do not have publish status
  // form element.
  $this
    ->assertSession()
    ->pageTextNotContains('Translation publish status');
  $this
    ->assertSession()
    ->fieldNotExists('edit-moderation-state-new-state');
  $this
    ->submitForm([], 'Save as completed');
  $this
    ->assertSession()
    ->titleEquals($entity
    ->label() . ' (English to German, Finished) | Drupal');
  $this
    ->assertSession()
    ->pageTextContains('The translation for name english has been accepted as de(de-ch): name english.');
}