Mercurial > hg > isophonics-drupal-site
comparison core/modules/views/tests/src/Unit/ViewsDataHelperTest.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 | |
3 namespace Drupal\Tests\views\Unit; | |
4 | |
5 use Drupal\Tests\UnitTestCase; | |
6 use Drupal\views\ViewsDataHelper; | |
7 use Drupal\views\Tests\ViewTestData; | |
8 | |
9 /** | |
10 * @coversDefaultClass \Drupal\views\ViewsDataHelper | |
11 * @group views | |
12 */ | |
13 class ViewsDataHelperTest extends UnitTestCase { | |
14 | |
15 /** | |
16 * Returns the views data definition. | |
17 * | |
18 * @return array | |
19 */ | |
20 protected function viewsData() { | |
21 $data = ViewTestData::viewsData(); | |
22 | |
23 // Tweak the views data to have a base for testing | |
24 // \Drupal\views\ViewsDataHelper::fetchFields(). | |
25 unset($data['views_test_data']['id']['field']); | |
26 unset($data['views_test_data']['name']['argument']); | |
27 unset($data['views_test_data']['age']['filter']); | |
28 unset($data['views_test_data']['job']['sort']); | |
29 $data['views_test_data']['created']['area']['id'] = 'text'; | |
30 $data['views_test_data']['age']['area']['id'] = 'text'; | |
31 $data['views_test_data']['age']['area']['sub_type'] = 'header'; | |
32 $data['views_test_data']['job']['area']['id'] = 'text'; | |
33 $data['views_test_data']['job']['area']['sub_type'] = ['header', 'footer']; | |
34 | |
35 return $data; | |
36 } | |
37 | |
38 /** | |
39 * Tests fetchFields. | |
40 */ | |
41 public function testFetchFields() { | |
42 $views_data = $this->getMockBuilder('Drupal\views\ViewsData') | |
43 ->disableOriginalConstructor() | |
44 ->getMock(); | |
45 $views_data->expects($this->once()) | |
46 ->method('get') | |
47 ->will($this->returnValue($this->viewsData())); | |
48 | |
49 $data_helper = new ViewsDataHelper($views_data); | |
50 | |
51 $expected = [ | |
52 'field' => [ | |
53 'age', | |
54 'created', | |
55 'job', | |
56 'name', | |
57 'status', | |
58 ], | |
59 'argument' => [ | |
60 'age', | |
61 'created', | |
62 'id', | |
63 'job', | |
64 ], | |
65 'filter' => [ | |
66 'created', | |
67 'id', | |
68 'job', | |
69 'name', | |
70 'status', | |
71 ], | |
72 'sort' => [ | |
73 'age', | |
74 'created', | |
75 'id', | |
76 'name', | |
77 'status', | |
78 ], | |
79 'area' => [ | |
80 'age', | |
81 'created', | |
82 'job', | |
83 ], | |
84 'header' => [ | |
85 'age', | |
86 'created', | |
87 'job', | |
88 ], | |
89 'footer' => [ | |
90 'age', | |
91 'created', | |
92 'job', | |
93 ], | |
94 ]; | |
95 | |
96 $handler_types = ['field', 'argument', 'filter', 'sort', 'area']; | |
97 foreach ($handler_types as $handler_type) { | |
98 $fields = $data_helper->fetchFields('views_test_data', $handler_type); | |
99 $expected_keys = $expected[$handler_type]; | |
100 array_walk($expected_keys, function (&$item) { | |
101 $item = "views_test_data.$item"; | |
102 }); | |
103 $this->assertEquals($expected_keys, array_keys($fields), "Handlers of type $handler_type are not listed as expected"); | |
104 } | |
105 | |
106 // Check for subtype filtering, so header and footer. | |
107 foreach (['header', 'footer'] as $sub_type) { | |
108 $fields = $data_helper->fetchFields('views_test_data', 'area', FALSE, $sub_type); | |
109 | |
110 $expected_keys = $expected[$sub_type]; | |
111 array_walk($expected_keys, function (&$item) { | |
112 $item = "views_test_data.$item"; | |
113 }); | |
114 $this->assertEquals($expected_keys, array_keys($fields), "Sub_type $sub_type is not filtered as expected."); | |
115 } | |
116 } | |
117 | |
118 } |