You are here

email_registration.test in Email Registration 7

Same filename and directory in other branches
  1. 6 email_registration.test

Contains EmailRegistrationTestCase.

File

email_registration.test
View source
<?php

/**
 * @file
 * Contains EmailRegistrationTestCase.
 */
class EmailRegistrationTestCase extends DrupalWebTestCase {

  /**
   * Implement getInfo().
   */
  public static function getInfo() {
    return array(
      'name' => 'Email registration.',
      'description' => 'Test the email registration module.',
      'group' => 'Email registration',
    );
  }

  /**
   * {@inheritdoc}
   */
  public function setUp() {
    parent::setUp('email_registration');

    // Allow user registration.
    variable_set('user_register', USER_REGISTER_VISITORS);

    // Configure to allow set password.
    variable_set('user_email_verification', FALSE);
  }

  /**
   * Test various behaviors for anonymous users.
   */
  public function testRegistration() {

    // Try to register a user.
    $name = $this
      ->randomName();
    $pass = $this
      ->randomName(10);
    $register = array(
      'mail' => $name . '@example.com',
      'pass[pass1]' => $pass,
      'pass[pass2]' => $pass,
    );
    $this
      ->drupalPost('/user/register', $register, t('Create new account'));
    $this
      ->drupalLogout();
    $login = array(
      'name' => $name . '@example.com',
      'pass' => $pass,
    );
    $this
      ->drupalPost('user/login', $login, t('Log in'));

    // Get the account to get uid.
    $new_user = user_load_by_mail($name . '@example.com');
    $new_name = $name . '_' . $new_user->uid;

    // Confirm the user was created and logged in with expected username.
    $this
      ->assertTitle($new_name . ' | Drupal', 'User properly created, logged in.');

    // Now try the immediate login.
    $this
      ->drupalLogout();
    $name = $this
      ->randomName();
    $pass = $this
      ->randomName(10);
    $register = array(
      'mail' => $name . '@example.com',
      'pass[pass1]' => $pass,
      'pass[pass2]' => $pass,
    );
    $this
      ->drupalPost('/user/register', $register, t('Create new account'));
    $this
      ->assertRaw('Registration successful. You are now logged in.', 'User properly created, immediately logged in.');

    // Try to login with just username, should succeed by default.
    $this
      ->drupalLogout();

    // User name appended with UID see email_registration_cleanup_username().
    $new_user = user_load_by_mail($name . '@example.com');
    $new_name = $name . '_' . $new_user->uid;
    $login = array(
      'name' => $new_name,
      'pass' => $pass,
    );
    $this
      ->drupalPost('user/login', $login, t('Log in'));
    $this
      ->assertTitle($new_name . ' | Drupal', 'By default, username can log in.');
    $this
      ->drupalLogout();

    // Disallow logins with username and try to login with just username, should fail.
    variable_set('email_registration_login_with_username', FALSE);
    $this
      ->drupalPost('user/login', $login, t('Log in'));
    $this
      ->assertTitle('User account | Drupal', 'When disabled, a user cannot login with just their username.');
  }

}

Classes

Namesort descending Description
EmailRegistrationTestCase @file Contains EmailRegistrationTestCase.