function CommentActionsTestCase::testCommentUnpublishByKeyword

Tests the unpublish comment by keyword action.

File

modules/comment/comment.test, line 1999

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();
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.