c5f2902d055d1c351cd71a31c4f74adca8e1e8e0
[yaffs-website] / web / core / modules / options / tests / src / Kernel / Views / FileViewsDataTest.php
1 <?php
2
3 namespace Drupal\Tests\options\Kernel\Views;
4
5 use Drupal\field\Entity\FieldStorageConfig;
6 use Drupal\field\Entity\FieldConfig;
7 use Drupal\Tests\views\Kernel\ViewsKernelTestBase;
8 use Drupal\views\Views;
9
10 /**
11  * Tests file views data.
12  *
13  * @group file
14  */
15 class FileViewsDataTest extends ViewsKernelTestBase {
16
17   /**
18    * Modules to install.
19    *
20    * @var array
21    */
22   public static $modules = ['file', 'views', 'entity_test', 'user', 'field'];
23
24   /**
25    * Tests views data generated for file field relationship.
26    *
27    * @see file_field_views_data()
28    * @see file_field_views_data_views_data_alter()
29    */
30   public function testRelationshipViewsData() {
31     // Create file field to entity_test.
32     FieldStorageConfig::create([
33       'entity_type' => 'entity_test',
34       'field_name' => 'field_base_file',
35       'type' => 'file',
36     ])->save();
37     FieldConfig::create([
38       'entity_type' => 'entity_test',
39       'field_name' => 'field_base_file',
40       'bundle' => 'entity_test',
41     ])->save();
42     // Check the generated views data.
43     $views_data = Views::viewsData()->get('entity_test__field_base_file');
44     $relationship = $views_data['field_base_file_target_id']['relationship'];
45     $this->assertEqual($relationship['id'], 'standard');
46     $this->assertEqual($relationship['base'], 'file_managed');
47     $this->assertEqual($relationship['base field'], 'fid');
48     $this->assertEqual($relationship['entity type'], 'file');
49     // Check the backwards reference.
50     $views_data = Views::viewsData()->get('file_managed');
51     $relationship = $views_data['reverse_field_base_file_entity_test']['relationship'];
52     $this->assertEqual($relationship['id'], 'entity_reverse');
53     $this->assertEqual($relationship['base'], 'entity_test');
54     $this->assertEqual($relationship['base field'], 'id');
55     $this->assertEqual($relationship['field table'], 'entity_test__field_base_file');
56     $this->assertEqual($relationship['field field'], 'field_base_file_target_id');
57     $this->assertEqual($relationship['field_name'], 'field_base_file');
58     $this->assertEqual($relationship['entity_type'], 'entity_test');
59     $this->assertEqual($relationship['join_extra'][0], ['field' => 'deleted', 'value' => 0, 'numeric' => TRUE]);
60
61     // Create file field to entity_test_mul.
62     FieldStorageConfig::create([
63       'entity_type' => 'entity_test_mul',
64       'field_name' => 'field_data_file',
65       'type' => 'file',
66     ])->save();
67     FieldConfig::create([
68       'entity_type' => 'entity_test_mul',
69       'field_name' => 'field_data_file',
70       'bundle' => 'entity_test_mul',
71     ])->save();
72     // Check the generated views data.
73     $views_data = Views::viewsData()->get('entity_test_mul__field_data_file');
74     $relationship = $views_data['field_data_file_target_id']['relationship'];
75     $this->assertEqual($relationship['id'], 'standard');
76     $this->assertEqual($relationship['base'], 'file_managed');
77     $this->assertEqual($relationship['base field'], 'fid');
78     $this->assertEqual($relationship['entity type'], 'file');
79     // Check the backwards reference.
80     $views_data = Views::viewsData()->get('file_managed');
81     $relationship = $views_data['reverse_field_data_file_entity_test_mul']['relationship'];
82     $this->assertEqual($relationship['id'], 'entity_reverse');
83     $this->assertEqual($relationship['base'], 'entity_test_mul_property_data');
84     $this->assertEqual($relationship['base field'], 'id');
85     $this->assertEqual($relationship['field table'], 'entity_test_mul__field_data_file');
86     $this->assertEqual($relationship['field field'], 'field_data_file_target_id');
87     $this->assertEqual($relationship['field_name'], 'field_data_file');
88     $this->assertEqual($relationship['entity_type'], 'entity_test_mul');
89     $this->assertEqual($relationship['join_extra'][0], ['field' => 'deleted', 'value' => 0, 'numeric' => TRUE]);
90   }
91
92 }