public function ParagraphsTypesTest::testAddParagraphTypes

Tests adding the existing paragraph types.

File

paragraphs_collection/tests/src/Functional/ParagraphsTypesTest.php, line 26

Class

ParagraphsTypesTest
Tests the Paragraphs Collection paragraph types.

Namespace

Drupal\Tests\paragraphs_collection\Functional

Code

public function testAddParagraphTypes() {
  $this
    ->addParagraphedContentType('paragraphed_test');
  $this
    ->loginAsAdmin([
    'create paragraphed_test content',
    'edit any paragraphed_test content',
    'administer paragraphs library',
  ]);
  $this
    ->drupalGet('/node/add/paragraphed_test');
  $this
    ->submitForm([], 'field_paragraphs_intro_add_more');
  $this
    ->submitForm([], 'field_paragraphs_quote_add_more');
  $this
    ->submitForm([], 'field_paragraphs_separator_add_more');
  $this
    ->submitForm([], 'field_paragraphs_subtitle_add_more');
  $this
    ->submitForm([], 'field_paragraphs_title_add_more');
  $this
    ->submitForm([], 'field_paragraphs_user_add_more');
  $this
    ->submitForm([], 'field_paragraphs_footer_add_more');
  $edit = [
    'title[0][value]' => 'Paragraph types example',
    'field_paragraphs[0][subform][paragraphs_text][0][value]' => 'Intro test',
    'field_paragraphs[1][subform][paragraphs_quote_text][0][value]' => 'Quote test',
    'field_paragraphs[1][subform][paragraphs_quote_author][0][value]' => 'Author test',
    'field_paragraphs[3][subform][paragraphs_subtitle][0][value]' => 'Subtitle test',
    'field_paragraphs[4][subform][paragraphs_title][0][value]' => 'Title test',
    'field_paragraphs[5][subform][paragraphs_user][0][target_id]' => $this->admin_user
      ->getAccountName() . ' (' . $this->admin_user
      ->id() . ')',
    'field_paragraphs[6][subform][paragraphs_text][0][value]' => 'Footer test',
  ];
  $this
    ->submitForm($edit, 'Save');

  // Checks content.
  $this
    ->assertSession()
    ->pageTextContains('Intro test');
  $this
    ->assertSession()
    ->pageTextContains($this->admin_user
    ->getDisplayName());
  $this
    ->assertSession()
    ->pageTextContains('Footer test');
  $this
    ->assertSession()
    ->pageTextContains('Subtitle test');
  $this
    ->assertSession()
    ->pageTextContains('Title test');

  // Asserts the quote paragraph type.
  $elements = $this
    ->xpath('//blockquote[contains(@class, class)]', [
    ':class' => 'paragraph--type--quote',
  ]);
  $this
    ->assertCount(1, $elements);
  $this
    ->assertSession()
    ->pageTextContains('Quote test');
  $this
    ->assertSession()
    ->pageTextContains('Author test');

  // Adds the link paragraph type.
  $this
    ->drupalGet('/node/add/paragraphed_test');
  $this
    ->submitForm([], 'field_paragraphs_link_add_more');
  $edit = [
    'title[0][value]' => 'Link example',
    'field_paragraphs[0][subform][paragraphs_link][0][uri]' => 'Paragraph types example (1)',
    'field_paragraphs[0][subform][paragraphs_link][0][title]' => 'Link test',
  ];
  $this
    ->submitForm($edit, 'Save');

  // Checks if the link type is working properly.
  $this
    ->clickLink('Link test');
  $this
    ->assertSession()
    ->pageTextContains('Paragraph types example');
}