
| Current Path : /var/www/html/dataninja.cn/core/modules/views/tests/src/Kernel/Plugin/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/html/dataninja.cn/core/modules/views/tests/src/Kernel/Plugin/DisplayExtenderTest.php |
<?php
namespace Drupal\Tests\views\Kernel\Plugin;
use Drupal\Tests\views\Kernel\ViewsKernelTestBase;
use Drupal\views_test_data\Plugin\views\display_extender\DisplayExtenderTest as DisplayExtenderTestData;
use Drupal\views\Views;
/**
* Tests the display extender plugins.
*
* @group views
* @see \Drupal\views_test_data\Plugin\views\display_extender\DisplayExtenderTest
*/
class DisplayExtenderTest extends ViewsKernelTestBase {
/**
* Views used by this test.
*
* @var array
*/
public static $testViews = ['test_view'];
/**
* Test display extenders.
*/
public function testDisplayExtenders() {
$this->config('views.settings')->set('display_extenders', ['display_extender_test'])->save();
$this->assertEqual(count(Views::getEnabledDisplayExtenders()), 1, 'Make sure that there is only one enabled display extender.');
$view = Views::getView('test_view');
$view->initDisplay();
$this->assertEqual(count($view->display_handler->getExtenders()), 1, 'Make sure that only one extender is initialized.');
$display_extender = $view->display_handler->getExtenders()['display_extender_test'];
$this->assertTrue($display_extender instanceof DisplayExtenderTestData, 'Make sure the right class got initialized.');
$view->preExecute();
$this->assertTrue($display_extender->testState['preExecute'], 'Make sure the display extender was able to react on preExecute.');
$view->execute();
$this->assertTrue($display_extender->testState['query'], 'Make sure the display extender was able to react on query.');
}
/**
* Test display extenders validation.
*/
public function testDisplayExtendersValidate() {
$this->config('views.settings')->set('display_extenders', ['display_extender_test_3'])->save();
$view = Views::getView('test_view');
$errors = $view->validate();
foreach ($view->displayHandlers as $id => $display) {
$this->assertTrue(isset($errors[$id]) && in_array('Display extender test error.', $errors[$id]), format_string('Error message found for @id display', ['@id' => $id]));
}
}
}