diff options
author | Angie Byron <webchick@24967.no-reply.drupal.org> | 2010-12-04 01:51:09 +0000 |
---|---|---|
committer | Angie Byron <webchick@24967.no-reply.drupal.org> | 2010-12-04 01:51:09 +0000 |
commit | 74e5b8aba2c62ad9eece3315dcf5b325a73cf329 (patch) | |
tree | 3653c0e270ba52593f8a39fa21a73cea89f0fff2 /modules/comment/comment.test | |
parent | 2d1693648d21b0c3d4509f396e1a6316a4445d0c (diff) | |
download | brdo-74e5b8aba2c62ad9eece3315dcf5b325a73cf329.tar.gz brdo-74e5b8aba2c62ad9eece3315dcf5b325a73cf329.tar.bz2 |
#974072 by Damien Tournoud: Fixed Comment publish / unpublish actions are broken
Diffstat (limited to 'modules/comment/comment.test')
-rw-r--r-- | modules/comment/comment.test | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/modules/comment/comment.test b/modules/comment/comment.test index 06f6fe71d..b712d2c64 100644 --- a/modules/comment/comment.test +++ b/modules/comment/comment.test @@ -1409,3 +1409,72 @@ class CommentTokenReplaceTestCase extends CommentHelperCase { } } } + +/** + * Test actions provided by the comment module. + */ +class CommentActionsTestCase extends CommentHelperCase { + public static function getInfo() { + return array( + 'name' => 'Comment actions', + 'description' => 'Test actions provided by the comment module.', + 'group' => 'Comment', + ); + } + + /** + * Test comment publish and unpublish actions. + */ + function testCommentPublishUnpublishActions() { + $this->drupalLogin($this->web_user); + $comment_text = $this->randomName(); + $subject = $this->randomName(); + $comment = $this->postComment($this->node, $comment_text, $subject); + $comment = comment_load($comment->id); + + // Unpublish a comment (direct form: doesn't actually save the comment). + comment_unpublish_action($comment); + $this->assertEqual($comment->status, COMMENT_NOT_PUBLISHED, t('Comment was unpublished')); + $this->assertWatchdogMessage('Unpublished comment %subject.', array('%subject' => $subject), t('Found watchdog message')); + $this->clearWatchdog(); + + // Unpublish a comment (indirect form: modify the comment in the database). + comment_unpublish_action(NULL, array('cid' => $comment->cid)); + $this->assertEqual(comment_load($comment->cid)->status, COMMENT_NOT_PUBLISHED, t('Comment was unpublished')); + $this->assertWatchdogMessage('Unpublished comment %subject.', array('%subject' => $subject), t('Found watchdog message')); + + // Publish a comment (direct form: doesn't actually save the comment). + comment_publish_action($comment); + $this->assertEqual($comment->status, COMMENT_PUBLISHED, t('Comment was published')); + $this->assertWatchdogMessage('Published comment %subject.', array('%subject' => $subject), t('Found watchdog message')); + $this->clearWatchdog(); + + // Publish a comment (indirect form: modify the comment in the database). + comment_publish_action(NULL, array('cid' => $comment->cid)); + $this->assertEqual(comment_load($comment->cid)->status, COMMENT_PUBLISHED, t('Comment was published')); + $this->assertWatchdogMessage('Published comment %subject.', array('%subject' => $subject), t('Found watchdog message')); + $this->clearWatchdog(); + } + + /** + * Verify that a watchdog message has been entered. + * + * @param $watchdog_message + * The watchdog message. + * @param $variables + * The array of variables passed to watchdog(). + * @param $message + * The assertion message. + */ + function assertWatchdogMessage($watchdog_message, $variables, $message) { + $status = (bool) db_query_range("SELECT 1 FROM {watchdog} WHERE message = :message AND variables = :variables", 0, 1, array(':message' => $watchdog_message, ':variables' => serialize($variables)))->fetchField(); + return $this->assert($status, $message); + } + + /** + * Helper function: clear the watchdog. + */ + function clearWatchdog() { + db_truncate('watchdog')->execute(); + } +} |