diff options
Diffstat (limited to 'modules/comment/comment.test')
-rw-r--r-- | modules/comment/comment.test | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/modules/comment/comment.test b/modules/comment/comment.test index 60c4b3142..6fd91907f 100644 --- a/modules/comment/comment.test +++ b/modules/comment/comment.test @@ -763,6 +763,85 @@ class CommentPagerTest extends CommentHelperCase { return $this->assertIdentical($expected_cids, $result_order, t('Comment order: expected @expected, returned @returned.', array('@expected' => implode(',', $expected_cids), '@returned' => implode(',', $result_order)))); } + + /** + * Test comment_new_page_count(). + */ + function testCommentNewPageIndicator() { + $this->drupalLogin($this->admin_user); + + // Set comment variables. + $this->setCommentForm(TRUE); + $this->setCommentSubject(TRUE); + $this->setCommentPreview(FALSE); + + // Set comments to one per page so that we are able to test paging without + // needing to insert large numbers of comments. + $this->setCommentsPerPage(1); + + // Create a node and three comments. + $node = $this->drupalCreateNode(array('type' => 'article', 'promote' => 1)); + $comments = array(); + $comments[] = $this->postComment($node, $this->randomName(), $this->randomName(), TRUE); + $comments[] = $this->postComment($node, $this->randomName(), $this->randomName(), TRUE); + $comments[] = $this->postComment($node, $this->randomName(), $this->randomName(), TRUE); + + // Post a reply to the second comment. + $this->drupalGet('comment/reply/' . $node->nid . '/' . $comments[1]->id); + $comments[] = $this->postComment(NULL, $this->randomName(), $this->randomName(), TRUE); + + // Post a reply to the first comment. + $this->drupalGet('comment/reply/' . $node->nid . '/' . $comments[0]->id); + $comments[] = $this->postComment(NULL, $this->randomName(), $this->randomName(), TRUE); + + // Post a reply to the last comment. + $this->drupalGet('comment/reply/' . $node->nid . '/' . $comments[2]->id); + $comments[] = $this->postComment(NULL, $this->randomName(), $this->randomName(), TRUE); + + // At this point, the comment tree is: + // - 0 + // - 4 + // - 1 + // - 3 + // - 2 + // - 5 + + $this->setCommentSettings('comment_default_mode', COMMENT_MODE_FLAT, t('Comment paging changed.')); + + $expected_pages = array( + 1 => 5, // Page of comment 5 + 2 => 4, // Page of comment 4 + 3 => 3, // Page of comment 3 + 4 => 2, // Page of comment 2 + 5 => 1, // Page of comment 1 + 6 => 0, // Page of comment 0 + ); + + $node = node_load($node->nid); + foreach ($expected_pages as $new_replies => $expected_page) { + $returned = comment_new_page_count($node->comment_count, $new_replies, $node); + $returned_page = is_array($returned) ? $returned['page'] : 0; + $this->assertIdentical($expected_page, $returned_page, t('Flat mode, @new replies: expected page @expected, returned page @returned.', array('@new' => $new_replies, '@expected' => $expected_page, '@returned' => $returned_page))); + } + + $this->setCommentSettings('comment_default_mode', COMMENT_MODE_THREADED, t('Switched to threaded mode.')); + + $expected_pages = array( + 1 => 5, // Page of comment 5 + 2 => 1, // Page of comment 4 + 3 => 1, // Page of comment 4 + 4 => 1, // Page of comment 4 + 5 => 1, // Page of comment 4 + 6 => 0, // Page of comment 0 + ); + + $node = node_load($node->nid); + foreach ($expected_pages as $new_replies => $expected_page) { + $returned = comment_new_page_count($node->comment_count, $new_replies, $node); + $returned_page = is_array($returned) ? $returned['page'] : 0; + $this->assertEqual($expected_page, $returned_page, t('Threaded mode, @new replies: expected page @expected, returned page @returned.', array('@new' => $new_replies, '@expected' => $expected_page, '@returned' => $returned_page))); + } + } } class CommentApprovalTest extends CommentHelperCase { |