ds-8.x-3.9/tests/src/Functional/ExportablesTest.php

tests/src/Functional/ExportablesTest.php
<?php

namespace Drupal\Tests\ds\Functional;

use Drupal\Core\Entity\Entity\EntityViewDisplay;

/**
 * Tests for exportables in Display Suite.
 *
 * @group ds
 */
class ExportablesTest extends TestBase {

  /**
   * Enables the exportables module.
   */
  public function dsExportablesSetup() {
    /* @var $display EntityViewDisplay */
    $display = EntityViewDisplay::load('node.article.default');
    $display->delete();
    \Drupal::service('module_installer')->install(['ds_exportables_test']);
  }

  /**
   * Test layout and field settings configuration.
   */
  public function testDsExportablesLayoutFieldsettings() {
    $this->dsExportablesSetup();

    // Look for default custom field.
    $this->drupalGet('admin/structure/ds/fields');
    $this->assertSession()->pageTextContains('Exportable field');
    $this->drupalGet('admin/structure/types/manage/article/display');
    $this->assertSession()->pageTextContains('Exportable field');

    $settings = [
      'type' => 'article',
      'title' => 'Exportable',
    ];
    $node = $this->drupalCreateNode($settings);
    $this->drupalGet('node/' . $node->id());
    $this->assertSession()->responseContains('group-left');
    $this->assertSession()->responseContains('group-right');
    $this->assertSession()->responseNotContains('group-header');
    $this->assertSession()->responseNotContains('group-footer');
    $link = $this->xpath('//h3/a[text()=:text]', [
      ':text' => 'Exportable',
    ]);
    $this->assertEquals(count($link), 1, 'Default title with h3 found');
    $link = $this->xpath('//a[text()=:text]', [
      ':text' => 'Read more',
    ]);
    $this->assertEquals(count($link), 1, 'Default read more found');

    // Override default layout.
    $layout = [
      'ds_layout' => 'ds_2col_stacked',
    ];

    $assert = [
      'regions' => [
        'header' => '<td colspan="8">' . $this->t('Header') . '</td>',
        'left' => '<td colspan="8">' . $this->t('Left') . '</td>',
        'right' => '<td colspan="8">' . $this->t('Right') . '</td>',
        'footer' => '<td colspan="8">' . $this->t('Footer') . '</td>',
      ],
    ];

    $fields = [
      'fields[node_post_date][region]' => 'header',
      'fields[node_author][region]' => 'left',
      'fields[node_link][region]' => 'left',
      'fields[body][region]' => 'right',
    ];

    $this->dsSelectLayout($layout, $assert);
    $this->dsConfigureUi($fields);

    $this->drupalGet('node/' . $node->id());
    $this->assertSession()->responseContains('group-left');
    $this->assertSession()->responseContains('group-right');
    $this->assertSession()->responseContains('group-header');
    $this->assertSession()->responseContains('group-footer');
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc