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
diff --git a/web/modules/contrib/entity_reference_revisions/tests/src/Kernel/EntityReferenceRevisionsFormatterTest.php b/web/modules/contrib/entity_reference_revisions/tests/src/Kernel/EntityReferenceRevisionsFormatterTest.php
new file mode 100644 (file)
index 0000000..430d06e
--- /dev/null
@@ -0,0 +1,106 @@
+<?php
+
+namespace Drupal\Tests\entity_reference_revisions\Kernel;
+
+use Drupal\entity_composite_relationship_test\Entity\EntityTestCompositeRelationship;
+use Drupal\field\Entity\FieldConfig;
+use Drupal\field\Entity\FieldStorageConfig;
+use Drupal\KernelTests\KernelTestBase;
+use Drupal\node\Entity\Node;
+use Drupal\node\Entity\NodeType;
+use Drupal\simpletest\UserCreationTrait;
+
+/**
+ * @coversDefaultClass \Drupal\entity_reference_revisions\Plugin\Field\FieldFormatter\EntityReferenceRevisionsEntityFormatter
+ * @group entity_reference_revisions
+ */
+class EntityReferenceRevisionsFormatterTest extends KernelTestBase {
+
+  use UserCreationTrait;
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = [
+    'node',
+    'user',
+    'system',
+    'field',
+    'entity_reference_revisions',
+    'entity_composite_relationship_test',
+  ];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    // Create article content type.
+    $values = ['type' => 'article', 'name' => 'Article'];
+    $node_type = NodeType::create($values);
+    $node_type->save();
+    $this->installEntitySchema('user');
+    $this->installEntitySchema('node');
+    $this->installEntitySchema('entity_test_composite');
+    $this->installSchema('system', ['sequences']);
+    $this->installSchema('node', ['node_access']);
+
+    // Add the entity_reference_revisions field to article.
+    $field_storage = FieldStorageConfig::create([
+      'field_name' => 'composite_reference',
+      'entity_type' => 'node',
+      'type' => 'entity_reference_revisions',
+      'settings' => [
+        'target_type' => 'entity_test_composite'
+      ],
+    ]);
+    $field_storage->save();
+    $field = FieldConfig::create([
+      'field_storage' => $field_storage,
+      'bundle' => 'article',
+    ]);
+    $field->save();
+
+    $user = $this->createUser(['administer entity_test composite relationship']);
+    \Drupal::currentUser()->setAccount($user);
+  }
+
+  public function testFormatterWithDeletedReference() {
+    // Create the test composite entity.
+    $text = 'Dummy text';
+    $entity_test = EntityTestCompositeRelationship::create([
+      'uuid' => $text,
+      'name' => $text,
+    ]);
+    $entity_test->save();
+
+    $text = 'Clever text';
+    // Set the name to a new text.
+    /** @var \Drupal\entity_composite_relationship_test\Entity\EntityTestCompositeRelationship $entity_test */
+    $entity_test->name = $text;
+    $entity_test->setNeedsSave(TRUE);
+
+    $node = Node::create([
+      'title' => $this->randomMachineName(),
+      'type' => 'article',
+      'composite_reference' => $entity_test,
+    ]);
+    $node->save();
+
+    // entity_reference_revisions_entity_view
+    $result = $node->composite_reference->view(['type' => 'entity_reference_revisions_entity_view']);
+    $this->setRawContent($this->render($result));
+    $this->assertText('Clever text');
+
+    // Remove the referenced entity.
+    $entity_test->delete();
+
+    $node = Node::load($node->id());
+    $result = $node->composite_reference->view(['type' => 'entity_reference_revisions_entity_view']);
+    $this->render($result);
+    $this->assertNoText('Clever text');
+  }
+
+}