views_plugin_display.test 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. <?php
  2. /**
  3. * @file
  4. * Definition of ViewsPluginDisplayTestCase.
  5. */
  6. /**
  7. *
  8. */
  9. class ViewsPluginDisplayTestCase extends ViewsSqlTest {
  10. public static function getInfo() {
  11. return array(
  12. 'name' => 'Display plugin',
  13. 'description' => 'Tests the basic display plugin.',
  14. 'group' => 'Views Plugins',
  15. );
  16. }
  17. /**
  18. * Tests the overriding of filter_groups.
  19. */
  20. function testFilterGroupsOverriding() {
  21. $view = $this->viewFilterGroupsUpdating();
  22. $view->init_display();
  23. // mark is as overridden, yes FALSE, means overridden.
  24. $view->display['page']->handler->set_override('filter_groups', FALSE);
  25. $this->assertFalse($view->display['page']->handler->is_defaulted('filter_groups'), "Take sure that 'filter_groups' is marked as overridden.");
  26. $this->assertFalse($view->display['page']->handler->is_defaulted('filters'), "Take sure that 'filters'' is marked as overridden.");
  27. }
  28. /**
  29. * Returns a test view for testFilterGroupsOverriding.
  30. *
  31. * @see testFilterGroupsOverriding
  32. * @return view
  33. */
  34. function viewFilterGroupsOverriding() {
  35. $view = new view();
  36. $view->name = 'test_filter_group_override';
  37. $view->description = '';
  38. $view->tag = 'default';
  39. $view->base_table = 'node';
  40. $view->human_name = 'test_filter_group_override';
  41. $view->core = 7;
  42. $view->api_version = '3.0';
  43. $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
  44. /* Display: Master */
  45. $handler = $view->new_display('default', 'Master', 'default');
  46. $handler->display->display_options['access']['type'] = 'perm';
  47. $handler->display->display_options['cache']['type'] = 'none';
  48. $handler->display->display_options['query']['type'] = 'views_query';
  49. $handler->display->display_options['exposed_form']['type'] = 'basic';
  50. $handler->display->display_options['pager']['type'] = 'full';
  51. $handler->display->display_options['style_plugin'] = 'default';
  52. $handler->display->display_options['row_plugin'] = 'fields';
  53. /* Field: Content: Title */
  54. $handler->display->display_options['fields']['title']['id'] = 'title';
  55. $handler->display->display_options['fields']['title']['table'] = 'node';
  56. $handler->display->display_options['fields']['title']['field'] = 'title';
  57. $handler->display->display_options['fields']['title']['label'] = '';
  58. $handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
  59. $handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
  60. /* Filter criterion: Content: Published */
  61. $handler->display->display_options['filters']['status']['id'] = 'status';
  62. $handler->display->display_options['filters']['status']['table'] = 'node';
  63. $handler->display->display_options['filters']['status']['field'] = 'status';
  64. $handler->display->display_options['filters']['status']['value'] = 1;
  65. $handler->display->display_options['filters']['status']['group'] = 1;
  66. $handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
  67. /* Display: Page */
  68. $handler = $view->new_display('page', 'Page', 'page_1');
  69. $handler->display->display_options['path'] = 'test';
  70. return $view;
  71. }
  72. /**
  73. * Based on a bug some filter_groups landed in the overridden display, even the filters weren't overridden.
  74. * This caused multiple issues.
  75. * Take sure that the value from the default display are used.
  76. *
  77. * @see http://drupal.org/node/1259608
  78. * @see views_plugin_display::init()
  79. */
  80. function testFilterGroupsUpdating() {
  81. $view = $this->viewFilterGroupsUpdating();
  82. $view->init_display();
  83. $this->assertFalse($view->display['page']->handler->options['defaults']['filter_groups']);
  84. $this->assertEqual($view->display['default']->handler->options['filter_groups'], $view->display['page']->handler->options['filter_groups'], 'Take sure the default options are used for the filter_groups');
  85. }
  86. /**
  87. * Returns a test view for testFilterGroupUpdating.
  88. *
  89. * @see testFilterGroupUpdating
  90. *
  91. * @return view
  92. */
  93. function viewFilterGroupsUpdating() {
  94. $view = new view();
  95. $view->name = 'test_filter_groups';
  96. $view->description = '';
  97. $view->tag = 'default';
  98. $view->base_table = 'node';
  99. $view->human_name = 'test_filter_groups';
  100. $view->core = 7;
  101. $view->api_version = '3.0';
  102. $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
  103. /* Display: Master */
  104. $handler = $view->new_display('default', 'Master', 'default');
  105. $handler->display->display_options['title'] = 'test_filter_groups';
  106. $handler->display->display_options['access']['type'] = 'perm';
  107. $handler->display->display_options['cache']['type'] = 'none';
  108. $handler->display->display_options['query']['type'] = 'views_query';
  109. $handler->display->display_options['exposed_form']['type'] = 'basic';
  110. $handler->display->display_options['pager']['type'] = 'full';
  111. $handler->display->display_options['pager']['options']['items_per_page'] = '10';
  112. $handler->display->display_options['style_plugin'] = 'default';
  113. $handler->display->display_options['row_plugin'] = 'node';
  114. /* Field: Content: Title */
  115. $handler->display->display_options['fields']['title']['id'] = 'title';
  116. $handler->display->display_options['fields']['title']['table'] = 'node';
  117. $handler->display->display_options['fields']['title']['field'] = 'title';
  118. $handler->display->display_options['fields']['title']['label'] = '';
  119. $handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
  120. $handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
  121. /* Sort criterion: Content: Post date */
  122. $handler->display->display_options['sorts']['created']['id'] = 'created';
  123. $handler->display->display_options['sorts']['created']['table'] = 'node';
  124. $handler->display->display_options['sorts']['created']['field'] = 'created';
  125. $handler->display->display_options['sorts']['created']['order'] = 'DESC';
  126. $handler->display->display_options['filter_groups']['groups'] = array(
  127. 1 => 'AND',
  128. 2 => 'AND',
  129. );
  130. /* Filter criterion: Content: Published */
  131. $handler->display->display_options['filters']['status']['id'] = 'status';
  132. $handler->display->display_options['filters']['status']['table'] = 'node';
  133. $handler->display->display_options['filters']['status']['field'] = 'status';
  134. $handler->display->display_options['filters']['status']['value'] = 1;
  135. $handler->display->display_options['filters']['status']['group'] = 1;
  136. $handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
  137. /* Filter criterion: Content: Nid */
  138. $handler->display->display_options['filters']['nid']['id'] = 'nid';
  139. $handler->display->display_options['filters']['nid']['table'] = 'node';
  140. $handler->display->display_options['filters']['nid']['field'] = 'nid';
  141. $handler->display->display_options['filters']['nid']['value']['value'] = '1';
  142. $handler->display->display_options['filters']['nid']['group'] = 2;
  143. /* Filter criterion: Content: Nid */
  144. $handler->display->display_options['filters']['nid_1']['id'] = 'nid_1';
  145. $handler->display->display_options['filters']['nid_1']['table'] = 'node';
  146. $handler->display->display_options['filters']['nid_1']['field'] = 'nid';
  147. $handler->display->display_options['filters']['nid_1']['value']['value'] = '2';
  148. $handler->display->display_options['filters']['nid_1']['group'] = 2;
  149. /* Display: Page */
  150. $handler = $view->new_display('page', 'Page', 'page');
  151. $handler->display->display_options['filter_groups']['operator'] = 'OR';
  152. $handler->display->display_options['filter_groups']['groups'] = array(
  153. 1 => 'OR',
  154. 2 => 'OR',
  155. );
  156. $handler->display->display_options['defaults']['filters'] = FALSE;
  157. /* Filter criterion: Content: Published */
  158. $handler->display->display_options['filters']['status']['id'] = 'status';
  159. $handler->display->display_options['filters']['status']['table'] = 'node';
  160. $handler->display->display_options['filters']['status']['field'] = 'status';
  161. $handler->display->display_options['filters']['status']['value'] = 1;
  162. $handler->display->display_options['filters']['status']['group'] = 1;
  163. $handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
  164. /* Filter criterion: Content: Nid */
  165. $handler->display->display_options['filters']['nid']['id'] = 'nid';
  166. $handler->display->display_options['filters']['nid']['table'] = 'node';
  167. $handler->display->display_options['filters']['nid']['field'] = 'nid';
  168. $handler->display->display_options['filters']['nid']['value']['value'] = '1';
  169. $handler->display->display_options['filters']['nid']['group'] = 2;
  170. /* Filter criterion: Content: Nid */
  171. $handler->display->display_options['filters']['nid_1']['id'] = 'nid_1';
  172. $handler->display->display_options['filters']['nid_1']['table'] = 'node';
  173. $handler->display->display_options['filters']['nid_1']['field'] = 'nid';
  174. $handler->display->display_options['filters']['nid_1']['value']['value'] = '2';
  175. $handler->display->display_options['filters']['nid_1']['group'] = 2;
  176. $handler->display->display_options['path'] = 'test-filter-groups';
  177. return $view;
  178. }
  179. }