You are here

function CaptchaPersistenceTestCase::testPersistenceAlways in CAPTCHA 7

Same name and namespace in other branches
  1. 6.2 captcha.test \CaptchaPersistenceTestCase::testPersistenceAlways()

File

./captcha.test, line 832
Tests for CAPTCHA module.

Class

CaptchaPersistenceTestCase

Code

function testPersistenceAlways() {

  // Set up of persistence and CAPTCHAs.
  $this
    ->setUpPersistence(CAPTCHA_PERSISTENCE_SHOW_ALWAYS);

  // Go to login form and check if there is a CAPTCHA on the login form (look for the title).
  $this
    ->drupalGet('user');
  $this
    ->assertCaptchaPresence(TRUE);
  $captcha_sid_initial = $this
    ->getCaptchaSidFromForm();

  // Try to with wrong user name and password, but correct CAPTCHA.
  $edit = array(
    'name' => 'foobar',
    'pass' => 'bazlaz',
    'captcha_response' => 'Test 123',
  );
  $this
    ->drupalPost(NULL, $edit, t('Log in'));

  // Check that there was no error message for the CAPTCHA.
  $this
    ->assertCaptchaResponseAccepted();

  // Name and password were wrong, we should get an updated form with a fresh CAPTCHA.
  $this
    ->assertCaptchaPresence(TRUE);
  $this
    ->assertPreservedCsid($captcha_sid_initial);

  // Post from again.
  $this
    ->drupalPost(NULL, $edit, t('Log in'));

  // Check that there was no error message for the CAPTCHA.
  $this
    ->assertCaptchaResponseAccepted();
  $this
    ->assertPreservedCsid($captcha_sid_initial);
}