public function ParagraphsCollectionStyleTest::testStylePluginSummary

Test paragraphs style behavior plugin summary.

File

paragraphs_collection/tests/src/Functional/ParagraphsCollectionStyleTest.php, line 82

Class

ParagraphsCollectionStyleTest
Test paragraphs collection style behavior.

Namespace

Drupal\Tests\paragraphs_collection\Functional

Code

public function testStylePluginSummary() {

  // Create a paragraphed content type.
  $this
    ->addParagraphedContentType('testcontent', 'testparagraphfield');
  $this
    ->loginAsAdmin([
    'access content overview',
    'edit behavior plugin settings',
    'create testcontent content',
    'edit any testcontent content',
  ]);

  // Enable plugins.
  $this
    ->drupalGet('admin/reports/paragraphs_collection/styles');
  $edit = [
    'styles[bold][enabled]' => TRUE,
    'styles[italic][enabled]' => TRUE,
    'styles[regular][enabled]' => FALSE,
    'styles[underline][enabled]' => FALSE,
  ];
  $this
    ->submitForm($edit, t('Save configuration'));

  // Create a paragraph type and enable behavior plugins.
  $this
    ->addParagraphsType('testplugin');
  $paragraph_type = \Drupal::configFactory()
    ->getEditable('paragraphs.paragraphs_type.testplugin');
  $paragraph_type
    ->set('behavior_plugins.style.enabled', TRUE);
  $paragraph_type
    ->set('behavior_plugins.style.groups.regular_test_group.default', '');
  $paragraph_type
    ->save();
  $this
    ->addFieldtoParagraphType('testplugin', 'field_text', 'text');
  $this
    ->setParagraphsWidgetSettings('testcontent', 'testparagraphfield', [
    'edit_mode' => 'closed',
    'closed_mode' => 'summary',
  ]);

  // Create a Paragraph in a node selecting one of the enabled plugins.
  $this
    ->drupalGet('node/add/testcontent');
  $this
    ->getSession()
    ->getPage()
    ->pressButton('Add testplugin');
  $this
    ->getSession()
    ->getPage()
    ->selectFieldOption('testparagraphfield[0][behavior_plugins][style][style_wrapper][styles][regular_test_group]', 'bold');
  $this
    ->assertSession()
    ->fieldExists('testparagraphfield[0][subform][field_text][0][value]');
  $edit = [
    'title[0][value]' => 'Example title',
    'testparagraphfield[0][subform][field_text][0][value]' => 'test',
  ];
  $this
    ->submitForm($edit, t('Save'));
  $this
    ->assertSession()
    ->pageTextContains('testcontent Example title has been created.');

  // Disable the selected plugin.
  $edit = [
    'styles[bold][enabled]' => FALSE,
  ];
  $this
    ->drupalGet('admin/reports/paragraphs_collection/styles');
  $this
    ->submitForm($edit, t('Save configuration'));

  // Edit the node and check if the summary is present.
  $node = $this
    ->getNodeByTitle('Example title');
  $this
    ->drupalGet('node/' . $node
    ->id() . '/edit');
  $this
    ->assertSession()
    ->statusCodeEquals(200);
  $this
    ->assertSession()
    ->responseContains('paragraphs-collapsed-description');
}