You are here

public function ViewsPreprocessTest::testCssClassCleaning in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/views/tests/src/Kernel/ViewsPreprocessTest.php \Drupal\Tests\views\Kernel\ViewsPreprocessTest::testCssClassCleaning()

Tests css classes on displays are cleaned correctly.

File

core/modules/views/tests/src/Kernel/ViewsPreprocessTest.php, line 37

Class

ViewsPreprocessTest
Tests the preprocessing functionality in views.theme.inc.

Namespace

Drupal\Tests\views\Kernel

Code

public function testCssClassCleaning() {
  \Drupal::service('theme_installer')
    ->install([
    'test_theme',
  ]);
  $this
    ->config('system.theme')
    ->set('default', 'test_theme')
    ->save();
  $entity = EntityTest::create();
  $entity
    ->save();

  /** @var \Drupal\Core\Render\RendererInterface $renderer */
  $renderer = \Drupal::service('renderer');
  $view = Views::getview('test_preprocess');
  $build = $view
    ->buildRenderable();
  $renderer
    ->renderRoot($build);
  $this
    ->assertStringContainsString('class="entity-test--default entity-test__default', (string) $build['#markup']);
  $view
    ->destroy();
  $view
    ->setDisplay('display_2');
  $build = $view
    ->buildRenderable();
  $renderer
    ->renderRoot($build);
  $markup = (string) $build['#markup'];
  $this
    ->assertStringContainsString('css_class: entity-test--default and-another-class entity-test__default', $markup);
  $this
    ->assertStringContainsString('attributes: class="entity-test--default and-another-class entity-test__default', $markup);
}