public function EntityReferenceFormatterTest::testEntityFormatter in Zircon Profile 8.0
Same name and namespace in other branches
- 8 core/modules/field/src/Tests/EntityReference/EntityReferenceFormatterTest.php \Drupal\field\Tests\EntityReference\EntityReferenceFormatterTest::testEntityFormatter()
Tests the entity formatter.
File
- core/
modules/ field/ src/ Tests/ EntityReference/ EntityReferenceFormatterTest.php, line 177 - Contains \Drupal\field\Tests\EntityReference\EntityReferenceFormatterTest.
Class
- EntityReferenceFormatterTest
- Tests the formatters functionality.
Namespace
Drupal\field\Tests\EntityReferenceCode
public function testEntityFormatter() {
/** @var \Drupal\Core\Render\RendererInterface $renderer */
$renderer = $this->container
->get('renderer');
$formatter = 'entity_reference_entity_view';
$build = $this
->buildRenderArray([
$this->referencedEntity,
$this->unsavedReferencedEntity,
], $formatter);
// Test the first field item.
$expected_rendered_name_field_1 = '
<div class="field field--name-name field--type-string field--label-hidden field__item">' . $this->referencedEntity
->label() . '</div>
';
$expected_rendered_body_field_1 = '
<div class="clearfix text-formatted field field--name-body field--type-text field--label-above">
<div class="field__label">Body</div>
<div class="field__item"><p>Hello, world!</p></div>
</div>
';
$renderer
->renderRoot($build[0]);
$this
->assertEqual($build[0]['#markup'], 'default | ' . $this->referencedEntity
->label() . $expected_rendered_name_field_1 . $expected_rendered_body_field_1, sprintf('The markup returned by the %s formatter is correct for an item with a saved entity.', $formatter));
$expected_cache_tags = Cache::mergeTags(\Drupal::entityManager()
->getViewBuilder($this->entityType)
->getCacheTags(), $this->referencedEntity
->getCacheTags());
$expected_cache_tags = Cache::mergeTags($expected_cache_tags, FilterFormat::load('full_html')
->getCacheTags());
$this
->assertEqual($build[0]['#cache']['tags'], $expected_cache_tags, format_string('The @formatter formatter has the expected cache tags.', array(
'@formatter' => $formatter,
)));
// Test the second field item.
$renderer
->renderRoot($build[1]);
$this
->assertEqual($build[1]['#markup'], $this->unsavedReferencedEntity
->label(), sprintf('The markup returned by the %s formatter is correct for an item with a unsaved entity.', $formatter));
}