Update to drupal 8.0.0-rc1. For more information, see https://www.drupal.org/node/2582663
This commit is contained in:
parent
eb34d130a8
commit
f32e58e4b1
8476 changed files with 211648 additions and 170042 deletions
|
|
@ -61,6 +61,9 @@ class CommentFieldNameTest extends CommentTestBase {
|
|||
public function testCommentFieldName() {
|
||||
/** @var \Drupal\Core\Render\RendererInterface $renderer */
|
||||
$renderer = \Drupal::service('renderer');
|
||||
// Grant permission to properly check view access on render.
|
||||
user_role_grant_permissions(RoleInterface::ANONYMOUS_ID, ['access comments']);
|
||||
$this->container->get('account_switcher')->switchTo(new AnonymousUserSession());
|
||||
$view = Views::getView('test_comment_field_name');
|
||||
$this->executeView($view);
|
||||
|
||||
|
|
@ -79,14 +82,7 @@ class CommentFieldNameTest extends CommentTestBase {
|
|||
'comment_field_data_field_name' => 'field_name',
|
||||
];
|
||||
$this->assertIdenticalResultset($view, $expected_result, $column_map);
|
||||
// Test that no data can be rendered.
|
||||
$this->assertIdentical(FALSE, isset($view->field['field_name']));
|
||||
|
||||
// Grant permission to properly check view access on render.
|
||||
user_role_grant_permissions(RoleInterface::ANONYMOUS_ID, ['access comments']);
|
||||
$this->container->get('account_switcher')->switchTo(new AnonymousUserSession());
|
||||
$view = Views::getView('test_comment_field_name');
|
||||
$this->executeView($view);
|
||||
// Test that data rendered.
|
||||
$output = $renderer->executeInRenderContext(new RenderContext(), function () use ($view) {
|
||||
return $view->field['field_name']->advancedRender($view->result[0]);
|
||||
|
|
|
|||
180
core/modules/comment/src/Tests/Views/CommentLinksTest.php
Normal file
180
core/modules/comment/src/Tests/Views/CommentLinksTest.php
Normal file
|
|
@ -0,0 +1,180 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Contains \Drupal\comment\Tests\Views\CommentLinksTest.
|
||||
*/
|
||||
|
||||
namespace Drupal\comment\Tests\Views;
|
||||
|
||||
use Drupal\comment\CommentInterface;
|
||||
use Drupal\comment\CommentManagerInterface;
|
||||
use Drupal\Core\Session\AnonymousUserSession;
|
||||
use Drupal\Core\Url;
|
||||
use Drupal\entity_test\Entity\EntityTest;
|
||||
use Drupal\field\Entity\FieldConfig;
|
||||
use Drupal\field\Entity\FieldStorageConfig;
|
||||
use Drupal\views\Views;
|
||||
|
||||
/**
|
||||
* Tests the comment link field handlers.
|
||||
*
|
||||
* @group comment
|
||||
*/
|
||||
class CommentLinksTest extends CommentViewKernelTestBase {
|
||||
|
||||
/**
|
||||
* Views used by this test.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public static $testViews = ['test_comment'];
|
||||
|
||||
/**
|
||||
* Test the comment approve link.
|
||||
*/
|
||||
public function testLinkApprove() {
|
||||
|
||||
// Create an unapproved comment.
|
||||
$comment = $this->commentStorage->create([
|
||||
'uid' => $this->adminUser->id(),
|
||||
'entity_type' => 'entity_test',
|
||||
'comment_type' => 'entity_test',
|
||||
'status' => 0,
|
||||
]);
|
||||
$comment->save();
|
||||
|
||||
$view = Views::getView('test_comment');
|
||||
$view->setDisplay();
|
||||
|
||||
$view->displayHandlers->get('default')->overrideOption('fields', [
|
||||
'approve_comment' => [
|
||||
'table' => 'comment',
|
||||
'field' => 'approve_comment',
|
||||
'id' => 'approve_comment',
|
||||
'plugin_id' => 'comment_link_approve',
|
||||
],
|
||||
]);
|
||||
$view->save();
|
||||
|
||||
/* @var \Drupal\Core\Session\AccountSwitcherInterface $account_switcher */
|
||||
$account_switcher = \Drupal::service('account_switcher');
|
||||
$account_switcher->switchTo($this->adminUser);
|
||||
|
||||
$view->preview();
|
||||
|
||||
// Check if I can see the comment approve link on an unapproved comment.
|
||||
$approve_comment = $view->style_plugin->getField(0, 'approve_comment');
|
||||
$options = ['query' => ['destination' => '/']];
|
||||
$url = Url::fromRoute('comment.approve', ['comment' => $comment->id()], $options);
|
||||
$this->assertEqual(\Drupal::l('Approve', $url), (string) $approve_comment, 'Found a comment approve link for an unapproved comment.');
|
||||
|
||||
// Approve the comment.
|
||||
$comment->setPublished(CommentInterface::PUBLISHED);
|
||||
$comment->save();
|
||||
$view = Views::getView('test_comment');
|
||||
$view->preview();
|
||||
|
||||
// Check if I can see the comment approve link on an approved comment.
|
||||
$approve_comment = $view->style_plugin->getField(1, 'approve_comment');
|
||||
$this->assertFalse((string) $approve_comment, "Didn't find a comment approve link for an already approved comment.");
|
||||
|
||||
// Check if I can see the comment approve link on an approved comment as an
|
||||
// anonymous user.
|
||||
$account_switcher->switchTo(new AnonymousUserSession());
|
||||
// Set the comment as unpublished again.
|
||||
$comment->setPublished(CommentInterface::NOT_PUBLISHED);
|
||||
$comment->save();
|
||||
|
||||
$view = Views::getView('test_comment');
|
||||
$view->preview();
|
||||
$replyto_comment = $view->style_plugin->getField(0, 'approve_comment');
|
||||
$this->assertFalse((string) $replyto_comment, "I can't approve the comment as an anonymous user.");
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the comment reply link.
|
||||
*/
|
||||
public function testLinkReply() {
|
||||
$this->enableModules(['field', 'entity_test']);
|
||||
$this->installEntitySchema('entity_test');
|
||||
$this->installSchema('comment', ['comment_entity_statistics']);
|
||||
$this->installConfig(['field']);
|
||||
|
||||
$field_storage_comment = FieldStorageConfig::create([
|
||||
'field_name' => 'comment',
|
||||
'type' => 'comment',
|
||||
'entity_type' => 'entity_test',
|
||||
]);
|
||||
$field_storage_comment->save();
|
||||
// Create a comment field which allows threading.
|
||||
$field_comment = FieldConfig::create([
|
||||
'field_name' => 'comment',
|
||||
'entity_type' => 'entity_test',
|
||||
'bundle' => 'entity_test',
|
||||
'settings' => [
|
||||
'default_mode' => CommentManagerInterface::COMMENT_MODE_THREADED,
|
||||
],
|
||||
]);
|
||||
$field_comment->save();
|
||||
|
||||
$host = EntityTest::create(['name' => $this->randomString()]);
|
||||
$host->save();
|
||||
// Attach an unapproved comment to the test entity.
|
||||
$comment = $this->commentStorage->create([
|
||||
'uid' => $this->adminUser->id(),
|
||||
'entity_type' => 'entity_test',
|
||||
'entity_id' => $host->id(),
|
||||
'comment_type' => 'entity_test',
|
||||
'field_name' => $field_storage_comment->getName(),
|
||||
'status' => 0,
|
||||
]);
|
||||
$comment->save();
|
||||
|
||||
$view = Views::getView('test_comment');
|
||||
$view->setDisplay();
|
||||
|
||||
$view->displayHandlers->get('default')->overrideOption('fields', [
|
||||
'replyto_comment' => [
|
||||
'table' => 'comment',
|
||||
'field' => 'replyto_comment',
|
||||
'id' => 'replyto_comment',
|
||||
'plugin_id' => 'comment_link_reply',
|
||||
'entity_type' => 'comment',
|
||||
],
|
||||
]);
|
||||
$view->save();
|
||||
|
||||
/* @var \Drupal\Core\Session\AccountSwitcherInterface $account_switcher */
|
||||
$account_switcher = \Drupal::service('account_switcher');
|
||||
$account_switcher->switchTo($this->adminUser);
|
||||
$view->preview();
|
||||
|
||||
// Check if I can see the reply link on an unapproved comment.
|
||||
$replyto_comment = $view->style_plugin->getField(0, 'replyto_comment');
|
||||
$this->assertFalse((string) $replyto_comment, "I can't reply to an unapproved comment.");
|
||||
|
||||
// Approve the comment.
|
||||
$comment->setPublished(CommentInterface::PUBLISHED);
|
||||
$comment->save();
|
||||
$view = Views::getView('test_comment');
|
||||
$view->preview();
|
||||
|
||||
// Check if I can see the reply link on an approved comment.
|
||||
$replyto_comment = $view->style_plugin->getField(0, 'replyto_comment');
|
||||
$url = Url::fromRoute('comment.reply', [
|
||||
'entity_type' => 'entity_test',
|
||||
'entity' => $host->id(),
|
||||
'field_name' => 'comment',
|
||||
'pid' => $comment->id(),
|
||||
]);
|
||||
$this->assertEqual(\Drupal::l('Reply', $url), (string) $replyto_comment, 'Found the comment reply link as an admin user.');
|
||||
|
||||
// Check if I can see the reply link as an anonymous user.
|
||||
$account_switcher->switchTo(new AnonymousUserSession());
|
||||
$view = Views::getView('test_comment');
|
||||
$view->preview();
|
||||
$replyto_comment = $view->style_plugin->getField(0, 'replyto_comment');
|
||||
$this->assertFalse((string) $replyto_comment, "Didn't find the comment reply link as an anonymous user.");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Contains \Drupal\comment\Tests\Views\CommentViewKernelTestBase.
|
||||
*/
|
||||
|
||||
namespace Drupal\comment\Tests\Views;
|
||||
|
||||
use Drupal\user\Entity\Role;
|
||||
use Drupal\views\Tests\ViewKernelTestBase;
|
||||
use Drupal\views\Tests\ViewTestData;
|
||||
|
||||
/**
|
||||
* Provides a common test base for comment views tests.
|
||||
*/
|
||||
abstract class CommentViewKernelTestBase extends ViewKernelTestBase {
|
||||
|
||||
/**
|
||||
* Modules to enable.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public static $modules = ['comment_test_views', 'user', 'comment'];
|
||||
|
||||
/**
|
||||
* Admin user.
|
||||
*
|
||||
* @var \Drupal\user\UserInterface
|
||||
*/
|
||||
protected $adminUser;
|
||||
|
||||
/**
|
||||
* The entity storage for comments.
|
||||
*
|
||||
* @var \Drupal\comment\CommentStorageInterface
|
||||
*/
|
||||
protected $commentStorage;
|
||||
|
||||
/**
|
||||
* The entity storage for users.
|
||||
*
|
||||
* @var \Drupal\user\UserStorageInterface
|
||||
*/
|
||||
protected $userStorage;
|
||||
|
||||
protected function setUp($import_test_views = TRUE) {
|
||||
parent::setUp($import_test_views);
|
||||
|
||||
ViewTestData::createTestViews(get_class($this), ['comment_test_views']);
|
||||
|
||||
$this->installEntitySchema('user');
|
||||
$this->installEntitySchema('comment');
|
||||
$this->installConfig(['user']);
|
||||
|
||||
$entity_manager = $this->container->get('entity.manager');
|
||||
$this->commentStorage = $entity_manager->getStorage('comment');
|
||||
$this->userStorage = $entity_manager->getStorage('user');
|
||||
|
||||
// Insert a row for the anonymous user.
|
||||
$this->userStorage
|
||||
->create([
|
||||
'uid' => 0,
|
||||
'name' => '',
|
||||
'status' => 0,
|
||||
])
|
||||
->save();
|
||||
|
||||
$admin_role = Role::create(['id' => 'admin']);
|
||||
$admin_role->grantPermission('administer comments');
|
||||
$admin_role->save();
|
||||
|
||||
/* @var \Drupal\user\RoleInterface $anonymous_role */
|
||||
$anonymous_role = Role::load(Role::ANONYMOUS_ID);
|
||||
$anonymous_role->grantPermission('access comments');
|
||||
$anonymous_role->save();
|
||||
|
||||
$this->adminUser = $this->userStorage->create(['name' => $this->randomMachineName()]);
|
||||
$this->adminUser->addRole('admin');
|
||||
$this->adminUser->save();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in a new issue