Same name and namespace in other branches
  1. 8.9.x core/modules/views/tests/src/Kernel/Plugin/StyleFieldsTest.php \Drupal\Tests\views\Kernel\Plugin\StyleFieldsTest
  2. 9 core/modules/views/tests/src/Kernel/Plugin/StyleFieldsTest.php \Drupal\Tests\views\Kernel\Plugin\StyleFieldsTest

Tests fields style functionality.

@group views

Hierarchy

Expanded class hierarchy of StyleFieldsTest

See also

\Drupal\views\Plugin\views\row\Fields.

File

core/modules/views/tests/src/Kernel/Plugin/StyleFieldsTest.php, line 17

Namespace

Drupal\Tests\views\Kernel\Plugin
View source
class StyleFieldsTest extends ViewsKernelTestBase {

  /**
   * {@inheritdoc}
   */
  public static $testViews = [
    'test_view',
  ];

  /**
   * Tests inline fields and separator.
   */
  public function testInlineFields() {
    $renderer = $this->container
      ->get('renderer');
    $view = Views::getView('test_view');
    $view
      ->setDisplay();

    // Test using an HTML separator.
    $row = $view->display_handler
      ->getOption('row');
    $row['options'] = [
      'inline' => [
        'age' => 'age',
        'id' => 'id',
        'name' => 'name',
      ],
      'separator' => '<br />',
    ];
    $view->display_handler
      ->setOption('row', $row);
    $view
      ->initDisplay();
    $view
      ->initStyle();
    $output = $view
      ->preview();
    $output = $renderer
      ->renderRoot($output);
    $this
      ->assertStringContainsString('<div class="views-row"><span class="views-field views-field-age"><span class="field-content">25</span></span><br /><span class="views-field views-field-id"><span class="field-content">1</span></span><br /><span class="views-field views-field-name"><span class="field-content">John</span></span></div>', (string) $output);
    $view
      ->destroy();

    // Check that unsafe separators are stripped.
    $view
      ->setDisplay();
    $row = $view->display_handler
      ->getOption('row');
    $row['options'] = [
      'inline' => [
        'age' => 'age',
        'id' => 'id',
        'name' => 'name',
      ],
      'separator' => '<script>alert("escape me!")</script>',
    ];
    $view->display_handler
      ->setOption('row', $row);
    $view
      ->initDisplay();
    $view
      ->initStyle();
    $output = $view
      ->preview();
    $output = $renderer
      ->renderRoot($output);
    $this
      ->assertStringNotContainsString('<script>', (string) $output);
    $this
      ->assertStringContainsString('alert("escape me!")', (string) $output);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
StyleFieldsTest::$testViews public static property Views to be enabled. Overrides ViewsKernelTestBase::$testViews
StyleFieldsTest::testInlineFields public function Tests inline fields and separator.
ViewResultAssertionTrait::assertIdenticalResultset protected function Verifies that a result set returned by a View matches expected values.
ViewResultAssertionTrait::assertIdenticalResultsetHelper protected function Performs View result assertions.
ViewResultAssertionTrait::assertNotIdenticalResultset protected function Verifies that a result set returned by a View differs from certain values.
ViewsKernelTestBase::$modules protected static property 96
ViewsKernelTestBase::dataSet protected function Returns a very simple test dataset. 8
ViewsKernelTestBase::executeView protected function Executes a view.
ViewsKernelTestBase::orderResultSet protected function Orders a nested array containing a result set based on a given column.
ViewsKernelTestBase::schemaDefinition protected function Returns the schema definition. 6
ViewsKernelTestBase::setUp protected function 68
ViewsKernelTestBase::setUpFixtures protected function Sets up the configuration and schema of views and views_test_data modules. 7
ViewsKernelTestBase::viewsData protected function Returns the views data definition. 22