You are here

protected function DefaultViewRecentCommentsTest::setUp in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/comment/tests/src/Functional/Views/DefaultViewRecentCommentsTest.php \Drupal\Tests\comment\Functional\Views\DefaultViewRecentCommentsTest::setUp()

Overrides ViewTestBase::setUp

File

core/modules/comment/tests/src/Functional/Views/DefaultViewRecentCommentsTest.php, line 68

Class

DefaultViewRecentCommentsTest
Tests results for the Recent Comments view shipped with the module.

Namespace

Drupal\Tests\comment\Functional\Views

Code

protected function setUp($import_test_views = TRUE) : void {
  parent::setUp($import_test_views);

  // Create a new content type
  $content_type = $this
    ->drupalCreateContentType();

  // Add a node of the new content type.
  $node_data = [
    'type' => $content_type
      ->id(),
  ];
  $this
    ->addDefaultCommentField('node', $content_type
    ->id());
  $this->node = $this
    ->drupalCreateNode($node_data);

  // Force a flush of the in-memory storage.
  $this->container
    ->get('views.views_data')
    ->clear();

  // Create some comments and attach them to the created node.
  for ($i = 0; $i < $this->defaultDisplayResults; $i++) {

    /** @var \Drupal\comment\CommentInterface $comment */
    $comment = Comment::create([
      'status' => CommentInterface::PUBLISHED,
      'field_name' => 'comment',
      'entity_type' => 'node',
      'entity_id' => $this->node
        ->id(),
    ]);
    $comment
      ->setOwnerId(0);
    $comment
      ->setSubject('Test comment ' . $i);
    $comment->comment_body->value = 'Test body ' . $i;
    $comment->comment_body->format = 'full_html';

    // Ensure comments are sorted in ascending order.
    $time = REQUEST_TIME + ($this->defaultDisplayResults - $i);
    $comment
      ->setCreatedTime($time);
    $comment->changed->value = $time;
    $comment
      ->save();
  }

  // Store all the nodes just created to access their properties on the tests.
  $this->commentsCreated = Comment::loadMultiple();

  // Sort created comments in descending order.
  ksort($this->commentsCreated, SORT_NUMERIC);
}