Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / web / core / modules / options / tests / src / Kernel / Views / OptionsListFilterTest.php
1 <?php
2
3 namespace Drupal\Tests\options\Kernel\Views;
4
5 use Drupal\views\Views;
6
7 /**
8  * Tests options list filter for views.
9  *
10  * @see \Drupal\field\Plugin\views\filter\ListField.
11  * @group views
12  */
13 class OptionsListFilterTest extends OptionsTestBase {
14
15   /**
16    * Views used by this test.
17    *
18    * @var array
19    */
20   public static $testViews = ['test_options_list_filter'];
21
22   /**
23    * Tests options list field filter.
24    */
25   public function testViewsTestOptionsListFilter() {
26     $view = Views::getView('test_options_list_filter');
27     $this->executeView($view);
28
29     $resultset = [
30       ['nid' => $this->nodes[0]->nid->value],
31       ['nid' => $this->nodes[1]->nid->value],
32     ];
33
34     $column_map = ['nid' => 'nid'];
35     $this->assertIdenticalResultset($view, $resultset, $column_map);
36   }
37
38   /**
39    * Tests options list field filter when grouped.
40    */
41   public function testViewsTestOptionsListGroupedFilter() {
42     $view = Views::getView('test_options_list_filter');
43
44     $filters = [
45       'field_test_list_string_value' => [
46         'id' => 'field_test_list_string_value',
47         'table' => 'field_data_field_test_list_string',
48         'field' => 'field_test_list_string_value',
49         'relationship' => 'none',
50         'group_type' => 'group',
51         'admin_label' => '',
52         'operator' => 'or',
53         'value' => [
54           'man' => 'man',
55           'woman' => 'woman',
56         ],
57         'group' => '1',
58         'exposed' => TRUE,
59         'expose' => [
60           'operator_id' => 'field_test_list_string_value_op',
61           'label' => 'list-text',
62           'description' => '',
63           'identifier' => 'field_test_list_string_value',
64         ],
65         'is_grouped' => TRUE,
66         'group_info' => [
67           'label' => 'list-text (field_list_text)',
68           'description' => '',
69           'identifier' => 'field_test_list_string_value',
70           'optional' => TRUE,
71           'widget' => 'radios',
72           'multiple' => TRUE,
73           'remember' => FALSE,
74           'default_group' => '1',
75           'group_items' => [
76             1 => [
77               'title' => 'First',
78               'operator' => 'or',
79               'value' => [
80                 $this->fieldValues[0] => $this->fieldValues[0],
81               ],
82             ],
83             2 => [
84               'title' => 'Second',
85               'operator' => 'or',
86               'value' => [
87                 $this->fieldValues[1] => $this->fieldValues[1],
88               ],
89             ],
90           ],
91         ],
92         'reduce_duplicates' => '',
93         'plugin_id' => 'list_field',
94       ],
95     ];
96     $view->setDisplay();
97     $view->displayHandlers->get('default')->overrideOption('filters', $filters);
98
99     $view->storage->save();
100
101     $this->executeView($view);
102
103     $resultset = [
104       ['nid' => $this->nodes[0]->nid->value],
105       ['nid' => $this->nodes[1]->nid->value],
106     ];
107
108     $column_map = ['nid' => 'nid'];
109     $this->assertIdenticalResultset($view, $resultset, $column_map);
110   }
111
112 }