function PrivatemsgFilterTestCase::testInboxSentHandling in Privatemsg 7
Same name and namespace in other branches
- 6.2 privatemsg_filter/privatemsg_filter.test \PrivatemsgFilterTestCase::testInboxSentHandling()
- 6 privatemsg_filter/privatemsg_filter.test \PrivatemsgFilterTestCase::testInboxSentHandling()
- 7.2 privatemsg_filter/privatemsg_filter.test \PrivatemsgFilterTestCase::testInboxSentHandling()
Test correct handling of read all permissions.
File
- privatemsg_filter/
privatemsg_filter.test, line 33 - Contains tests for the privatemsg_filter module.
Class
- PrivatemsgFilterTestCase
- Test filters, tags and inbox/sent handling.
Code
function testInboxSentHandling() {
$author = $this
->drupalCreateUser(array(
'write privatemsg',
'read privatemsg',
'delete privatemsg',
));
$recipient = $this
->drupalCreateUser(array(
'write privatemsg',
'read privatemsg',
));
// Create new message.
$edit = array(
'recipient' => $recipient->name,
'subject' => $this
->randomName(20),
'body[value]' => $this
->randomName(100),
);
$this
->drupalLogin($author);
$this
->drupalPost('messages/new', $edit, t('Send message'));
$this
->assertText(t('A message has been sent to @recipients.', array(
'@recipients' => $recipient->name,
)), t('Message sent confirmation displayed'));
// Validate that the message is not displayed in the inbox of the author
// but in the sent list.
$this
->drupalGet('messages');
$this
->assertNoText($edit['subject'], t('Thread not displayed in inbox for author.'));
$this
->drupalGet('messages/sent');
$this
->assertText($edit['subject'], t('Thread displayed in "Sent messages" for author.'));
$this
->drupalGet('messages/list');
$this
->assertText($edit['subject'], t('Thread displayed in "All messages" for author.'));
// Write a reply as recipient.
$this
->drupalLogin($recipient);
$this
->drupalGet('messages');
$this
->assertText($edit['subject'], t('Thread displayed in inbox for recipient.'));
$this
->drupalGet('messages/sent');
$this
->assertNoText($edit['subject'], t('Thread not displayed in "Sent messages" for recipient.'));
$this
->drupalGet('messages/list');
$this
->assertText($edit['subject'], t('Thread displayed in "All messages." for recipient.'));
// Navigate to the new message.
$this
->clickLink($edit['subject']);
$response = array(
'body[value]' => $this
->randomName(100),
);
$this
->drupalPost(NULL, $response, t('Send message'));
$this
->assertText(t('A message has been sent to @recipients.', array(
'@recipients' => $author->name,
)), t('Message sent confirmation displayed'));
$this
->drupalGet('messages/sent');
$this
->assertText($edit['subject'], t('Thread displayed in "Sent messages" for recipient.'));
$this
->drupalLogin($author);
$this
->drupalGet('messages');
$this
->assertText($edit['subject'], t('Thread displayed in inbox for author.'));
// Test for bug http://drupal.org/node/617648
// Delete all messages for author.
$delete = array(
'list[1]' => 1,
);
$this
->drupalPost(NULL, $delete, t('Delete'));
$this
->assertNoText($edit['subject'], t('Thread has been deleted for author.'));
// Write a reply as recipient.
$this
->drupalLogin($recipient);
$this
->drupalGet('messages');
// Navigate to the new message.
$this
->clickLink($edit['subject']);
$response = array(
'body[value]' => $this
->randomName(100),
);
$this
->drupalPost(NULL, $response, t('Send message'));
$this
->assertText(t('A message has been sent to @recipients.', array(
'@recipients' => $author->name,
)), t('Message sent confirmation displayed'));
// Check if thread is visible again for author.
$this
->drupalLogin($author);
$this
->drupalGet('messages');
$this
->assertText($edit['subject'], t('Thread displayed again in inbox for author.'));
// Test archiving of messages.
// Delete all messages for author.
$archive = array(
'list[1]' => 1,
'operation' => 'archive',
);
$this
->drupalPost(NULL, $archive, t('Execute'));
$this
->assertText(t('The messages have been archived.'), t('Confirmation message displayed'));
$this
->assertNoText($edit['subject'], t('Thread has been removed from inbox.'));
$this
->drupalGet('messages/list');
$this
->assertText($edit['subject'], t('Thread still displayed in "All messages" list.'));
}