Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Drupal\Tests\comment\Functional;
|
Chris@0
|
4
|
Chris@0
|
5 use Drupal\comment\Tests\CommentTestTrait;
|
Chris@0
|
6 use Drupal\node\Entity\NodeType;
|
Chris@0
|
7 use Drupal\Tests\BrowserTestBase;
|
Chris@0
|
8
|
Chris@0
|
9 /**
|
Chris@0
|
10 * Tests comment status field access.
|
Chris@0
|
11 *
|
Chris@0
|
12 * @group comment
|
Chris@0
|
13 */
|
Chris@0
|
14 class CommentStatusFieldAccessTest extends BrowserTestBase {
|
Chris@0
|
15
|
Chris@0
|
16 use CommentTestTrait;
|
Chris@0
|
17
|
Chris@0
|
18 /**
|
Chris@0
|
19 * {@inheritdoc}
|
Chris@0
|
20 */
|
Chris@0
|
21 public $profile = 'testing';
|
Chris@0
|
22
|
Chris@0
|
23 /**
|
Chris@0
|
24 * Comment admin.
|
Chris@0
|
25 *
|
Chris@0
|
26 * @var \Drupal\user\UserInterface
|
Chris@0
|
27 */
|
Chris@0
|
28 protected $commentAdmin;
|
Chris@0
|
29
|
Chris@0
|
30 /**
|
Chris@0
|
31 * Node author.
|
Chris@0
|
32 *
|
Chris@0
|
33 * @var \Drupal\user\UserInterface
|
Chris@0
|
34 */
|
Chris@0
|
35 protected $nodeAuthor;
|
Chris@0
|
36
|
Chris@0
|
37 /**
|
Chris@0
|
38 * {@inheritdoc}
|
Chris@0
|
39 */
|
Chris@0
|
40 public static $modules = [
|
Chris@0
|
41 'node',
|
Chris@0
|
42 'comment',
|
Chris@0
|
43 'user',
|
Chris@0
|
44 'system',
|
Chris@0
|
45 'text',
|
Chris@0
|
46 ];
|
Chris@0
|
47
|
Chris@0
|
48 /**
|
Chris@0
|
49 * {@inheritdoc}
|
Chris@0
|
50 */
|
Chris@0
|
51 protected function setUp() {
|
Chris@0
|
52 parent::setUp();
|
Chris@0
|
53 $node_type = NodeType::create([
|
Chris@0
|
54 'type' => 'article',
|
Chris@0
|
55 'name' => t('Article'),
|
Chris@0
|
56 ]);
|
Chris@0
|
57 $node_type->save();
|
Chris@0
|
58 $this->nodeAuthor = $this->drupalCreateUser([
|
Chris@0
|
59 'create article content',
|
Chris@0
|
60 'skip comment approval',
|
Chris@0
|
61 'post comments',
|
Chris@0
|
62 'edit own comments',
|
Chris@0
|
63 'access comments',
|
Chris@0
|
64 'administer nodes',
|
Chris@0
|
65 ]);
|
Chris@0
|
66 $this->commentAdmin = $this->drupalCreateUser([
|
Chris@0
|
67 'administer comments',
|
Chris@0
|
68 'create article content',
|
Chris@0
|
69 'edit own comments',
|
Chris@0
|
70 'skip comment approval',
|
Chris@0
|
71 'post comments',
|
Chris@0
|
72 'access comments',
|
Chris@0
|
73 'administer nodes',
|
Chris@0
|
74 ]);
|
Chris@0
|
75 $this->addDefaultCommentField('node', 'article');
|
Chris@0
|
76 }
|
Chris@0
|
77
|
Chris@0
|
78 /**
|
Chris@0
|
79 * Tests comment status field access.
|
Chris@0
|
80 */
|
Chris@0
|
81 public function testCommentStatusFieldAccessStatus() {
|
Chris@0
|
82 $this->drupalLogin($this->nodeAuthor);
|
Chris@0
|
83 $this->drupalGet('node/add/article');
|
Chris@0
|
84 $assert = $this->assertSession();
|
Chris@0
|
85 $assert->fieldNotExists('comment[0][status]');
|
Chris@0
|
86 $this->submitForm([
|
Chris@0
|
87 'title[0][value]' => 'Node 1',
|
Chris@0
|
88 ], t('Save'));
|
Chris@0
|
89 $assert->fieldExists('subject[0][value]');
|
Chris@0
|
90 $this->drupalLogin($this->commentAdmin);
|
Chris@0
|
91 $this->drupalGet('node/add/article');
|
Chris@0
|
92 $assert->fieldExists('comment[0][status]');
|
Chris@0
|
93 $this->submitForm([
|
Chris@0
|
94 'title[0][value]' => 'Node 2',
|
Chris@0
|
95 ], t('Save'));
|
Chris@0
|
96 $assert->fieldExists('subject[0][value]');
|
Chris@0
|
97 }
|
Chris@0
|
98
|
Chris@0
|
99 }
|