function StyleMappingTest::mappedOutputHelper

Same name in other branches
  1. 8.9.x core/modules/views/tests/src/Kernel/Plugin/StyleMappingTest.php \Drupal\Tests\views\Kernel\Plugin\StyleMappingTest::mappedOutputHelper()
  2. 10 core/modules/views/tests/src/Kernel/Plugin/StyleMappingTest.php \Drupal\Tests\views\Kernel\Plugin\StyleMappingTest::mappedOutputHelper()
  3. 11.x core/modules/views/tests/src/Kernel/Plugin/StyleMappingTest.php \Drupal\Tests\views\Kernel\Plugin\StyleMappingTest::mappedOutputHelper()

Tests the mapping of fields.

Parameters

\Drupal\views\ViewExecutable $view: The view to test.

Return value

string The view rendered as HTML.

1 call to StyleMappingTest::mappedOutputHelper()
StyleMappingTest::testMappedOutput in core/modules/views/tests/src/Kernel/Plugin/StyleMappingTest.php
Verifies that the fields were mapped correctly.

File

core/modules/views/tests/src/Kernel/Plugin/StyleMappingTest.php, line 49

Class

StyleMappingTest
Tests mapping style functionality.

Namespace

Drupal\Tests\views\Kernel\Plugin

Code

protected function mappedOutputHelper(ViewExecutable $view) {
    $output = $view->preview();
    $rendered_output = \Drupal::service('renderer')->renderRoot($output);
    $this->storeViewPreview($rendered_output);
    $rows = $this->elements->body->div->div;
    $data_set = $this->dataSet();
    $count = 0;
    foreach ($rows as $row) {
        $attributes = $row->attributes();
        $class = (string) $attributes['class'][0];
        $this->assertStringContainsString('views-row-mapping-test', $class, 'Make sure that each row has the correct CSS class.');
        foreach ($row->div as $field) {
            // Split up the field-level class, the first part is the mapping name
            // and the second is the field ID.
            $field_attributes = $field->attributes();
            $name = strtok((string) $field_attributes['class'][0], '-');
            $field_id = strtok('-');
            // The expected result is the mapping name and the field value,
            // separated by ':'.
            $expected_result = $name . ':' . $data_set[$count][$field_id];
            $actual_result = (string) $field;
            $this->assertSame($expected_result, $actual_result, new FormattableMarkup('The fields were mapped successfully: %name => %field_id', [
                '%name' => $name,
                '%field_id' => $field_id,
            ]));
        }
        $count++;
    }
    return $rendered_output;
}

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