function CommentNotifyTestCase::testCommentNotifyAnonymousUserFunctionalTest in Comment Notify 6
Same name and namespace in other branches
- 7 comment_notify.test \CommentNotifyTestCase::testCommentNotifyAnonymousUserFunctionalTest()
Test various behaviors for anonymous users.
File
- ./
comment_notify.test, line 30
Class
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(
'story' => 'story',
));
variable_set('comment_anonymous_story', 1);
// Create a node with comments allowed.
$this->node = $this
->drupalCreateNode(array(
'type' => 'story',
'promote' => 1,
'comment' => 2,
));
// Allow anonymous users to post comments and get notifications.
$this
->setPermission('anonymous user', array(
'access comments' => TRUE,
'access content' => TRUE,
'post comments' => TRUE,
'post comments without approval' => TRUE,
'subscribe to comments' => TRUE,
));
$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(), TRUE, TRUE, $subscribe_1);
$this
->assertText(t('If you want to subscribe to comments you must supply a valid e-mail address.'), t('Anonymous user must leave E-mail if they want to get notifications.'));
// Try again with an e-mail address.
$contact_1 = array(
'mail' => $this
->randomName() . '@' . $this
->randomName(),
);
$anonymous_comment_1 = $this
->postCommentNotifyComment($this->node, $this
->randomName(), $this
->randomName(), TRUE, $subscribe_1, $contact_1);
// Confirm that the notification is saved.
$result = db_result(db_query("SELECT notify FROM {comment_notify} WHERE cid = %d", $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(
'mail' => $this
->randomName() . '@' . $this
->randomName(),
);
$anonymous_comment_2 = $this
->postCommentNotifyComment($this->node, $this
->randomName(), $this
->randomName(), TRUE, $subscribe_2, $contact_2);
// Confirm that the notification is saved.
$result = db_result(db_query("SELECT notify FROM {comment_notify} WHERE cid = %d", $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
->randomName() . '@' . $this
->randomName(),
);
$anonymous_comment_0 = $this
->postCommentNotifyComment($this->node, $this
->randomName(), $this
->randomName(), TRUE, $subscribe_0, $contact_0);
// Confirm that the notification is saved.
$result = db_result(db_query("SELECT notify FROM {comment_notify} WHERE cid = %d", $anonymous_comment_0['id']));
$this
->assertEqual($result, 2, 'Notify selection option 0 is saved properly.');
// TODO yet more tests.
}