Mercurial > hg > isophonics-drupal-site
comparison core/modules/field/src/Tests/Views/FieldTestBase.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 1fec387a4317 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 | |
3 namespace Drupal\field\Tests\Views; | |
4 | |
5 use Drupal\field\Entity\FieldConfig; | |
6 use Drupal\node\Entity\NodeType; | |
7 use Drupal\views\Tests\ViewTestBase; | |
8 use Drupal\views\Tests\ViewTestData; | |
9 use Drupal\field\Entity\FieldStorageConfig; | |
10 | |
11 /** | |
12 * Provides some helper methods for testing fieldapi integration into views. | |
13 * | |
14 * @todo Test on a generic entity not on a node. What has to be tested: | |
15 * - Make sure that every wanted field is added to the according entity type. | |
16 * - Make sure the joins are done correctly. | |
17 * - Use basic fields and make sure that the full wanted object is built. | |
18 * - Use relationships between different entity types, for example node and | |
19 * the node author(user). | |
20 */ | |
21 abstract class FieldTestBase extends ViewTestBase { | |
22 | |
23 /** | |
24 * Modules to enable. | |
25 * | |
26 * @var array | |
27 */ | |
28 public static $modules = ['node', 'field_test_views']; | |
29 | |
30 /** | |
31 * Stores the field definitions used by the test. | |
32 * | |
33 * @var array | |
34 */ | |
35 public $fieldStorages; | |
36 | |
37 /** | |
38 * Stores the fields of the field storage. They have the same keys as the | |
39 * field storages. | |
40 * | |
41 * @var array | |
42 */ | |
43 public $fields; | |
44 | |
45 protected function setUp() { | |
46 parent::setUp(); | |
47 | |
48 // Ensure the page node type exists. | |
49 NodeType::create([ | |
50 'type' => 'page', | |
51 'name' => 'page', | |
52 ])->save(); | |
53 | |
54 ViewTestData::createTestViews(get_class($this), ['field_test_views']); | |
55 } | |
56 | |
57 public function setUpFieldStorages($amount = 3, $type = 'string') { | |
58 // Create three fields. | |
59 $field_names = []; | |
60 for ($i = 0; $i < $amount; $i++) { | |
61 $field_names[$i] = 'field_name_' . $i; | |
62 $this->fieldStorages[$i] = FieldStorageConfig::create([ | |
63 'field_name' => $field_names[$i], | |
64 'entity_type' => 'node', | |
65 'type' => $type, | |
66 ]); | |
67 $this->fieldStorages[$i]->save(); | |
68 } | |
69 return $field_names; | |
70 } | |
71 | |
72 public function setUpFields($bundle = 'page') { | |
73 foreach ($this->fieldStorages as $key => $field_storage) { | |
74 $this->fields[$key] = FieldConfig::create([ | |
75 'field_storage' => $field_storage, | |
76 'bundle' => $bundle, | |
77 ]); | |
78 $this->fields[$key]->save(); | |
79 } | |
80 } | |
81 | |
82 } |