View source
<?php
namespace Drupal\Tests\feeds\Functional\Plugin\Field\FieldFormatter;
class FeedsItemTargetLabelFormatterTest extends FeedsItemFormatterTestBase {
protected function setUp() {
parent::setUp();
$display = $this->container
->get('entity_display.repository')
->getViewDisplay('node', 'article', 'default')
->setComponent('feeds_item', [
'type' => 'feeds_item_target_label',
'settings' => [
'link' => FALSE,
],
'weight' => 1,
])
->save();
}
public function testFeedsItemTargetLabelFormatterPlain() {
$feed = $this
->createCsvFeed();
$feed = $this
->addFieldToFeed($feed);
$article = $this
->createNodeWithFeedsItem($feed);
$display = $this->container
->get('entity_display.repository')
->getViewDisplay($article
->getEntityTypeId(), $article
->bundle(), 'default');
$content = $display
->build($article);
$rendered_content = $this->container
->get('renderer')
->renderRoot($content);
$this
->htmlOutput($rendered_content);
$this
->assertStringContainsString('<div>Feeds item</div>', (string) $rendered_content);
$this
->assertStringContainsString('<div>' . $feed
->label() . '</div>', (string) $rendered_content);
}
public function testFeedsItemTargetLabelFormatterLink() {
$renderer = $this->container
->get('renderer');
$display = $this->container
->get('entity_display.repository')
->getViewDisplay('node', 'article', 'default')
->setComponent('feeds_item', [
'type' => 'feeds_item_target_label',
'settings' => [
'link' => TRUE,
],
'weight' => 1,
])
->save();
$feed = $this
->createCsvFeed();
$feed = $this
->addFieldToFeed($feed);
$expected = [
'#type' => 'link',
'#title' => $feed
->label(),
'#url' => $feed
->toUrl(),
'#options' => $feed
->toUrl()
->getOptions(),
'#cache' => [
'contexts' => [
'user.permissions',
],
'tags' => $feed
->getCacheTags(),
],
];
$article = $this
->createNodeWithFeedsItem($feed);
$display = $this->container
->get('entity_display.repository')
->getViewDisplay($article
->getEntityTypeId(), $article
->bundle(), 'default');
$content = $display
->build($article);
$rendered_content = $renderer
->renderRoot($content);
$this
->htmlOutput($rendered_content);
$this
->assertStringContainsString('<div>' . (string) $renderer
->renderRoot($expected), (string) $rendered_content);
}
}