View source
<?php
namespace Drupal\aggregator\Tests;
use Drupal\aggregator\Entity\Feed;
use Drupal\aggregator\Entity\Item;
use Drupal\simpletest\KernelTestBase;
class AggregatorTitleTest extends KernelTestBase {
public static $modules = [
'file',
'field',
'options',
'aggregator',
];
protected $fieldName;
protected function setUp() {
parent::setUp();
$this
->installConfig([
'field',
]);
$this
->installEntitySchema('aggregator_feed');
$this
->installEntitySchema('aggregator_item');
$this->fieldName = 'title';
}
public function testStringFormatter() {
$aggregator_feed = Feed::create([
'title' => 'testing title',
'url' => 'http://www.example.com',
]);
$aggregator_feed
->save();
$aggregator_item = Item::create([
'title' => 'test title',
'fid' => $aggregator_feed
->id(),
'link' => 'http://www.example.com',
]);
$aggregator_item
->save();
$build = $aggregator_feed->{$this->fieldName}
->view([
'type' => 'aggregator_title',
'settings' => [
'display_as_link' => TRUE,
],
]);
$result = $this
->render($build);
$this
->assertTrue(strpos($result, 'testing title'));
$this
->assertTrue(strpos($result, 'href="' . $aggregator_feed
->getUrl()) . '"');
$build = $aggregator_feed->{$this->fieldName}
->view([
'type' => 'aggregator_title',
'settings' => [
'display_as_link' => FALSE,
],
]);
$result = $this
->render($build);
$this
->assertTrue(strpos($result, 'testing title') === 0);
$this
->assertTrue(strpos($result, $aggregator_feed
->getUrl()) === FALSE);
$build = $aggregator_item->{$this->fieldName}
->view([
'type' => 'aggregator_title',
'settings' => [
'display_as_link' => TRUE,
],
]);
$result = $this
->render($build);
$this
->assertTrue(strpos($result, 'test title'));
$this
->assertTrue(strpos($result, 'href="' . $aggregator_item
->getLink()) . '"');
$build = $aggregator_item->{$this->fieldName}
->view([
'type' => 'aggregator_title',
'settings' => [
'display_as_link' => FALSE,
],
]);
$result = $this
->render($build);
$this
->assertTrue(strpos($result, 'test title') === 0);
$this
->assertTrue(strpos($result, $aggregator_item
->getLink()) === FALSE);
}
}