function CommentNotifyTestCase::testCommentNotifyAnonymousUserFunctionalTest in Comment Notify 7
Same name and namespace in other branches
- 6 comment_notify.test \CommentNotifyTestCase::testCommentNotifyAnonymousUserFunctionalTest()
Test various behaviors for anonymous users.
File
- ./
comment_notify.test, line 34 - Creates tests for comment_notify module.
Class
- CommentNotifyTestCase
- @file Creates tests for comment_notify module.
Code
function testCommentNotifyAnonymousUserFunctionalTest() {
// Code that does something to be tested.
// Create and login administrative user.
$admin_user = $this
->drupalCreateUser(array(
'administer comment notify',
'administer permissions',
'administer comments',
));
$this
->drupalLogin($admin_user);
// Enable comment notify on this node and allow anonymous information in
// comments.
variable_set('comment_notify_node_types', array(
'article' => 'article',
'page' => 0,
));
variable_set('comment_anonymous_article', '1');
// Create a node with comments allowed.
$this->node = $this
->drupalCreateNode(array(
'type' => 'article',
'promote' => NODE_PROMOTED,
'comment' => COMMENT_NODE_OPEN,
));
// Allow anonymous users to post comments and get notifications.
user_role_grant_permissions(DRUPAL_ANONYMOUS_RID, [
'access comments',
'access content',
'post comments',
'skip comment approval',
'subscribe to comments',
]);
$this
->drupalLogout();
// Notify type 1 - All comments on the node.
// First confirm that we properly require an e-mail address.
$subscribe_1 = array(
'notify' => TRUE,
'notify_type' => 1,
);
$this
->postCommentNotifyComment($this->node, $this
->randomName(), $this
->randomName(), $subscribe_1);
// This is still a bad test to test for a static string showing on the page,
// but at least the definition of the string is centralized.
$expected_error = comment_notify_variable_registry_get('error_anonymous_email_missing');
$this
->assertText(t($expected_error));
// Try again with an e-mail address.
$contact_1 = array(
'name' => $this
->randomName(),
'mail' => $this
->getRandomEmailAddress(),
);
$anonymous_comment_1 = $this
->postCommentNotifyComment($this->node, $this
->randomName(), $this
->randomName(), $subscribe_1, $contact_1);
// Confirm that the notification is saved.
$result = comment_notify_get_notification_type($anonymous_comment_1['id']);
$this
->assertEqual($result, $subscribe_1['notify_type'], 'Notify selection option 1 is saved properly.');
// Notify type 2 - replies to a comment.
$subscribe_2 = array(
'notify' => TRUE,
'notify_type' => 2,
);
$contact_2 = array(
'name' => $this
->randomName(),
'mail' => $this
->getRandomEmailAddress(),
);
$anonymous_comment_2 = $this
->postCommentNotifyComment($this->node, $this
->randomName(), $this
->randomName(), $subscribe_2, $contact_2);
// Confirm that the notification is saved.
$result = comment_notify_get_notification_type($anonymous_comment_2['id']);
$this
->assertEqual($result, $subscribe_2['notify_type'], 'Notify selection option 2 is saved properly.');
// Confirm that the original subscriber with all comments on this node got
// their mail.
$this
->assertMail('to', $contact_1['mail'], t('Message was sent to the proper anonymous user.'));
// Notify type 0 (i.e. only one mode is enabled).
variable_set('comment_notify_available_alerts', array(
1 => 0,
2 => 2,
));
$subscribe_0 = array(
'notify' => TRUE,
);
$contact_0 = array(
'mail' => $this
->getRandomEmailAddress(),
);
$anonymous_comment_0 = $this
->postCommentNotifyComment($this->node, $this
->randomName(), $this
->randomName(), $subscribe_0, $contact_0);
// Confirm that the notification is saved.
$result = comment_notify_get_notification_type($anonymous_comment_0['id']);
$this
->assertEqual($result, 2, 'Notify selection option 0 is saved properly.');
// TODO yet more tests.
}