X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fcore%2Fmodules%2Fcomment%2Fsrc%2FTests%2FCommentAnonymousTest.php;fp=web%2Fcore%2Fmodules%2Fcomment%2Fsrc%2FTests%2FCommentAnonymousTest.php;h=0000000000000000000000000000000000000000;hp=d60c0739f3aa46a3533951f13b0f66d3a753915c;hb=9917807b03b64faf00f6a1f29dcb6eafc454efa5;hpb=aea91e65e895364e460983b890e295aa5d5540a5 diff --git a/web/core/modules/comment/src/Tests/CommentAnonymousTest.php b/web/core/modules/comment/src/Tests/CommentAnonymousTest.php deleted file mode 100644 index d60c0739f..000000000 --- a/web/core/modules/comment/src/Tests/CommentAnonymousTest.php +++ /dev/null @@ -1,203 +0,0 @@ -drupalLogin($this->adminUser); - $this->setCommentAnonymous(COMMENT_ANONYMOUS_MAYNOT_CONTACT); - $this->drupalLogout(); - - // Preview comments (with `skip comment approval` permission). - $edit = []; - $title = 'comment title with skip comment approval'; - $body = 'comment body with skip comment approval'; - $edit['subject[0][value]'] = $title; - $edit['comment_body[0][value]'] = $body; - $this->drupalPostForm($this->node->urlInfo(), $edit, t('Preview')); - // Cannot use assertRaw here since both title and body are in the form. - $preview = (string) $this->cssSelect('.preview')[0]->asXML(); - $this->assertTrue(strpos($preview, $title) !== FALSE, 'Anonymous user can preview comment title.'); - $this->assertTrue(strpos($preview, $body) !== FALSE, 'Anonymous user can preview comment body.'); - - // Preview comments (without `skip comment approval` permission). - user_role_revoke_permissions(RoleInterface::ANONYMOUS_ID, ['skip comment approval']); - $edit = []; - $title = 'comment title without skip comment approval'; - $body = 'comment body without skip comment approval'; - $edit['subject[0][value]'] = $title; - $edit['comment_body[0][value]'] = $body; - $this->drupalPostForm($this->node->urlInfo(), $edit, t('Preview')); - // Cannot use assertRaw here since both title and body are in the form. - $preview = (string) $this->cssSelect('.preview')[0]->asXML(); - $this->assertTrue(strpos($preview, $title) !== FALSE, 'Anonymous user can preview comment title.'); - $this->assertTrue(strpos($preview, $body) !== FALSE, 'Anonymous user can preview comment body.'); - user_role_grant_permissions(RoleInterface::ANONYMOUS_ID, ['skip comment approval']); - - // Post anonymous comment without contact info. - $anonymous_comment1 = $this->postComment($this->node, $this->randomMachineName(), $this->randomMachineName()); - $this->assertTrue($this->commentExists($anonymous_comment1), 'Anonymous comment without contact info found.'); - - // Ensure anonymous users cannot post in the name of registered users. - $edit = [ - 'name' => $this->adminUser->getUsername(), - 'comment_body[0][value]' => $this->randomMachineName(), - ]; - $this->drupalPostForm('comment/reply/node/' . $this->node->id() . '/comment', $edit, t('Save')); - $this->assertRaw(t('The name you used (%name) belongs to a registered user.', [ - '%name' => $this->adminUser->getUsername(), - ])); - - // Allow contact info. - $this->drupalLogin($this->adminUser); - $this->setCommentAnonymous(COMMENT_ANONYMOUS_MAY_CONTACT); - - // Attempt to edit anonymous comment. - $this->drupalGet('comment/' . $anonymous_comment1->id() . '/edit'); - $edited_comment = $this->postComment(NULL, $this->randomMachineName(), $this->randomMachineName()); - $this->assertTrue($this->commentExists($edited_comment, FALSE), 'Modified reply found.'); - $this->drupalLogout(); - - // Post anonymous comment with contact info (optional). - $this->drupalGet('comment/reply/node/' . $this->node->id() . '/comment'); - $this->assertTrue($this->commentContactInfoAvailable(), 'Contact information available.'); - - // Check the presence of expected cache tags. - $this->assertCacheTag('config:field.field.node.article.comment'); - $this->assertCacheTag('config:user.settings'); - - $anonymous_comment2 = $this->postComment($this->node, $this->randomMachineName(), $this->randomMachineName()); - $this->assertTrue($this->commentExists($anonymous_comment2), 'Anonymous comment with contact info (optional) found.'); - - // Ensure anonymous users cannot post in the name of registered users. - $edit = [ - 'name' => $this->adminUser->getUsername(), - 'mail' => $this->randomMachineName() . '@example.com', - 'subject[0][value]' => $this->randomMachineName(), - 'comment_body[0][value]' => $this->randomMachineName(), - ]; - $this->drupalPostForm('comment/reply/node/' . $this->node->id() . '/comment', $edit, t('Save')); - $this->assertRaw(t('The name you used (%name) belongs to a registered user.', [ - '%name' => $this->adminUser->getUsername(), - ])); - - // Require contact info. - $this->drupalLogin($this->adminUser); - $this->setCommentAnonymous(COMMENT_ANONYMOUS_MUST_CONTACT); - $this->drupalLogout(); - - // Try to post comment with contact info (required). - $this->drupalGet('comment/reply/node/' . $this->node->id() . '/comment'); - $this->assertTrue($this->commentContactInfoAvailable(), 'Contact information available.'); - - $anonymous_comment3 = $this->postComment($this->node, $this->randomMachineName(), $this->randomMachineName(), TRUE); - // Name should have 'Anonymous' for value by default. - $this->assertText(t('Email field is required.'), 'Email required.'); - $this->assertFalse($this->commentExists($anonymous_comment3), 'Anonymous comment with contact info (required) not found.'); - - // Post comment with contact info (required). - $author_name = $this->randomMachineName(); - $author_mail = $this->randomMachineName() . '@example.com'; - $anonymous_comment3 = $this->postComment($this->node, $this->randomMachineName(), $this->randomMachineName(), ['name' => $author_name, 'mail' => $author_mail]); - $this->assertTrue($this->commentExists($anonymous_comment3), 'Anonymous comment with contact info (required) found.'); - - // Make sure the user data appears correctly when editing the comment. - $this->drupalLogin($this->adminUser); - $this->drupalGet('comment/' . $anonymous_comment3->id() . '/edit'); - $this->assertRaw($author_name, "The anonymous user's name is correct when editing the comment."); - $this->assertFieldByName('uid', '', 'The author field is empty (i.e. anonymous) when editing the comment.'); - $this->assertRaw($author_mail, "The anonymous user's email address is correct when editing the comment."); - - // Unpublish comment. - $this->performCommentOperation($anonymous_comment3, 'unpublish'); - - $this->drupalGet('admin/content/comment/approval'); - $this->assertRaw('comments[' . $anonymous_comment3->id() . ']', 'Comment was unpublished.'); - - // Publish comment. - $this->performCommentOperation($anonymous_comment3, 'publish', TRUE); - - $this->drupalGet('admin/content/comment'); - $this->assertRaw('comments[' . $anonymous_comment3->id() . ']', 'Comment was published.'); - - // Delete comment. - $this->performCommentOperation($anonymous_comment3, 'delete'); - - $this->drupalGet('admin/content/comment'); - $this->assertNoRaw('comments[' . $anonymous_comment3->id() . ']', 'Comment was deleted.'); - $this->drupalLogout(); - - // Comment 3 was deleted. - $this->drupalGet('comment/reply/node/' . $this->node->id() . '/comment/' . $anonymous_comment3->id()); - $this->assertResponse(403); - - // Reset. - user_role_change_permissions(RoleInterface::ANONYMOUS_ID, [ - 'access comments' => FALSE, - 'post comments' => FALSE, - 'skip comment approval' => FALSE, - ]); - - // Attempt to view comments while disallowed. - // NOTE: if authenticated user has permission to post comments, then a - // "Login or register to post comments" type link may be shown. - $this->drupalGet('node/' . $this->node->id()); - $this->assertNoPattern('@]*>Comments@', 'Comments were not displayed.'); - $this->assertNoLink('Add new comment', 'Link to add comment was found.'); - - // Attempt to view node-comment form while disallowed. - $this->drupalGet('comment/reply/node/' . $this->node->id() . '/comment'); - $this->assertResponse(403); - - user_role_change_permissions(RoleInterface::ANONYMOUS_ID, [ - 'access comments' => TRUE, - 'post comments' => FALSE, - 'skip comment approval' => FALSE, - ]); - $this->drupalGet('node/' . $this->node->id()); - $this->assertPattern('@]*>Comments@', 'Comments were displayed.'); - $this->assertLink('Log in', 1, 'Link to login was found.'); - $this->assertLink('register', 1, 'Link to register was found.'); - - user_role_change_permissions(RoleInterface::ANONYMOUS_ID, [ - 'access comments' => FALSE, - 'post comments' => TRUE, - 'skip comment approval' => TRUE, - ]); - $this->drupalGet('node/' . $this->node->id()); - $this->assertNoPattern('@]*>Comments@', 'Comments were not displayed.'); - $this->assertFieldByName('subject[0][value]', '', 'Subject field found.'); - $this->assertFieldByName('comment_body[0][value]', '', 'Comment field found.'); - - $this->drupalGet('comment/reply/node/' . $this->node->id() . '/comment/' . $anonymous_comment2->id()); - $this->assertResponse(403); - } - -}