Added Entity and Entity Reference Revisions which got dropped somewhere along the...
[yaffs-website] / web / modules / contrib / entity_reference_revisions / tests / src / Kernel / EntityReferenceRevisionsFormatterTest.php
1 <?php
2
3 namespace Drupal\Tests\entity_reference_revisions\Kernel;
4
5 use Drupal\entity_composite_relationship_test\Entity\EntityTestCompositeRelationship;
6 use Drupal\field\Entity\FieldConfig;
7 use Drupal\field\Entity\FieldStorageConfig;
8 use Drupal\KernelTests\KernelTestBase;
9 use Drupal\node\Entity\Node;
10 use Drupal\node\Entity\NodeType;
11 use Drupal\simpletest\UserCreationTrait;
12
13 /**
14  * @coversDefaultClass \Drupal\entity_reference_revisions\Plugin\Field\FieldFormatter\EntityReferenceRevisionsEntityFormatter
15  * @group entity_reference_revisions
16  */
17 class EntityReferenceRevisionsFormatterTest extends KernelTestBase {
18
19   use UserCreationTrait;
20
21   /**
22    * Modules to enable.
23    *
24    * @var array
25    */
26   public static $modules = [
27     'node',
28     'user',
29     'system',
30     'field',
31     'entity_reference_revisions',
32     'entity_composite_relationship_test',
33   ];
34
35   /**
36    * {@inheritdoc}
37    */
38   protected function setUp() {
39     parent::setUp();
40     // Create article content type.
41     $values = ['type' => 'article', 'name' => 'Article'];
42     $node_type = NodeType::create($values);
43     $node_type->save();
44     $this->installEntitySchema('user');
45     $this->installEntitySchema('node');
46     $this->installEntitySchema('entity_test_composite');
47     $this->installSchema('system', ['sequences']);
48     $this->installSchema('node', ['node_access']);
49
50     // Add the entity_reference_revisions field to article.
51     $field_storage = FieldStorageConfig::create([
52       'field_name' => 'composite_reference',
53       'entity_type' => 'node',
54       'type' => 'entity_reference_revisions',
55       'settings' => [
56         'target_type' => 'entity_test_composite'
57       ],
58     ]);
59     $field_storage->save();
60     $field = FieldConfig::create([
61       'field_storage' => $field_storage,
62       'bundle' => 'article',
63     ]);
64     $field->save();
65
66     $user = $this->createUser(['administer entity_test composite relationship']);
67     \Drupal::currentUser()->setAccount($user);
68   }
69
70   public function testFormatterWithDeletedReference() {
71     // Create the test composite entity.
72     $text = 'Dummy text';
73     $entity_test = EntityTestCompositeRelationship::create([
74       'uuid' => $text,
75       'name' => $text,
76     ]);
77     $entity_test->save();
78
79     $text = 'Clever text';
80     // Set the name to a new text.
81     /** @var \Drupal\entity_composite_relationship_test\Entity\EntityTestCompositeRelationship $entity_test */
82     $entity_test->name = $text;
83     $entity_test->setNeedsSave(TRUE);
84
85     $node = Node::create([
86       'title' => $this->randomMachineName(),
87       'type' => 'article',
88       'composite_reference' => $entity_test,
89     ]);
90     $node->save();
91
92     // entity_reference_revisions_entity_view
93     $result = $node->composite_reference->view(['type' => 'entity_reference_revisions_entity_view']);
94     $this->setRawContent($this->render($result));
95     $this->assertText('Clever text');
96
97     // Remove the referenced entity.
98     $entity_test->delete();
99
100     $node = Node::load($node->id());
101     $result = $node->composite_reference->view(['type' => 'entity_reference_revisions_entity_view']);
102     $this->render($result);
103     $this->assertNoText('Clever text');
104   }
105
106 }