function ViewsPreprocessTest::testCssClassCleaning

Same name and namespace in other branches
  1. 9 core/modules/views/tests/src/Kernel/ViewsPreprocessTest.php \Drupal\Tests\views\Kernel\ViewsPreprocessTest::testCssClassCleaning()
  2. 8.9.x core/modules/views/tests/src/Kernel/ViewsPreprocessTest.php \Drupal\Tests\views\Kernel\ViewsPreprocessTest::testCssClassCleaning()
  3. 11.x 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 39

Class

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

Namespace

Drupal\Tests\views\Kernel

Code

public function testCssClassCleaning() : void {
  \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);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.