You are here

function PrivatemsgRolesTestCase::testDeleteUser in Privatemsg 7.2

Same name and namespace in other branches
  1. 6.2 privatemsg_roles/privatemsg_roles.test \PrivatemsgRolesTestCase::testDeleteUser()

Verify that deleting a user does not leave stale data behind.

File

privatemsg_roles/privatemsg_roles.test, line 312
This file contains tests for the privatemsg roles module

Class

PrivatemsgRolesTestCase
Test cases for the privatemsg_roles module.

Code

function testDeleteUser() {
  $admin = $this
    ->drupalCreateUser(array(
    'read privatemsg',
    'write privatemsg',
    'write privatemsg to all roles',
  ));
  $user = $this
    ->drupalCreateUser(array(
    'read privatemsg',
    'write privatemsg',
  ));

  // Send a message to the role of user 1.
  $role_name = user_role_load(4)->name;
  $this
    ->drupalLogin($admin);
  $edit = array(
    'recipient' => $role_name . '[role]',
    'subject' => $this
      ->randomName(10),
    'body[value]' => $this
      ->randomName(50),
  );
  $this
    ->drupalPost('messages/new', $edit, t('Send message'));
  $this
    ->assertText(t('A message has been sent to @role (role).', array(
    '@role' => $role_name,
  )));
  $this
    ->drupalLogin($user);
  $this
    ->drupalGet('messages');
  $this
    ->assertText($edit['subject'], t('Message sent to role is visible.'));

  // Delete user and make sure that no recipient entries of him are left in
  // table.
  user_delete($user->uid);
  $this
    ->assertFalse(db_query_range("SELECT 1 FROM {pm_index} WHERE recipient = :recipient AND type IN ('user', 'hidden')", 0, 1, array(
    ':recipient' => $user->uid,
  ))
    ->fetchField());
}