#886752 by jhodgdon: Fixed SQL error on PostgreSQL in comment.module
parent
9ada5dec79
commit
5baaa76b9a
|
@ -831,7 +831,8 @@ function comment_get_thread($node, $mode, $comments_per_page) {
|
|||
// See comment above. Analysis reveals that this doesn't cost too
|
||||
// much. It scales much much better than having the whole comment
|
||||
// structure.
|
||||
$query->orderBy('SUBSTRING(c.thread, 1, (LENGTH(c.thread) - 1))', 'ASC');
|
||||
$query->addExpression('SUBSTRING(c.thread, 1, (LENGTH(c.thread) - 1))', 'torder');
|
||||
$query->orderBy('torder', 'ASC');
|
||||
}
|
||||
|
||||
$query->setCountQuery($count_query);
|
||||
|
|
|
@ -956,6 +956,75 @@ class CommentPagerTest extends CommentHelperCase {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests comments with node access.
|
||||
*
|
||||
* See http://drupal.org/node/886752 -- verify there is no PostgreSQL error when
|
||||
* viewing a node with threaded comments (a comment and a reply), if a node
|
||||
* access module is in use.
|
||||
*/
|
||||
class CommentNodeAccessTest extends CommentHelperCase {
|
||||
public static function getInfo() {
|
||||
return array(
|
||||
'name' => 'Comment node access',
|
||||
'description' => 'Test comment viewing with node access.',
|
||||
'group' => 'Comment',
|
||||
);
|
||||
}
|
||||
|
||||
function setUp() {
|
||||
DrupalWebTestCase::setUp('comment', 'search', 'node_access_test');
|
||||
node_access_rebuild();
|
||||
|
||||
// Create users and test node.
|
||||
$this->admin_user = $this->drupalCreateUser(array('administer content types', 'administer comments', 'administer blocks'));
|
||||
$this->web_user = $this->drupalCreateUser(array('access comments', 'post comments', 'create article content', 'edit own comments', 'node test view'));
|
||||
$this->node = $this->drupalCreateNode(array('type' => 'article', 'promote' => 1, 'uid' => $this->web_user->uid));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that threaded comments can be viewed.
|
||||
*/
|
||||
function testThreadedCommentView() {
|
||||
$langcode = LANGUAGE_NONE;
|
||||
// Set comments to have subject required and preview disabled.
|
||||
$this->drupalLogin($this->admin_user);
|
||||
$this->setCommentPreview(DRUPAL_DISABLED);
|
||||
$this->setCommentForm(TRUE);
|
||||
$this->setCommentSubject(TRUE);
|
||||
$this->setCommentSettings('comment_default_mode', COMMENT_MODE_THREADED, t('Comment paging changed.'));
|
||||
$this->drupalLogout();
|
||||
|
||||
// Post comment.
|
||||
$this->drupalLogin($this->web_user);
|
||||
$comment_text = $this->randomName();
|
||||
$comment_subject = $this->randomName();
|
||||
$comment = $this->postComment($this->node, $comment_text, $comment_subject);
|
||||
$comment_loaded = comment_load($comment->id);
|
||||
$this->assertTrue($this->commentExists($comment), t('Comment found.'));
|
||||
|
||||
// Check comment display.
|
||||
$this->drupalGet('node/' . $this->node->nid . '/' . $comment->id);
|
||||
$this->assertText($comment_subject, t('Individual comment subject found.'));
|
||||
$this->assertText($comment_text, t('Individual comment body found.'));
|
||||
|
||||
// Reply to comment, creating second comment.
|
||||
$this->drupalGet('comment/reply/' . $this->node->nid . '/' . $comment->id);
|
||||
$reply_text = $this->randomName();
|
||||
$reply_subject = $this->randomName();
|
||||
$reply = $this->postComment(NULL, $reply_text, $reply_subject, TRUE);
|
||||
$reply_loaded = comment_load($reply->id);
|
||||
$this->assertTrue($this->commentExists($reply, TRUE), t('Reply found.'));
|
||||
|
||||
// Go to the node page and verify comment and reply are visible.
|
||||
$this->drupalGet('node/' . $this->node->nid);
|
||||
$this->assertText($comment_text);
|
||||
$this->assertText($comment_subject);
|
||||
$this->assertText($reply_text);
|
||||
$this->assertText($reply_subject);
|
||||
}
|
||||
}
|
||||
|
||||
class CommentApprovalTest extends CommentHelperCase {
|
||||
public static function getInfo() {
|
||||
return array(
|
||||
|
|
Loading…
Reference in New Issue