multiversion-8.x-1.0-beta34/tests/src/Functional/CommentStatisticsTest.php

tests/src/Functional/CommentStatisticsTest.php
<?php

namespace Drupal\Tests\multiversion\Functional;

use Drupal\comment\Entity\Comment;
use Drupal\node\Entity\Node;

/**
 * Tests comment statistics.
 *
 * @group multiversion
 */
class CommentStatisticsTest extends MultiversionFunctionalTestBase {

  /**
   * The profile to install as a basis for testing.
   *
   * @var string
   */
  protected $profile = 'standard';

  /**
   * Modules to enable.
   *
   * @var array
   */
  protected static $modules = ['multiversion', 'comment', 'node'];

  /**
   * A test node to which comments will be posted.
   *
   * @var \Drupal\node\NodeInterface
   */
  protected $node;

  /**
   * {@inheritdoc}
   */
  protected function setUp() {
    parent::setUp();

    $this->adminUser = $this->drupalCreateUser([
      'administer content types',
      'administer blocks',
      'administer comments',
      'administer comment types',
      'post comments',
      'create article content',
      'access administration pages',
      'access comments',
      'access content',
    ]);
    $this->drupalLogin($this->adminUser);
    $this->drupalPlaceBlock('local_tasks_block');

    $this->node = Node::create([
      'type' => 'article',
      'title' => 'New node',
      'promote' => 1,
      'uid' => $this->adminUser->id()
    ]);
    $this->node->save();
  }

  /**
   * Tests the node comment statistics.
   */
  function testCommentNodeCommentStatistics() {
    $node_storage = $this->container->get('entity.manager')->getStorage('node');
    $this->drupalGet('<front>');
    $this->assertNoLink(t('1 comment'));
    $this->assertEqual($this->node->get('comment')->comment_count, 0, 'The number of comments for the node is correct (0 comments)');

    // Test comment statistic when creating comments.
    $comment1 = Comment::create([
      'entity_type' => 'node',
      'field_name' => 'comment',
      'subject' => 'How much wood would a woodchuck chuck',
      'comment_body' => $this->randomMachineName(128),
      'entity_id' => $this->node->id(),
    ]);
    $comment1->save();
    $node_storage->resetCache([$this->node->id()]);
    $node = $node_storage->load($this->node->id());
    $this->assertEqual($node->get('comment')->comment_count, 1, 'The number of comments for the node is correct (1 comment)');
    $this->drupalGet('<front>');
    $this->assertLink(t('1 comment'));
    $comment2 = Comment::create([
      'entity_type' => 'node',
      'field_name' => 'comment',
      'subject' => 'A big black bug bit a big black dog',
      'comment_body' => $this->randomMachineName(128),
      'entity_id' => $this->node->id(),
    ]);
    $comment2->save();
    $comment3 = Comment::create([
      'entity_type' => 'node',
      'field_name' => 'comment',
      'subject' => 'How much pot, could a pot roast roast',
      'comment_body' => $this->randomMachineName(128),
      'entity_id' => $this->node->id(),
    ]);
    $comment3->save();
    $node_storage->resetCache([$this->node->id()]);
    $node = $node_storage->load($this->node->id());
    $this->assertEqual($node->get('comment')->comment_count, 3, 'The number of comments for the node is correct (3 comments)');
    $this->drupalGet('<front>');
    $this->assertLink(t('3 comments'));

    // Test comment statistic when deleting comments.
    $comment1->delete();
    $comment2->delete();
    $node_storage->resetCache([$this->node->id()]);
    $node = $node_storage->load($this->node->id());
    $this->assertEqual($node->get('comment')->comment_count, 1, 'The number of comments for the node is correct (1 comment)');
    $this->drupalGet('<front>');
    $this->assertLink(t('1 comment'));

    $comment3->delete();
    $node_storage->resetCache([$this->node->id()]);
    $node = $node_storage->load($this->node->id());
    $this->assertEqual($node->get('comment')->comment_count, 0, 'The number of comments for the node is correct (0 comments)');
    $this->drupalGet('<front>');
    $this->assertNoLink(t('1 comment'));
    $this->assertNoLink(t('comments'));
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc