CommentInterfaceTest::testCommentNewCommentsIndicator

7 comment.test public CommentInterfaceTest::testCommentNewCommentsIndicator()
8 comment.test public CommentInterfaceTest::testCommentNewCommentsIndicator()

Tests new comment marker.

File

modules/comment/comment.test, line 421
Tests for comment.module.

Code

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));
}
Login or register to post comments