class NodeLinksTest

Same name in this branch
  1. 11.x core/modules/node/tests/src/Functional/NodeLinksTest.php \Drupal\Tests\node\Functional\NodeLinksTest
Same name and namespace in other branches
  1. 10 core/modules/node/tests/src/Functional/NodeLinksTest.php \Drupal\Tests\node\Functional\NodeLinksTest
  2. 9 core/modules/node/tests/src/Functional/NodeLinksTest.php \Drupal\Tests\node\Functional\NodeLinksTest
  3. 8.9.x core/modules/node/tests/src/Functional/NodeLinksTest.php \Drupal\Tests\node\Functional\NodeLinksTest
  4. main core/modules/node/tests/src/Functional/NodeLinksTest.php \Drupal\Tests\node\Functional\NodeLinksTest
  5. main core/modules/node/tests/src/Kernel/NodeLinksTest.php \Drupal\Tests\node\Kernel\NodeLinksTest

Tests the output of node links (read more, add new comment, etc).

Attributes

#[Group('node')] #[RunTestsInSeparateProcesses]

Hierarchy

Expanded class hierarchy of NodeLinksTest

File

core/modules/node/tests/src/Kernel/NodeLinksTest.php, line 19

Namespace

Drupal\Tests\node\Kernel
View source
class NodeLinksTest extends KernelTestBase {
  use UserCreationTrait;
  use NodeCreationTrait;
  
  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'system',
    'user',
    'field',
    'datetime',
    'filter',
    'text',
    'node',
    'views',
  ];
  
  /**
   * {@inheritdoc}
   */
  protected function setUp() : void {
    parent::setUp();
    $this->installEntitySchema('user');
    $this->installEntitySchema('node');
    $this->installConfig([
      'filter',
    ]);
    $this->installConfig([
      'node',
    ]);
    $this->setUpCurrentUser(permissions: [
      'access content',
    ]);
    DateFormat::create([
      'id' => 'fallback',
      'label' => 'Fallback',
      'pattern' => 'Y-m-d',
    ])->save();
    $node_type = NodeType::create([
      'type' => 'article',
      'name' => 'Article',
    ]);
    $node_type->save();
  }
  
  /**
   * Tests that the links can be hidden in the view display settings.
   */
  public function testHideLinks() : void {
    $node = $this->createNode([
      'type' => 'article',
      'promote' => NodeInterface::PROMOTED,
    ]);
    // Links are displayed by default.
    $this->drupalGet('node');
    $this->assertSession()
      ->pageTextContains($node->getTitle());
    $this->assertSession()
      ->linkExists('Read more');
    // Hide links.
    \Drupal::service('entity_display.repository')->getViewDisplay('node', 'article', 'teaser')
      ->removeComponent('links')
      ->save();
    $this->drupalGet('node');
    $this->assertSession()
      ->pageTextContains($node->getTitle());
    $this->assertSession()
      ->linkNotExists('Read more');
  }

}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.