views_node_revision_relations.test 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <?php
  2. /**
  3. * @file
  4. * Definition of ViewsNodeRevisionRelationsTestCase.
  5. */
  6. /**
  7. * Tests basic node_revision table integration into views.
  8. */
  9. class ViewsNodeRevisionRelationsTestCase extends ViewsSqlTest {
  10. public static function getInfo() {
  11. return array(
  12. 'name' => 'Tests basic node_revision integration',
  13. 'description' => 'Tests the integration of node_revision table of node module',
  14. 'group' => 'Views Modules',
  15. );
  16. }
  17. /**
  18. * Create a node with revision and rest result count for both views.
  19. */
  20. public function testNodeRevisionRelationship() {
  21. $node = $this->drupalCreateNode();
  22. // Create revision of the node.
  23. $node_revision = clone $node;
  24. $node_revision->revision = 1;
  25. node_save($node_revision);
  26. $column_map = array(
  27. 'vid' => 'vid',
  28. 'node_revision_nid' => 'node_revision_nid',
  29. 'node_node_revision_nid' => 'node_node_revision_nid',
  30. );
  31. // Here should be two rows.
  32. $view_nid = $this->test_view_node_revision_nid();
  33. $this->executeView($view_nid, array($node->nid));
  34. $resultset_nid = array(
  35. array(
  36. 'vid' => '1',
  37. 'node_revision_nid' => '1',
  38. 'node_node_revision_nid' => '1',
  39. ),
  40. array(
  41. 'vid' => '2',
  42. 'node_revision_nid' => '1',
  43. 'node_node_revision_nid' => '1',
  44. ),
  45. );
  46. $this->assertIdenticalResultset($view_nid, $resultset_nid, $column_map);
  47. // There should be only one row with active revision 2.
  48. $view_vid = $this->test_view_node_revision_vid();
  49. $this->executeView($view_vid, array($node->nid));
  50. $resultset_vid = array(
  51. array(
  52. 'vid' => '2',
  53. 'node_revision_nid' => '1',
  54. 'node_node_revision_nid' => '1',
  55. ),
  56. );
  57. $this->assertIdenticalResultset($view_vid, $resultset_vid, $column_map);
  58. }
  59. /**
  60. * Test view with default join on node.nid.
  61. */
  62. function test_view_node_revision_nid() {
  63. $view = new view();
  64. $view->name = 'test_node_revision_nid';
  65. $view->description = '';
  66. $view->tag = '';
  67. $view->base_table = 'node_revision';
  68. $view->human_name = 'Test node revision nid';
  69. $view->core = 7;
  70. $view->api_version = '3.0';
  71. $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
  72. /* Display: Master */
  73. $handler = $view->new_display('default', 'Master', 'default');
  74. $handler->display->display_options['use_more_always'] = FALSE;
  75. $handler->display->display_options['access']['type'] = 'perm';
  76. $handler->display->display_options['access']['perm'] = 'view revisions';
  77. $handler->display->display_options['cache']['type'] = 'none';
  78. $handler->display->display_options['query']['type'] = 'views_query';
  79. $handler->display->display_options['exposed_form']['type'] = 'basic';
  80. $handler->display->display_options['pager']['type'] = 'full';
  81. $handler->display->display_options['style_plugin'] = 'default';
  82. $handler->display->display_options['row_plugin'] = 'fields';
  83. /* Relationship: Content revision: Content */
  84. $handler->display->display_options['relationships']['nid']['id'] = 'nid';
  85. $handler->display->display_options['relationships']['nid']['table'] = 'node_revision';
  86. $handler->display->display_options['relationships']['nid']['field'] = 'nid';
  87. $handler->display->display_options['relationships']['nid']['label'] = 'NID';
  88. $handler->display->display_options['relationships']['nid']['required'] = TRUE;
  89. /* Field: Content revision: Vid */
  90. $handler->display->display_options['fields']['vid']['id'] = 'vid';
  91. $handler->display->display_options['fields']['vid']['table'] = 'node_revision';
  92. $handler->display->display_options['fields']['vid']['field'] = 'vid';
  93. /* Field: Content revision: Nid */
  94. $handler->display->display_options['fields']['nid_1']['id'] = 'nid_1';
  95. $handler->display->display_options['fields']['nid_1']['table'] = 'node_revision';
  96. $handler->display->display_options['fields']['nid_1']['field'] = 'nid';
  97. /* Field: Content: Nid */
  98. $handler->display->display_options['fields']['nid']['id'] = 'nid';
  99. $handler->display->display_options['fields']['nid']['table'] = 'node';
  100. $handler->display->display_options['fields']['nid']['field'] = 'nid';
  101. $handler->display->display_options['fields']['nid']['relationship'] = 'nid';
  102. /* Contextual filter: Content revision: Nid */
  103. $handler->display->display_options['arguments']['nid']['id'] = 'nid';
  104. $handler->display->display_options['arguments']['nid']['table'] = 'node_revision';
  105. $handler->display->display_options['arguments']['nid']['field'] = 'nid';
  106. $handler->display->display_options['arguments']['nid']['default_argument_type'] = 'fixed';
  107. $handler->display->display_options['arguments']['nid']['summary']['number_of_records'] = '0';
  108. $handler->display->display_options['arguments']['nid']['summary']['format'] = 'default_summary';
  109. $handler->display->display_options['arguments']['nid']['summary_options']['items_per_page'] = '25';
  110. return $view;
  111. }
  112. /**
  113. * Test view with default join on node.vid.
  114. */
  115. function test_view_node_revision_vid() {
  116. $view = new view();
  117. $view->name = 'test_node_revision_vid';
  118. $view->description = '';
  119. $view->tag = '';
  120. $view->base_table = 'node_revision';
  121. $view->human_name = 'Test node revision vid';
  122. $view->core = 7;
  123. $view->api_version = '3.0';
  124. $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
  125. /* Display: Master */
  126. $handler = $view->new_display('default', 'Master', 'default');
  127. $handler->display->display_options['use_more_always'] = FALSE;
  128. $handler->display->display_options['access']['type'] = 'perm';
  129. $handler->display->display_options['access']['perm'] = 'view revisions';
  130. $handler->display->display_options['cache']['type'] = 'none';
  131. $handler->display->display_options['query']['type'] = 'views_query';
  132. $handler->display->display_options['exposed_form']['type'] = 'basic';
  133. $handler->display->display_options['pager']['type'] = 'full';
  134. $handler->display->display_options['style_plugin'] = 'default';
  135. $handler->display->display_options['row_plugin'] = 'fields';
  136. /* Relationship: Content revision: Content */
  137. $handler->display->display_options['relationships']['vid']['id'] = 'vid';
  138. $handler->display->display_options['relationships']['vid']['table'] = 'node_revision';
  139. $handler->display->display_options['relationships']['vid']['field'] = 'vid';
  140. $handler->display->display_options['relationships']['vid']['label'] = 'VID';
  141. $handler->display->display_options['relationships']['vid']['required'] = TRUE;
  142. /* Field: Content revision: Vid */
  143. $handler->display->display_options['fields']['vid']['id'] = 'vid';
  144. $handler->display->display_options['fields']['vid']['table'] = 'node_revision';
  145. $handler->display->display_options['fields']['vid']['field'] = 'vid';
  146. /* Field: Content revision: Nid */
  147. $handler->display->display_options['fields']['nid_1']['id'] = 'nid_1';
  148. $handler->display->display_options['fields']['nid_1']['table'] = 'node_revision';
  149. $handler->display->display_options['fields']['nid_1']['field'] = 'nid';
  150. /* Field: Content: Nid */
  151. $handler->display->display_options['fields']['nid']['id'] = 'nid';
  152. $handler->display->display_options['fields']['nid']['table'] = 'node';
  153. $handler->display->display_options['fields']['nid']['field'] = 'nid';
  154. $handler->display->display_options['fields']['nid']['relationship'] = 'vid';
  155. /* Contextual filter: Content revision: Nid */
  156. $handler->display->display_options['arguments']['nid']['id'] = 'nid';
  157. $handler->display->display_options['arguments']['nid']['table'] = 'node_revision';
  158. $handler->display->display_options['arguments']['nid']['field'] = 'nid';
  159. $handler->display->display_options['arguments']['nid']['default_argument_type'] = 'fixed';
  160. $handler->display->display_options['arguments']['nid']['summary']['number_of_records'] = '0';
  161. $handler->display->display_options['arguments']['nid']['summary']['format'] = 'default_summary';
  162. $handler->display->display_options['arguments']['nid']['summary_options']['items_per_page'] = '25';
  163. return $view;
  164. }
  165. }