protected function StyleGridTest::assertGrid in Drupal 9
Same name and namespace in other branches
- 8 core/modules/views/tests/src/Kernel/Plugin/StyleGridTest.php \Drupal\Tests\views\Kernel\Plugin\StyleGridTest::assertGrid()
Generates a grid and asserts that it is displaying correctly.
Parameters
\Drupal\views\ViewExecutable $view: The executable to prepare.
string $alignment: The alignment of the grid to test.
int $columns: The number of columns in the grid to test.
1 call to StyleGridTest::assertGrid()
- StyleGridTest::testGrid in core/
modules/ views/ tests/ src/ Kernel/ Plugin/ StyleGridTest.php - Tests the grid style.
File
- core/
modules/ views/ tests/ src/ Kernel/ Plugin/ StyleGridTest.php, line 54
Class
- StyleGridTest
- Tests the grid style plugin.
Namespace
Drupal\Tests\views\Kernel\PluginCode
protected function assertGrid(ViewExecutable $view, $alignment, $columns) {
$view
->setDisplay('default');
$view
->initStyle();
$view
->initHandlers();
$view
->initQuery();
$view->style_plugin->options['alignment'] = $alignment;
$view->style_plugin->options['columns'] = $columns;
$this
->executeView($view);
$output = $view
->preview();
$output = \Drupal::service('renderer')
->renderRoot($output);
$this
->setRawContent($output);
if (!in_array($alignment, $this->alignmentsTested)) {
$result = $this
->xpath('//div[contains(@class, "views-view-grid") and contains(@class, :alignment) and contains(@class, :columns)]', [
':alignment' => $alignment,
':columns' => 'cols-' . $columns,
]);
$this
->assertGreaterThan(0, count($result), ucfirst($alignment) . " grid markup detected.");
$this->alignmentsTested[] = $alignment;
}
$width = '0';
switch ($columns) {
case 5:
$width = '20';
break;
case 4:
$width = '25';
break;
case 3:
$width = '33.3333';
break;
case 2:
$width = '50';
break;
case 1:
$width = '100';
break;
}
// Ensure last column exists.
$result = $this
->xpath('//div[contains(@class, "views-col") and contains(@class, :columns) and starts-with(@style, :width)]', [
':columns' => 'col-' . $columns,
':width' => 'width: ' . $width,
]);
$this
->assertGreaterThan(0, count($result), ucfirst($alignment) . " {$columns} column grid: last column exists and automatic width calculated correctly.");
// Ensure no extra columns were generated.
$result = $this
->xpath('//div[contains(@class, "views-col") and contains(@class, :columns)]', [
':columns' => 'col-' . ($columns + 1),
]);
$this
->assertEmpty($result, ucfirst($alignment) . " {$columns} column grid: no extraneous columns exist.");
// Ensure tokens are being replaced in custom row/column classes.
$result = $this
->xpath('//div[contains(@class, "views-col") and contains(@class, "name-John")]');
$this
->assertGreaterThan(0, count($result), ucfirst($alignment) . " {$columns} column grid: Token replacement verified in custom column classes.");
$result = $this
->xpath('//div[contains(@class, "views-row") and contains(@class, "age-25")]');
$this
->assertGreaterThan(0, count($result), ucfirst($alignment) . " {$columns} column grid: Token replacement verified in custom row classes.");
}