'name', 'views_test_data_age' => 'age', ]; public function viewsData() { $data = parent::viewsData(); $data['views_test_data']['age']['filter']['id'] = 'in_operator'; return $data; } public function testFilterInOperatorSimple() { $view = Views::getView('test_view'); $view->setDisplay(); // Add a in_operator ordering. $view->displayHandlers->get('default')->overrideOption('filters', [ 'age' => [ 'id' => 'age', 'field' => 'age', 'table' => 'views_test_data', 'value' => [26, 30], 'operator' => 'in', ], ]); $this->executeView($view); $expected_result = [ [ 'name' => 'Paul', 'age' => 26, ], [ 'name' => 'Meredith', 'age' => 30, ], ]; $this->assertEqual(2, count($view->result)); $this->assertIdenticalResultset($view, $expected_result, $this->columnMap); $view->destroy(); $view->setDisplay(); // Add a in_operator ordering. $view->displayHandlers->get('default')->overrideOption('filters', [ 'age' => [ 'id' => 'age', 'field' => 'age', 'table' => 'views_test_data', 'value' => [26, 30], 'operator' => 'not in', ], ]); $this->executeView($view); $expected_result = [ [ 'name' => 'John', 'age' => 25, ], [ 'name' => 'George', 'age' => 27, ], [ 'name' => 'Ringo', 'age' => 28, ], ]; $this->assertEqual(3, count($view->result)); $this->assertIdenticalResultset($view, $expected_result, $this->columnMap); } public function testFilterInOperatorGroupedExposedSimple() { $filters = $this->getGroupedExposedFilters(); $view = Views::getView('test_view'); // Filter: Age, Operator: in, Value: 26, 30 $filters['age']['group_info']['default_group'] = 1; $view->setDisplay(); $view->displayHandlers->get('default')->overrideOption('filters', $filters); $this->executeView($view); $expected_result = [ [ 'name' => 'Paul', 'age' => 26, ], [ 'name' => 'Meredith', 'age' => 30, ], ]; $this->assertEqual(2, count($view->result)); $this->assertIdenticalResultset($view, $expected_result, $this->columnMap); } public function testFilterNotInOperatorGroupedExposedSimple() { $filters = $this->getGroupedExposedFilters(); $view = Views::getView('test_view'); // Filter: Age, Operator: in, Value: 26, 30 $filters['age']['group_info']['default_group'] = 2; $view->setDisplay(); $view->displayHandlers->get('default')->overrideOption('filters', $filters); $this->executeView($view); $expected_result = [ [ 'name' => 'John', 'age' => 25, ], [ 'name' => 'George', 'age' => 27, ], [ 'name' => 'Ringo', 'age' => 28, ], ]; $this->assertEqual(3, count($view->result)); $this->assertIdenticalResultset($view, $expected_result, $this->columnMap); } protected function getGroupedExposedFilters() { $filters = [ 'age' => [ 'id' => 'age', 'table' => 'views_test_data', 'field' => 'age', 'relationship' => 'none', 'exposed' => TRUE, 'expose' => [ 'operator' => 'age_op', 'label' => 'age', 'identifier' => 'age', ], 'is_grouped' => TRUE, 'group_info' => [ 'label' => 'age', 'identifier' => 'age', 'default_group' => 'All', 'group_items' => [ 1 => [ 'title' => 'Age is one of 26, 30', 'operator' => 'in', 'value' => [26, 30], ], 2 => [ 'title' => 'Age is not one of 26, 30', 'operator' => 'not in', 'value' => [26, 30], ], ], ], ], ]; return $filters; } }