You are here

function UserPasswordResetTestCase::testUserPasswordResetExpired in Drupal 7

Attempts login using an expired password reset link.

File

modules/user/user.test, line 751
Tests for user.module.

Class

UserPasswordResetTestCase
Tests resetting a user password.

Code

function testUserPasswordResetExpired() {

  // Set password reset timeout variable to 43200 seconds = 12 hours.
  $timeout = 43200;
  variable_set('user_password_reset_timeout', $timeout);

  // Create a user.
  $account = $this
    ->drupalCreateUser();
  $this
    ->drupalLogin($account);

  // Load real user object.
  $account = user_load($account->uid, TRUE);
  $this
    ->drupalLogout();

  // To attempt an expired password reset, create a password reset link as if
  // its request time was 60 seconds older than the allowed limit of timeout.
  $bogus_timestamp = REQUEST_TIME - variable_get('user_password_reset_timeout', 86400) - 60;
  $this
    ->drupalGet("user/reset/{$account->uid}/{$bogus_timestamp}/" . user_pass_rehash($account->pass, $bogus_timestamp, $account->login, $account->uid));
  $this
    ->assertText(t('You have tried to use a one-time login link that has expired. Please request a new one using the form below.'), 'Expired password reset request rejected.');
}