public function CaptchaPersistenceTest::testPersistencePerFormInstance in CAPTCHA 8
Test persistence per form instance.
File
- tests/
src/ Functional/ CaptchaPersistenceTest.php, line 105
Class
- CaptchaPersistenceTest
- Tests CAPTCHA Persistence.
Namespace
Drupal\Tests\captcha\FunctionalCode
public function testPersistencePerFormInstance() {
// Set up of persistence and CAPTCHAs.
$this
->setUpPersistence(CAPTCHA_PERSISTENCE_SKIP_ONCE_SUCCESSFUL_PER_FORM_INSTANCE);
// Go to login form and check if there is a CAPTCHA on the login form.
$this
->drupalGet('<front>');
$this
->assertCaptchaPresence(TRUE);
$captcha_sid_initial = $this
->getCaptchaSidFromForm();
// Try to with wrong user name and password, but correct CAPTCHA.
$edit = [
'name' => 'foobar',
'pass' => 'bazlaz',
'captcha_response' => 'Test 123',
];
$this
->submitForm($edit, $this
->t('Log in'), self::LOGIN_HTML_FORM_ID);
// Check that there was no error message for the CAPTCHA.
$this
->assertCaptchaResponseAccepted();
// There shouldn't be a CAPTCHA on the new form.
$this
->assertCaptchaPresence(FALSE);
$this
->assertPreservedCsid($captcha_sid_initial);
// Start a new form instance/session.
$this
->drupalGet('node');
$this
->drupalGet('user');
$this
->assertCaptchaPresence(TRUE);
$this
->assertDifferentCsid($captcha_sid_initial);
// Check another form.
$this
->drupalGet('user/register');
$this
->assertCaptchaPresence(TRUE);
$this
->assertDifferentCsid($captcha_sid_initial);
}