CommentTestBase.php

Same filename in this branch
  1. 8.9.x core/modules/comment/src/Tests/CommentTestBase.php
  2. 8.9.x core/modules/comment/src/Tests/Views/CommentTestBase.php
  3. 8.9.x core/modules/comment/tests/src/Functional/CommentTestBase.php
Same filename in other branches
  1. 9 core/modules/comment/tests/src/Functional/CommentTestBase.php
  2. 9 core/modules/comment/tests/src/Functional/Views/CommentTestBase.php
  3. 10 core/modules/comment/tests/src/Functional/CommentTestBase.php
  4. 10 core/modules/comment/tests/src/Functional/Views/CommentTestBase.php
  5. 11.x core/modules/comment/tests/src/Functional/CommentTestBase.php
  6. 11.x core/modules/comment/tests/src/Functional/Views/CommentTestBase.php

Namespace

Drupal\Tests\comment\Functional\Views

File

core/modules/comment/tests/src/Functional/Views/CommentTestBase.php

View source
<?php

namespace Drupal\Tests\comment\Functional\Views;

use Drupal\comment\Tests\CommentTestTrait;
use Drupal\Tests\views\Functional\ViewTestBase;
use Drupal\views\Tests\ViewTestData;
use Drupal\comment\Entity\Comment;

/**
 * Provides setup and helper methods for comment views tests.
 */
abstract class CommentTestBase extends ViewTestBase {
    use CommentTestTrait;
    
    /**
     * Modules to install.
     *
     * @var array
     */
    public static $modules = [
        'node',
        'comment',
        'comment_test_views',
    ];
    
    /**
     * A normal user with permission to post comments (without approval).
     *
     * @var \Drupal\user\UserInterface
     */
    protected $account;
    
    /**
     * A second normal user that will author a node for $account to comment on.
     *
     * @var \Drupal\user\UserInterface
     */
    protected $account2;
    
    /**
     * Stores a node posted by the user created as $account.
     *
     * @var \Drupal\node\NodeInterface
     */
    protected $nodeUserPosted;
    
    /**
     * Stores a node posted by the user created as $account2.
     *
     * @var \Drupal\node\NodeInterface
     */
    protected $nodeUserCommented;
    
    /**
     * Stores a comment used by the tests.
     *
     * @var \Drupal\comment\Entity\Comment
     */
    protected $comment;
    protected function setUp($import_test_views = TRUE) {
        parent::setUp($import_test_views);
        ViewTestData::createTestViews(get_class($this), [
            'comment_test_views',
        ]);
        // Add two users, create a node with the user1 as author and another node
        // with user2 as author. For the second node add a comment from user1.
        $this->account = $this->drupalCreateUser([
            'skip comment approval',
        ]);
        $this->account2 = $this->drupalCreateUser();
        $this->drupalLogin($this->account);
        $this->drupalCreateContentType([
            'type' => 'page',
            'name' => t('Basic page'),
        ]);
        $this->addDefaultCommentField('node', 'page');
        $this->nodeUserPosted = $this->drupalCreateNode();
        $this->nodeUserCommented = $this->drupalCreateNode([
            'uid' => $this->account2
                ->id(),
        ]);
        $comment = [
            'uid' => $this->loggedInUser
                ->id(),
            'entity_id' => $this->nodeUserCommented
                ->id(),
            'entity_type' => 'node',
            'field_name' => 'comment',
            'subject' => 'How much wood would a woodchuck chuck',
            'cid' => '',
            'pid' => '',
            'mail' => 'someone@example.com',
        ];
        $this->comment = Comment::create($comment);
        $this->comment
            ->save();
    }

}

Classes

Title Deprecated Summary
CommentTestBase Provides setup and helper methods for comment views tests.

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