summaryrefslogtreecommitdiff
path: root/modules/comment/comment.test
diff options
context:
space:
mode:
authorAngie Byron <webchick@24967.no-reply.drupal.org>2010-12-04 01:51:09 +0000
committerAngie Byron <webchick@24967.no-reply.drupal.org>2010-12-04 01:51:09 +0000
commit74e5b8aba2c62ad9eece3315dcf5b325a73cf329 (patch)
tree3653c0e270ba52593f8a39fa21a73cea89f0fff2 /modules/comment/comment.test
parent2d1693648d21b0c3d4509f396e1a6316a4445d0c (diff)
downloadbrdo-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.test69
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();
+ }
+}