public function CaptchaAfterPerFormThresholdTestCase::testCaptchaAfterSubmitThreshold in CAPTCHA After 7
Same name and namespace in other branches
- 6 captcha_after.test \CaptchaAfterPerFormThresholdTestCase::testCaptchaAfterSubmitThreshold()
Testing of per form submit threshold for user login form.
File
- ./
captcha_after.test, line 264 - Captcha After tests.
Class
- CaptchaAfterPerFormThresholdTestCase
- Global threshold tests for the CAPTCHA After module.
Code
public function testCaptchaAfterSubmitThreshold() {
// Configure captcha protection for user login form.
module_load_include('inc', 'captcha');
captcha_set_form_id_setting('user_login', 'captcha/Test');
// Enable captcha_after for user_login form.
captcha_after_db_set_form('user_login', array(
'enable' => 1,
'submit_threshold' => 3,
));
// Test default state.
$this
->drupalGet('user');
$this
->assertNoField('captcha_response');
// Test disabling of submit global threshold.
variable_set('captcha_after_submit_threshold', 5);
$this
->drupalGet('user');
$this
->assertNoField('captcha_response');
// Wrong login params.
$edit = array(
'name' => $this->test_user->name,
'pass' => 'wrong pass',
);
// Test difference between global and per form submit threshold = global: 1,
// per form: 3.
variable_set('captcha_after_submit_threshold', 1);
// Try 1
$this
->drupalPost('user', $edit, t('Log in'));
$this
->assertText('Sorry, unrecognized username or password.');
$this
->assertNoField('captcha_response');
// Try 2
$this
->drupalPost('user', $edit, t('Log in'));
$this
->assertNoField('captcha_response');
// Try 3
$this
->drupalPost('user', $edit, t('Log in'));
$this
->assertField('captcha_response', 'Finished testing difference betwen global(1) and per form(3) submit threshold.');
// Try to login with incorect captcha solution.
$edit['pass'] = $this->test_user->pass_raw;
$edit['captcha_response'] = '?';
$this
->drupalPost('user', $edit, t('Log in'));
$this
->assertText(CAPTCHA_WRONG_RESPONSE_ERROR_MESSAGE);
$this
->assertField('captcha_response');
// Try to login with correct captcha solution.
$edit['captcha_response'] = 'Test 123';
$this
->drupalPost('user', $edit, t('Log in'));
$this
->assertLink(t('Log out'));
$this
->pass('All Per form threshold tests finished.');
}