View source
<?php
namespace Drupal\Tests\aggregator\Functional;
use Drupal\Core\Entity\Entity\EntityViewDisplay;
use Drupal\node\Entity\Node;
class AggregatorDisplayConfigurableTest extends AggregatorTestBase {
protected $defaultTheme = 'classy';
protected function setUp() : void {
parent::setUp();
$this
->drupalPlaceBlock('page_title_block');
}
public function testFeedDisplayConfigurable() {
$display = EntityViewDisplay::load('aggregator_feed.aggregator_feed.summary');
$display
->setComponent('description', [
'region' => 'content',
])
->setComponent('items', [
'region' => 'hidden',
])
->save();
$feed = $this
->createFeed($this
->getRSS091Sample());
$feed
->refreshItems();
$assert = $this
->assertSession();
$this
->drupalGet('/aggregator/sources');
$assert
->elementTextContains('css', 'div.aggregator-feed > h2', $feed
->label());
$assert
->elementTextContains('css', 'div.feed-description', $feed
->getDescription());
$assert
->elementNotExists('css', '.field--name-title');
$assert
->elementNotExists('css', '.field--name-description');
\Drupal::service('module_installer')
->install([
'aggregator_display_configurable_test',
]);
$display
->setComponent('title', [
'type' => 'text_default',
'label' => 'above',
]);
$display
->setComponent('description', [
'type' => 'aggregator_xss',
'label' => 'hidden',
])
->save();
$this
->drupalGet('/aggregator/sources');
$assert
->elementTextContains('css', 'div.aggregator-feed > div.field--name-title > div.field__item', $feed
->label());
$assert
->elementExists('css', 'div.field--name-title > div.field__label');
$assert
->elementTextContains('css', 'div.field--name-description.field__item', $feed
->getDescription());
$display
->removeComponent('title')
->save();
$this
->drupalGet('/aggregator/sources');
$assert
->elementNotExists('css', 'div.aggregator-feed > div.field--name-title');
}
public function testItemDisplayConfigurable() {
$this
->createSampleNodes(1);
$item = Node::load(1);
$feed = $this
->createFeed();
$this
->updateFeedItems($feed);
$assert = $this
->assertSession();
$this
->drupalGet('/aggregator');
$assert
->elementTextContains('css', 'h3.feed-item-title', $item
->label());
$assert
->elementNotExists('css', '.field--name-title .field__item');
$assert
->elementNotExists('css', '.field--name-title .field__label');
\Drupal::service('module_installer')
->install([
'aggregator_display_configurable_test',
]);
$this
->drupalGet('/aggregator');
$assert
->elementNotExists('css', 'h3.feed-item-title');
$assert
->elementTextContains('css', 'div.field--name-title > div.field__item', $item
->label());
}
}