You are here

function UserAccessTest::testAccess in SimpleTest 5

Same name and namespace in other branches
  1. 6 tests/user_module.test \UserAccessTest::testAccess()

File

tests/user_access.test, line 29

Class

UserAccessTest

Code

function testAccess() {

  /* To avoid conflicts with non allowed account creations */
  $this
    ->drupalVariableSet('user_register', 1);
  $this
    ->_addMask('simpletest_block%', 'user');
  $this
    ->_addMask('simpletest_block_allow%', 'user', 1);

  /* first try blocked user */
  $name = $this
    ->randomName(2, 'simpletest_block_');
  $mail = "{$name}@example.com";
  $edit = array(
    'name' => $name,
    'mail' => $mail,
  );
  $this
    ->drupalPostRequest('user/register', $edit, 'Create new account');
  $this
    ->assertNoUnWantedText(t('Your password and further instructions have been sent to your e-mail address.'), 'blocked user: Your password and further instructions - not found');
  $this
    ->assertText(t('The name @name has been denied access.', array(
    '@name' => $name,
  )), 'blocked user: denied access - found');

  /* Lets make a new browser for new cookies */
  $this
    ->setBrowser($this
    ->createBrowser());

  /* now try allowed user */
  $name = $this
    ->randomName(2, 'simpletest_block_allow_');
  $mail = "{$name}@example.com";
  $edit = array(
    'name' => $name,
    'mail' => $mail,
  );
  $this
    ->drupalPostRequest('user/register', $edit, 'Create new account');
  $this
    ->assertText(t('Your password and further instructions have been sent to your e-mail address.'), 'access user: Your password and further instructions - found');
  $this
    ->assertNoText(t('The name @name has been denied access.', array(
    '@name' => $name,
  )), 'access user: denied access - not found');
  $user = user_load($edit);
  $this
    ->assertTrue(isset($user->uid), 'user->uid set');
  $this
    ->assertTrue($user->uid > 0, 'uid > 0');
  if (isset($user->uid) && $user->uid > 0) {

    /* delete test user, roles and maybe authmap */
    db_query('DELETE FROM {users} WHERE uid = %d', $user->uid);
    db_query('DELETE FROM {users_roles} WHERE uid = %d', $user->uid);
    db_query('DELETE FROM {authmap} WHERE uid = %d', $user->uid);
  }
}