public function DynamicEntityReferenceWidgetTest::testEntityReferenceDefaultWidget in Dynamic Entity Reference 8
Same name and namespace in other branches
- 8.2 tests/src/Functional/DynamicEntityReferenceWidgetTest.php \Drupal\Tests\dynamic_entity_reference\Functional\DynamicEntityReferenceWidgetTest::testEntityReferenceDefaultWidget()
Tests default autocomplete widget.
File
- tests/
src/ Functional/ DynamicEntityReferenceWidgetTest.php, line 106
Class
- DynamicEntityReferenceWidgetTest
- Tests dynamic entity reference field widgets.
Namespace
Drupal\Tests\dynamic_entity_reference\FunctionalCode
public function testEntityReferenceDefaultWidget() {
$assert_session = $this
->assertSession();
$field_name = $this->fieldName;
EntityFormDisplay::load('node.reference_content.default')
->setComponent($field_name, [
'type' => 'dynamic_entity_reference_default',
])
->save();
$this
->drupalLogin($this->adminUser);
// Create a node to be referenced.
$referenced_node = $this
->drupalCreateNode([
'type' => 'referenced_content',
]);
$title = $this
->randomMachineName();
$edit = [
'title[0][value]' => $title,
$field_name . '[0][target_id]' => $referenced_node
->getTitle() . ' (' . $referenced_node
->id() . ')',
];
$this
->drupalGet(Url::fromRoute('node.add', [
'node_type' => 'reference_content',
]));
// Only 1 target_type is configured, so this field is not available on the
// node add/edit page.
$assert_session
->fieldNotExists($field_name . '[0][target_type]');
$this
->submitForm($edit, t('Save'));
$node = $this
->drupalGetNodeByTitle($title);
$assert_session
->responseContains(t('@type %title has been created.', [
'@type' => 'reference_content',
'%title' => $node
->toLink($node
->label())
->toString(),
]));
$nodes = \Drupal::entityTypeManager()
->getStorage('node')
->loadByProperties([
'title' => $title,
]);
$reference_node = reset($nodes);
$this
->assertEquals($reference_node
->get($field_name)
->offsetGet(0)->target_type, $referenced_node
->getEntityTypeId());
$this
->assertEquals($reference_node
->get($field_name)
->offsetGet(0)->target_id, $referenced_node
->id());
}