public function CommentActionsTestCase::testCommentUnpublishByKeyword

Tests the unpublish comment by keyword action.

File

drupal/modules/comment/comment.test, line 1985
Tests for comment.module.

Class

CommentActionsTestCase
Test actions provided by the comment module.

Code

public function testCommentUnpublishByKeyword() {
  $this
    ->drupalLogin($this->admin_user);
  $callback = 'comment_unpublish_by_keyword_action';
  $hash = drupal_hash_base64($callback);
  $comment_text = $keywords = $this
    ->randomName();
  $edit = array(
    'actions_label' => $callback,
    'keywords' => $keywords,
  );
  $this
    ->drupalPost("admin/config/system/actions/configure/{$hash}", $edit, t('Save'));
  $action = db_query("SELECT aid, type, callback, parameters, label FROM {actions} WHERE callback = :callback", array(
    ':callback' => $callback,
  ))
    ->fetchObject();
  $this
    ->assertTrue($action, 'The action could be loaded.');
  $comment = $this
    ->postComment($this->node, $comment_text, $this
    ->randomName());

  // Load the full comment so that status is available.
  $comment = comment_load($comment->id);
  $this
    ->assertTrue($comment->status == COMMENT_PUBLISHED, 'The comment status was set to published.');
  comment_unpublish_by_keyword_action($comment, array(
    'keywords' => array(
      $keywords,
    ),
  ));

  // We need to make sure that the comment has been saved with status
  // unpublished.
  $this
    ->assertEqual(comment_load($comment->cid)->status, COMMENT_NOT_PUBLISHED, 'Comment was unpublished.');
  $this
    ->assertWatchdogMessage('Unpublished comment %subject.', array(
    '%subject' => $comment->subject,
  ), 'Found watchdog message.');
  $this
    ->clearWatchdog();
}