views_handler_filter_equality.test

Definition of ViewsHandlerFilterEqualityTest.

File

tests/handlers/views_handler_filter_equality.test
View source
  1. <?php
  2. /**
  3. * @file
  4. * Definition of ViewsHandlerFilterEqualityTest.
  5. */
  6. /**
  7. * Tests the core views_handler_filter_equality handler.
  8. */
  9. class ViewsHandlerFilterEqualityTest extends ViewsSqlTest {
  10. public static function getInfo() {
  11. return array(
  12. 'name' => 'Filter: Equality',
  13. 'description' => 'Test the core views_handler_filter_equality handler.',
  14. 'group' => 'Views Handlers',
  15. );
  16. }
  17. function setUp() {
  18. parent::setUp();
  19. $this->column_map = array(
  20. 'views_test_name' => 'name',
  21. );
  22. }
  23. function viewsData() {
  24. $data = parent::viewsData();
  25. $data['views_test']['name']['filter']['handler'] = 'views_handler_filter_equality';
  26. return $data;
  27. }
  28. function testEqual() {
  29. $view = $this->getBasicView();
  30. // Change the filtering
  31. $view->display['default']->handler->override_option('filters', array(
  32. 'name' => array(
  33. 'id' => 'name',
  34. 'table' => 'views_test',
  35. 'field' => 'name',
  36. 'relationship' => 'none',
  37. 'operator' => '=',
  38. 'value' => array('value' => 'Ringo'),
  39. ),
  40. ));
  41. $this->executeView($view);
  42. $resultset = array(
  43. array(
  44. 'name' => 'Ringo',
  45. ),
  46. );
  47. $this->assertIdenticalResultset($view, $resultset, $this->column_map);
  48. }
  49. public function testEqualGroupedExposed() {
  50. $filters = $this->getGroupedExposedFilters();
  51. $view = $this->getBasicPageView();
  52. // Filter: Name, Operator: =, Value: Ringo
  53. $filters['name']['group_info']['default_group'] = 1;
  54. $view->set_display('page_1');
  55. $view->display['page_1']->handler->override_option('filters', $filters);
  56. $this->executeView($view);
  57. $resultset = array(
  58. array(
  59. 'name' => 'Ringo',
  60. ),
  61. );
  62. $this->assertIdenticalResultset($view, $resultset, $this->column_map);
  63. }
  64. function testNotEqual() {
  65. $view = $this->getBasicView();
  66. // Change the filtering
  67. $view->display['default']->handler->override_option('filters', array(
  68. 'name' => array(
  69. 'id' => 'name',
  70. 'table' => 'views_test',
  71. 'field' => 'name',
  72. 'relationship' => 'none',
  73. 'operator' => '!=',
  74. 'value' => array('value' => 'Ringo'),
  75. ),
  76. ));
  77. $this->executeView($view);
  78. $resultset = array(
  79. array(
  80. 'name' => 'John',
  81. ),
  82. array(
  83. 'name' => 'George',
  84. ),
  85. array(
  86. 'name' => 'Paul',
  87. ),
  88. array(
  89. 'name' => 'Meredith',
  90. ),
  91. );
  92. $this->assertIdenticalResultset($view, $resultset, $this->column_map);
  93. }
  94. public function testEqualGroupedNotExposed() {
  95. $filters = $this->getGroupedExposedFilters();
  96. $view = $this->getBasicPageView();
  97. // Filter: Name, Operator: !=, Value: Ringo
  98. $filters['name']['group_info']['default_group'] = 2;
  99. $view->set_display('page_1');
  100. $view->display['page_1']->handler->override_option('filters', $filters);
  101. $this->executeView($view);
  102. $resultset = array(
  103. array(
  104. 'name' => 'John',
  105. ),
  106. array(
  107. 'name' => 'George',
  108. ),
  109. array(
  110. 'name' => 'Paul',
  111. ),
  112. array(
  113. 'name' => 'Meredith',
  114. ),
  115. );
  116. $this->assertIdenticalResultset($view, $resultset, $this->column_map);
  117. }
  118. protected function getGroupedExposedFilters() {
  119. $filters = array(
  120. 'name' => array(
  121. 'id' => 'name',
  122. 'table' => 'views_test',
  123. 'field' => 'name',
  124. 'relationship' => 'none',
  125. 'exposed' => TRUE,
  126. 'expose' => array(
  127. 'operator' => 'name_op',
  128. 'label' => 'name',
  129. 'identifier' => 'name',
  130. ),
  131. 'is_grouped' => TRUE,
  132. 'group_info' => array(
  133. 'label' => 'name',
  134. 'identifier' => 'name',
  135. 'default_group' => 'All',
  136. 'group_items' => array(
  137. 1 => array(
  138. 'title' => 'Name is equal to Ringo',
  139. 'operator' => '=',
  140. 'value' => array('value' => 'Ringo'),
  141. ),
  142. 2 => array(
  143. 'title' => 'Name is not equal to Ringo',
  144. 'operator' => '!=',
  145. 'value' => array('value' => 'Ringo'),
  146. ),
  147. ),
  148. ),
  149. ),
  150. );
  151. return $filters;
  152. }
  153. }