
| Current Path : /var/www/html/pallets_old/pallets/web/core/modules/views/tests/src/Unit/ |
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/pallets_old/pallets/web/core/modules/views/tests/src/Unit/ViewsDataHelperTest.php |
<?php
namespace Drupal\Tests\views\Unit;
use Drupal\Tests\UnitTestCase;
use Drupal\views\ViewsDataHelper;
use Drupal\views\Tests\ViewTestData;
/**
* @coversDefaultClass \Drupal\views\ViewsDataHelper
* @group views
*/
class ViewsDataHelperTest extends UnitTestCase {
/**
* Returns the views data definition.
*
* @return array
*/
protected function viewsData() {
$data = ViewTestData::viewsData();
// Tweak the views data to have a base for testing
// \Drupal\views\ViewsDataHelper::fetchFields().
unset($data['views_test_data']['id']['field']);
unset($data['views_test_data']['name']['argument']);
unset($data['views_test_data']['age']['filter']);
unset($data['views_test_data']['job']['sort']);
$data['views_test_data']['created']['area']['id'] = 'text';
$data['views_test_data']['age']['area']['id'] = 'text';
$data['views_test_data']['age']['area']['sub_type'] = 'header';
$data['views_test_data']['job']['area']['id'] = 'text';
$data['views_test_data']['job']['area']['sub_type'] = ['header', 'footer'];
return $data;
}
/**
* Tests fetchFields.
*/
public function testFetchFields() {
$views_data = $this->getMockBuilder('Drupal\views\ViewsData')
->disableOriginalConstructor()
->getMock();
$views_data->expects($this->once())
->method('getAll')
->will($this->returnValue($this->viewsData()));
$data_helper = new ViewsDataHelper($views_data);
$expected = [
'field' => [
'age',
'created',
'job',
'name',
'status',
],
'argument' => [
'age',
'created',
'id',
'job',
],
'filter' => [
'created',
'id',
'job',
'name',
'status',
],
'sort' => [
'age',
'created',
'id',
'name',
'status',
],
'area' => [
'age',
'created',
'job',
],
'header' => [
'age',
'created',
'job',
],
'footer' => [
'age',
'created',
'job',
],
];
$handler_types = ['field', 'argument', 'filter', 'sort', 'area'];
foreach ($handler_types as $handler_type) {
$fields = $data_helper->fetchFields('views_test_data', $handler_type);
$expected_keys = $expected[$handler_type];
array_walk($expected_keys, function (&$item) {
$item = "views_test_data.$item";
});
$this->assertEquals($expected_keys, array_keys($fields), "Handlers of type $handler_type are not listed as expected");
}
// Check for subtype filtering, so header and footer.
foreach (['header', 'footer'] as $sub_type) {
$fields = $data_helper->fetchFields('views_test_data', 'area', FALSE, $sub_type);
$expected_keys = $expected[$sub_type];
array_walk($expected_keys, function (&$item) {
$item = "views_test_data.$item";
});
$this->assertEquals($expected_keys, array_keys($fields), "Sub_type $sub_type is not filtered as expected.");
}
}
}