summaryrefslogtreecommitdiff
path: root/sites/all/modules/views/tests/handlers/views_handler_filter_equality.test
diff options
context:
space:
mode:
Diffstat (limited to 'sites/all/modules/views/tests/handlers/views_handler_filter_equality.test')
-rw-r--r--sites/all/modules/views/tests/handlers/views_handler_filter_equality.test173
1 files changed, 173 insertions, 0 deletions
diff --git a/sites/all/modules/views/tests/handlers/views_handler_filter_equality.test b/sites/all/modules/views/tests/handlers/views_handler_filter_equality.test
new file mode 100644
index 000000000..5bb48c8df
--- /dev/null
+++ b/sites/all/modules/views/tests/handlers/views_handler_filter_equality.test
@@ -0,0 +1,173 @@
+<?php
+
+/**
+ * @file
+ * Definition of ViewsHandlerFilterEqualityTest.
+ */
+
+/**
+ * Tests the core views_handler_filter_equality handler.
+ */
+class ViewsHandlerFilterEqualityTest extends ViewsSqlTest {
+ public static function getInfo() {
+ return array(
+ 'name' => 'Filter: Equality',
+ 'description' => 'Test the core views_handler_filter_equality handler.',
+ 'group' => 'Views Handlers',
+ );
+ }
+
+ function setUp() {
+ parent::setUp();
+ $this->column_map = array(
+ 'views_test_name' => 'name',
+ );
+ }
+
+ function viewsData() {
+ $data = parent::viewsData();
+ $data['views_test']['name']['filter']['handler'] = 'views_handler_filter_equality';
+
+ return $data;
+ }
+
+ function testEqual() {
+ $view = $this->getBasicView();
+
+ // Change the filtering
+ $view->display['default']->handler->override_option('filters', array(
+ 'name' => array(
+ 'id' => 'name',
+ 'table' => 'views_test',
+ 'field' => 'name',
+ 'relationship' => 'none',
+ 'operator' => '=',
+ 'value' => array('value' => 'Ringo'),
+ ),
+ ));
+
+ $this->executeView($view);
+ $resultset = array(
+ array(
+ 'name' => 'Ringo',
+ ),
+ );
+ $this->assertIdenticalResultset($view, $resultset, $this->column_map);
+ }
+
+ public function testEqualGroupedExposed() {
+ $filters = $this->getGroupedExposedFilters();
+ $view = $this->getBasicPageView();
+
+ // Filter: Name, Operator: =, Value: Ringo
+ $filters['name']['group_info']['default_group'] = 1;
+ $view->set_display('page_1');
+ $view->display['page_1']->handler->override_option('filters', $filters);
+
+ $this->executeView($view);
+ $resultset = array(
+ array(
+ 'name' => 'Ringo',
+ ),
+ );
+ $this->assertIdenticalResultset($view, $resultset, $this->column_map);
+ }
+
+ function testNotEqual() {
+ $view = $this->getBasicView();
+
+ // Change the filtering
+ $view->display['default']->handler->override_option('filters', array(
+ 'name' => array(
+ 'id' => 'name',
+ 'table' => 'views_test',
+ 'field' => 'name',
+ 'relationship' => 'none',
+ 'operator' => '!=',
+ 'value' => array('value' => 'Ringo'),
+ ),
+ ));
+
+ $this->executeView($view);
+ $resultset = array(
+ array(
+ 'name' => 'John',
+ ),
+ array(
+ 'name' => 'George',
+ ),
+ array(
+ 'name' => 'Paul',
+ ),
+ array(
+ 'name' => 'Meredith',
+ ),
+ );
+ $this->assertIdenticalResultset($view, $resultset, $this->column_map);
+ }
+
+ public function testEqualGroupedNotExposed() {
+ $filters = $this->getGroupedExposedFilters();
+ $view = $this->getBasicPageView();
+
+ // Filter: Name, Operator: !=, Value: Ringo
+ $filters['name']['group_info']['default_group'] = 2;
+ $view->set_display('page_1');
+ $view->display['page_1']->handler->override_option('filters', $filters);
+
+ $this->executeView($view);
+ $resultset = array(
+ array(
+ 'name' => 'John',
+ ),
+ array(
+ 'name' => 'George',
+ ),
+ array(
+ 'name' => 'Paul',
+ ),
+ array(
+ 'name' => 'Meredith',
+ ),
+ );
+ $this->assertIdenticalResultset($view, $resultset, $this->column_map);
+ }
+
+
+ protected function getGroupedExposedFilters() {
+ $filters = array(
+ 'name' => array(
+ 'id' => 'name',
+ 'table' => 'views_test',
+ 'field' => 'name',
+ 'relationship' => 'none',
+ 'exposed' => TRUE,
+ 'expose' => array(
+ 'operator' => 'name_op',
+ 'label' => 'name',
+ 'identifier' => 'name',
+ ),
+ 'is_grouped' => TRUE,
+ 'group_info' => array(
+ 'label' => 'name',
+ 'identifier' => 'name',
+ 'default_group' => 'All',
+ 'group_items' => array(
+ 1 => array(
+ 'title' => 'Name is equal to Ringo',
+ 'operator' => '=',
+ 'value' => array('value' => 'Ringo'),
+ ),
+ 2 => array(
+ 'title' => 'Name is not equal to Ringo',
+ 'operator' => '!=',
+ 'value' => array('value' => 'Ringo'),
+ ),
+ ),
+ ),
+ ),
+ );
+ return $filters;
+ }
+
+}