public function DisplayPageTest::testEmptyRow in Drupal 9
Same name and namespace in other branches
- 8 core/modules/views/tests/src/Kernel/Plugin/DisplayPageTest.php \Drupal\Tests\views\Kernel\Plugin\DisplayPageTest::testEmptyRow()
Tests the templates with empty rows.
File
- core/
modules/ views/ tests/ src/ Kernel/ Plugin/ DisplayPageTest.php, line 227
Class
- DisplayPageTest
- Tests the page display plugin.
Namespace
Drupal\Tests\views\Kernel\PluginCode
public function testEmptyRow() {
$view = Views::getView('test_page_display');
$view
->initDisplay();
$view
->newDisplay('page', 'Page', 'empty_row');
$view
->save();
$styles = [
'default' => '//div[@class="views-row"]',
'grid' => '//div[contains(@class, "views-col")]',
'html_list' => '//div[@class="item-list"]//li',
];
$themes = [
'bartik',
'classy',
'seven',
'stable',
'stark',
];
foreach ($themes as $theme) {
\Drupal::service('theme_installer')
->install([
$theme,
]);
\Drupal::theme()
->setActiveTheme(\Drupal::service('theme.initialization')
->initTheme($theme));
foreach ($styles as $type => $xpath) {
$view = Views::getView('test_page_display');
$view->storage
->invalidateCaches();
$view
->initDisplay();
$view
->setDisplay('empty_row');
$view->displayHandlers
->get('empty_row')->default_display->options['style']['type'] = $type;
$view
->initStyle();
$this
->executeView($view);
$output = $view
->preview();
$output = \Drupal::service('renderer')
->renderRoot($output);
$this
->setRawContent($output);
$this
->assertCount(5, $this
->xpath("{$xpath}[not(text()) and not(node())]"), "Empty rows in theme '{$theme}', type '{$type}'.");
}
}
}