You are here

TwigRenderTest.php in Display Suite 8.4

Same filename and directory in other branches
  1. 8.3 tests/src/Functional/TwigRenderTest.php

File

tests/src/Functional/TwigRenderTest.php
View source
<?php

namespace Drupal\Tests\ds\Functional;


/**
 * Tests for twig specific functionality.
 *
 * @group ds
 */
class TwigRenderTest extends TestBase {

  /**
   * Tests targeting the field in a twig template.
   */
  public function testFieldNameTargeting() {

    // Create a node.
    $settings = [
      'type' => 'article',
      'promote' => 1,
    ];

    /* @var \Drupal\node\NodeInterface $node */
    $node = $this
      ->drupalCreateNode($settings);

    // Configure layout.
    $layout = [
      'ds_layout' => 'dstest_1col_title',
    ];
    $layout_assert = [
      'regions' => [
        'ds_content' => '<td colspan="8">' . t('Content') . '</td>',
      ],
    ];
    $this
      ->dsSelectLayout($layout, $layout_assert);
    $fields = [
      'fields[node_title][region]' => 'ds_content',
    ];
    $this
      ->dsConfigureUi($fields);
    $this
      ->drupalGet('node/' . $node
      ->id());

    // Assert that the title is visible.
    $elements = $this
      ->xpath('//div[@class="field field--name-node-title field--type-ds field--label-hidden field__item"]/h2');
    $this
      ->assertEquals(count($elements), 1);
    $this
      ->assertSession()
      ->pageTextContains($node
      ->getTitle());
    $edit = [
      'fs3[use_field_names]' => FALSE,
    ];
    $this
      ->drupalGet('admin/structure/ds/settings');
    $this
      ->submitForm($edit, 'Save configuration');
    $this
      ->drupalGet('node/' . $node
      ->id());

    // Assert that the title is not visible anymore.
    $elements = $this
      ->xpath('//div[@class="field field--name-node-title field--type-ds field--label-hidden field__item"]/h2');
    $this
      ->assertEquals(count($elements), 0);
  }

}

Classes

Namesort descending Description
TwigRenderTest Tests for twig specific functionality.