views_handler_relationship_node_term_data.test 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?php
  2. /**
  3. * @file
  4. * Definition of ViewsHandlerRelationshipNodeTermDataTest.
  5. */
  6. /**
  7. * Tests the relationship_node_term_data handler.
  8. */
  9. class ViewsHandlerRelationshipNodeTermDataTest extends ViewsSqlTest {
  10. public static function getInfo() {
  11. return array(
  12. 'name' => 'Tests handler relationship_node_term_data',
  13. 'description' => 'Tests the taxonomy term on node relationship handler',
  14. 'group' => 'Views Modules',
  15. );
  16. }
  17. /**
  18. * Returns a new term with random properties in vocabulary $vid.
  19. */
  20. function createTerm($vocabulary) {
  21. $term = new stdClass();
  22. $term->name = $this->randomName();
  23. $term->description = $this->randomName();
  24. // Use the first available text format.
  25. $term->format = db_query_range('SELECT format FROM {filter_format}', 0, 1)->fetchField();
  26. $term->vid = $vocabulary->vid;
  27. taxonomy_term_save($term);
  28. return $term;
  29. }
  30. function setUp() {
  31. parent::setUp();
  32. //$web_user = $this->drupalCreateUser(array('create article content'));
  33. //$this->drupalLogin($web_user);
  34. $vocabulary = taxonomy_vocabulary_machine_name_load('tags');
  35. $this->term_1 = $this->createTerm($vocabulary);
  36. $this->term_2 = $this->createTerm($vocabulary);
  37. $node = array();
  38. $node['type'] = 'article';
  39. $node['field_tags'][LANGUAGE_NONE][]['tid'] = $this->term_1->tid;
  40. $node['field_tags'][LANGUAGE_NONE][]['tid'] = $this->term_2->tid;
  41. $this->node = $this->drupalCreateNode($node);
  42. }
  43. function testViewsHandlerRelationshipNodeTermData() {
  44. $view = $this->view_taxonomy_node_term_data();
  45. $this->executeView($view, array($this->term_1->tid, $this->term_2->tid));
  46. $resultset = array(
  47. array(
  48. 'nid' => $this->node->nid,
  49. ),
  50. );
  51. $this->column_map = array('nid' => 'nid');
  52. debug($view->result);
  53. $this->assertIdenticalResultset($view, $resultset, $this->column_map);
  54. }
  55. function view_taxonomy_node_term_data() {
  56. $view = new view();
  57. $view->name = 'test_taxonomy_node_term_data';
  58. $view->description = '';
  59. $view->tag = '';
  60. $view->base_table = 'node';
  61. $view->human_name = 'test_taxonomy_node_term_data';
  62. $view->core = 7;
  63. $view->api_version = '3.0';
  64. $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
  65. /* Display: Master */
  66. $handler = $view->new_display('default', 'Master', 'default');
  67. $handler->display->display_options['access']['type'] = 'perm';
  68. $handler->display->display_options['cache']['type'] = 'none';
  69. $handler->display->display_options['query']['type'] = 'views_query';
  70. $handler->display->display_options['exposed_form']['type'] = 'basic';
  71. $handler->display->display_options['pager']['type'] = 'full';
  72. $handler->display->display_options['style_plugin'] = 'default';
  73. $handler->display->display_options['row_plugin'] = 'node';
  74. /* Relationship: Content: Taxonomy terms on node */
  75. $handler->display->display_options['relationships']['term_node_tid']['id'] = 'term_node_tid';
  76. $handler->display->display_options['relationships']['term_node_tid']['table'] = 'node';
  77. $handler->display->display_options['relationships']['term_node_tid']['field'] = 'term_node_tid';
  78. $handler->display->display_options['relationships']['term_node_tid']['label'] = 'Term #1';
  79. $handler->display->display_options['relationships']['term_node_tid']['vocabularies'] = array(
  80. 'tags' => 0,
  81. );
  82. /* Relationship: Content: Taxonomy terms on node */
  83. $handler->display->display_options['relationships']['term_node_tid_1']['id'] = 'term_node_tid_1';
  84. $handler->display->display_options['relationships']['term_node_tid_1']['table'] = 'node';
  85. $handler->display->display_options['relationships']['term_node_tid_1']['field'] = 'term_node_tid';
  86. $handler->display->display_options['relationships']['term_node_tid_1']['label'] = 'Term #2';
  87. $handler->display->display_options['relationships']['term_node_tid_1']['vocabularies'] = array(
  88. 'tags' => 0,
  89. );
  90. /* Contextual filter: Taxonomy term: Term ID */
  91. $handler->display->display_options['arguments']['tid']['id'] = 'tid';
  92. $handler->display->display_options['arguments']['tid']['table'] = 'taxonomy_term_data';
  93. $handler->display->display_options['arguments']['tid']['field'] = 'tid';
  94. $handler->display->display_options['arguments']['tid']['relationship'] = 'term_node_tid';
  95. $handler->display->display_options['arguments']['tid']['default_argument_type'] = 'fixed';
  96. $handler->display->display_options['arguments']['tid']['summary']['number_of_records'] = '0';
  97. $handler->display->display_options['arguments']['tid']['summary']['format'] = 'default_summary';
  98. $handler->display->display_options['arguments']['tid']['summary_options']['items_per_page'] = '25';
  99. /* Contextual filter: Taxonomy term: Term ID */
  100. $handler->display->display_options['arguments']['tid_1']['id'] = 'tid_1';
  101. $handler->display->display_options['arguments']['tid_1']['table'] = 'taxonomy_term_data';
  102. $handler->display->display_options['arguments']['tid_1']['field'] = 'tid';
  103. $handler->display->display_options['arguments']['tid_1']['relationship'] = 'term_node_tid_1';
  104. $handler->display->display_options['arguments']['tid_1']['default_argument_type'] = 'fixed';
  105. $handler->display->display_options['arguments']['tid_1']['summary']['number_of_records'] = '0';
  106. $handler->display->display_options['arguments']['tid_1']['summary']['format'] = 'default_summary';
  107. $handler->display->display_options['arguments']['tid_1']['summary_options']['items_per_page'] = '25';
  108. return $view;
  109. }
  110. }