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')); $this->node = $this->drupalCreateNode(array('type' => 'article', 'promote' => 1, 'uid' => $this->web_user->uid)); } /** * Post comment. * * @param $node * Node to post comment on. * @param $comment * Comment body. * @param $subject * Comment subject. * @param $contact * Set to NULL for no contact info, TRUE to ignore success checking, and * array of values to set contact info. */ function postComment($node, $comment, $subject = '', $contact = NULL) { $langcode = LANGUAGE_NONE; $edit = array(); $edit['comment_body[' . $langcode . '][0][value]'] = $comment; $preview_mode = variable_get('comment_preview_article', DRUPAL_OPTIONAL); $subject_mode = variable_get('comment_subject_field_article', 1); // Must get the page before we test for fields. if ($node !== NULL) { $this->drupalGet('comment/reply/' . $node->nid); } if ($subject_mode == TRUE) { $edit['subject'] = $subject; } else { $this->assertNoFieldByName('subject', '', t('Subject field not found.')); } if ($contact !== NULL && is_array($contact)) { $edit += $contact; } switch ($preview_mode) { case DRUPAL_REQUIRED: // Preview required so no save button should be found. $this->assertNoFieldByName('op', t('Save'), t('Save button not found.')); $this->drupalPost(NULL, $edit, t('Preview')); // Don't break here so that we can test post-preview field presence and // function below. case DRUPAL_OPTIONAL: $this->assertFieldByName('op', t('Preview'), t('Preview button found.')); $this->assertFieldByName('op', t('Save'), t('Save button found.')); $this->drupalPost(NULL, $edit, t('Save')); break; case DRUPAL_DISABLED: $this->assertNoFieldByName('op', t('Preview'), t('Preview button not found.')); $this->assertFieldByName('op', t('Save'), t('Save button found.')); $this->drupalPost(NULL, $edit, t('Save')); break; } $match = array(); // Get comment ID preg_match('/#comment-([0-9]+)/', $this->getURL(), $match); // Get comment. if ($contact !== TRUE) { // If true then attempting to find error message. if ($subject) { $this->assertText($subject, 'Comment subject posted.'); } $this->assertText($comment, 'Comment body posted.'); $this->assertTrue((!empty($match) && !empty($match[1])), t('Comment id found.')); } if (isset($match[1])) { return (object) array('id' => $match[1], 'subject' => $subject, 'comment' => $comment); } } /** * Checks current page for specified comment. * * @param object $comment Comment object. * @param boolean $reply The comment is a reply to another comment. * @return boolean Comment found. */ function commentExists($comment, $reply = FALSE) { if ($comment && is_object($comment)) { $regex = '/' . ($reply ? '