summaryrefslogtreecommitdiff
path: root/modules/comment/comment.test
diff options
context:
space:
mode:
Diffstat (limited to 'modules/comment/comment.test')
-rw-r--r--modules/comment/comment.test65
1 files changed, 65 insertions, 0 deletions
diff --git a/modules/comment/comment.test b/modules/comment/comment.test
index 770e01d4a..c9478f491 100644
--- a/modules/comment/comment.test
+++ b/modules/comment/comment.test
@@ -251,6 +251,56 @@ class CommentHelperCase extends DrupalWebTestCase {
return $match[2];
}
+
+ /**
+ * Tests new comment marker.
+ */
+ public function testCommentNewCommentsIndicator() {
+ // Test if the right links are displayed when no comment is present for the
+ // node.
+ $this->drupalLogin($this->admin_user);
+ $this->node = $this->drupalCreateNode(array('type' => 'article', 'promote' => 1, 'comment' => COMMENT_NODE_OPEN));
+ $this->drupalGet('node');
+ $this->assertNoLink(t('@count comments', array('@count' => 0)));
+ $this->assertNoLink(t('@count new comments', array('@count' => 0)));
+ $this->assertLink(t('Read more'));
+ $count = $this->xpath('//div[@id=:id]/div[@class=:class]/ul/li', array(':id' => 'node-' . $this->node->nid, ':class' => 'link-wrapper'));
+ $this->assertTrue(count($count) == 1, t('One child found'));
+
+ // Create a new comment. This helper function may be run with different
+ // comment settings so use comment_save() to avoid complex setup.
+ $comment = (object) array(
+ 'cid' => NULL,
+ 'nid' => $this->node->nid,
+ 'node_type' => $this->node->type,
+ 'pid' => 0,
+ 'uid' => $this->loggedInUser->uid,
+ 'status' => COMMENT_PUBLISHED,
+ 'subject' => $this->randomName(),
+ 'hostname' => ip_address(),
+ 'language' => LANGUAGE_NONE,
+ 'comment_body' => array(LANGUAGE_NONE => array($this->randomName())),
+ );
+ comment_save($comment);
+ $this->drupalLogout();
+
+ // Log in with 'web user' and check comment links.
+ $this->drupalLogin($this->web_user);
+ $this->drupalGet('node');
+ $this->assertLink(t('1 new comment'));
+ $this->clickLink(t('1 new comment'));
+ $this->assertRaw('<a id="new"></a>', t('Found "new" marker.'));
+ $this->assertTrue($this->xpath('//a[@id=:new]/following-sibling::a[1][@id=:comment_id]', array(':new' => 'new', ':comment_id' => 'comment-1')), t('The "new" anchor is positioned at the right comment.'));
+
+ // Test if "new comment" link is correctly removed.
+ $this->drupalGet('node');
+ $this->assertLink(t('1 comment'));
+ $this->assertLink(t('Read more'));
+ $this->assertNoLink(t('1 new comment'));
+ $this->assertNoLink(t('@count new comments', array('@count' => 0)));
+ $count = $this->xpath('//div[@id=:id]/div[@class=:class]/ul/li', array(':id' => 'node-' . $this->node->nid, ':class' => 'link-wrapper'));
+ $this->assertTrue(count($count) == 2, print_r($count, TRUE));
+ }
}
class CommentInterfaceTest extends CommentHelperCase {
@@ -1912,4 +1962,19 @@ class CommentFieldsTest extends CommentHelperCase {
$this->postComment($book_node, $this->randomName(), $this->randomName());
$this->postComment($poll_node, $this->randomName(), $this->randomName());
}
+
+ /**
+ * Test that comment module works correctly with plain text format.
+ */
+ function testCommentFormat() {
+ // Disable text processing for comments.
+ $this->drupalLogin($this->admin_user);
+ $edit = array('instance[settings][text_processing]' => 0);
+ $this->drupalPost('admin/structure/types/manage/article/comment/fields/comment_body', $edit, t('Save settings'));
+
+ // Post a comment without an explicit subject.
+ $this->drupalLogin($this->web_user);
+ $edit = array('comment_body[und][0][value]' => $this->randomName(8));
+ $this->drupalPost('node/' . $this->node->nid, $edit, t('Save'));
+ }
}