public function EntityCloneContentRecursiveTest::testContentEntityClone in Entity Clone 8
Test clone a content entity with another entities attached.
File
- tests/
src/ Functional/ EntityCloneContentRecursiveTest.php, line 67
Class
- EntityCloneContentRecursiveTest
- Create a content and test a clone.
Namespace
Drupal\Tests\entity_clone\FunctionalCode
public function testContentEntityClone() {
$term_title = $this
->randomMachineName(8);
$term = Term::create([
'vid' => 'tags',
'name' => $term_title,
]);
$term
->save();
$node_title = $this
->randomMachineName(8);
$node = Node::create([
'type' => 'article',
'title' => $node_title,
'field_tags' => [
'target_id' => $term
->id(),
],
]);
$node
->save();
$settings = [
'taxonomy_term' => [
'default_value' => 1,
'disable' => 0,
'hidden' => 0,
],
];
\Drupal::service('config.factory')
->getEditable('entity_clone.settings')
->set('form_settings', $settings)
->save();
$this
->drupalPostForm('entity_clone/node/' . $node
->id(), [
'recursive[node.article.field_tags][references][' . $term
->id() . '][clone]' => 1,
], t('Clone'));
$nodes = \Drupal::entityTypeManager()
->getStorage('node')
->loadByProperties([
'title' => $node_title . ' - Cloned',
]);
/** @var \Drupal\node\Entity\Node $node */
$node = reset($nodes);
$this
->assertInstanceOf(Node::class, $node, 'Test node cloned found in database.');
$terms = \Drupal::entityTypeManager()
->getStorage('taxonomy_term')
->loadByProperties([
'name' => $term_title . ' - Cloned',
]);
/** @var \Drupal\taxonomy\Entity\Term $term */
$term = reset($terms);
$this
->assertInstanceOf(Term::class, $term, 'Test term referenced by node cloned too found in database.');
$node
->delete();
$term
->delete();
$nodes = \Drupal::entityTypeManager()
->getStorage('node')
->loadByProperties([
'title' => $node_title,
]);
$node = reset($nodes);
$this
->assertInstanceOf(Node::class, $node, 'Test original node found in database.');
$terms = \Drupal::entityTypeManager()
->getStorage('taxonomy_term')
->loadByProperties([
'name' => $term_title,
]);
$term = reset($terms);
$this
->assertInstanceOf(Term::class, $term, 'Test original term found in database.');
}