3 namespace Drupal\Tests\views\Kernel\Handler;
5 use Drupal\Tests\views\Kernel\ViewsKernelTestBase;
6 use Drupal\views\Views;
9 * Tests the core Drupal\views\Plugin\views\filter\InOperator handler.
13 class FilterInOperatorTest extends ViewsKernelTestBase {
15 public static $modules = ['system'];
18 * Views used by this test.
22 public static $testViews = ['test_view'];
29 protected $columnMap = [
30 'views_test_data_name' => 'name',
31 'views_test_data_age' => 'age',
34 public function viewsData() {
35 $data = parent::viewsData();
36 $data['views_test_data']['age']['filter']['id'] = 'in_operator';
40 public function testFilterInOperatorSimple() {
41 $view = Views::getView('test_view');
44 // Add a in_operator ordering.
45 $view->displayHandlers->get('default')->overrideOption('filters', [
49 'table' => 'views_test_data',
55 $this->executeView($view);
68 $this->assertEqual(2, count($view->result));
69 $this->assertIdenticalResultset($view, $expected_result, $this->columnMap);
74 // Add a in_operator ordering.
75 $view->displayHandlers->get('default')->overrideOption('filters', [
79 'table' => 'views_test_data',
81 'operator' => 'not in',
85 $this->executeView($view);
102 $this->assertEqual(3, count($view->result));
103 $this->assertIdenticalResultset($view, $expected_result, $this->columnMap);
106 public function testFilterInOperatorGroupedExposedSimple() {
107 $filters = $this->getGroupedExposedFilters();
108 $view = Views::getView('test_view');
110 // Filter: Age, Operator: in, Value: 26, 30
111 $filters['age']['group_info']['default_group'] = 1;
113 $view->displayHandlers->get('default')->overrideOption('filters', $filters);
115 $this->executeView($view);
123 'name' => 'Meredith',
128 $this->assertEqual(2, count($view->result));
129 $this->assertIdenticalResultset($view, $expected_result, $this->columnMap);
132 public function testFilterNotInOperatorGroupedExposedSimple() {
133 $filters = $this->getGroupedExposedFilters();
134 $view = Views::getView('test_view');
136 // Filter: Age, Operator: in, Value: 26, 30
137 $filters['age']['group_info']['default_group'] = 2;
139 $view->displayHandlers->get('default')->overrideOption('filters', $filters);
141 $this->executeView($view);
158 $this->assertEqual(3, count($view->result));
159 $this->assertIdenticalResultset($view, $expected_result, $this->columnMap);
162 protected function getGroupedExposedFilters() {
166 'table' => 'views_test_data',
168 'relationship' => 'none',
171 'operator' => 'age_op',
173 'identifier' => 'age',
175 'is_grouped' => TRUE,
178 'identifier' => 'age',
179 'default_group' => 'All',
182 'title' => 'Age is one of 26, 30',
187 'title' => 'Age is not one of 26, 30',
188 'operator' => 'not in',