123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Captcha\Observer;
- use Magento\Framework\Data\Form\FormKey;
- use Magento\Framework\Message\MessageInterface;
- use Magento\TestFramework\Request;
- use Magento\TestFramework\TestCase\AbstractController;
- /**
- * Test captcha observer behavior
- *
- * @magentoAppArea frontend
- */
- class CaseCheckOnFrontendUnsuccessfulMessageWhenCaptchaFailedTest extends AbstractController
- {
- /**
- * Test incorrect captcha on customer login page
- *
- * @magentoDbIsolation enabled
- * @magentoAppIsolation enabled
- * @magentoConfigFixture default_store customer/captcha/enable 1
- * @magentoConfigFixture default_store customer/captcha/forms user_login
- * @magentoConfigFixture default_store customer/captcha/mode always
- */
- public function testLoginCheckUnsuccessfulMessageWhenCaptchaFailed()
- {
- /** @var FormKey $formKey */
- $formKey = $this->_objectManager->get(FormKey::class);
- $post = [
- 'login' => [
- 'username' => 'dummy@dummy.com',
- 'password' => 'dummy_password1',
- ],
- 'captcha' => ['user_login' => 'wrong_captcha'],
- 'form_key' => $formKey->getFormKey(),
- ];
- $this->prepareRequestData($post);
- $this->dispatch('customer/account/loginPost');
- $this->assertRedirect($this->stringContains('customer/account/login'));
- $this->assertSessionMessages(
- $this->equalTo(['Incorrect CAPTCHA']),
- MessageInterface::TYPE_ERROR
- );
- }
- /**
- * Test incorrect captcha on customer forgot password page
- *
- * @codingStandardsIgnoreStart
- * @magentoConfigFixture current_store customer/password/limit_password_reset_requests_method 0
- * @magentoConfigFixture default_store customer/captcha/enable 1
- * @magentoConfigFixture default_store customer/captcha/forms user_forgotpassword
- * @magentoConfigFixture default_store customer/captcha/mode always
- */
- public function testForgotPasswordCheckUnsuccessfulMessageWhenCaptchaFailed()
- {
- $post = ['email' => 'dummy@dummy.com'];
- $this->prepareRequestData($post);
- $this->dispatch('customer/account/forgotPasswordPost');
- $this->assertRedirect($this->stringContains('customer/account/forgotpassword'));
- $this->assertSessionMessages(
- $this->equalTo(['Incorrect CAPTCHA']),
- MessageInterface::TYPE_ERROR
- );
- }
- /**
- * Test incorrect captcha on customer create account page
- *
- * @codingStandardsIgnoreStart
- * @magentoConfigFixture current_store customer/password/limit_password_reset_requests_method 0
- * @magentoConfigFixture default_store customer/captcha/enable 1
- * @magentoConfigFixture default_store customer/captcha/forms user_create
- * @magentoConfigFixture default_store customer/captcha/mode always
- */
- public function testCreateAccountCheckUnsuccessfulMessageWhenCaptchaFailed()
- {
- /** @var FormKey $formKey */
- $formKey = $this->_objectManager->get(FormKey::class);
- $post = [
- 'firstname' => 'Firstname',
- 'lastname' => 'Lastname',
- 'email' => 'dummy@dummy.com',
- 'password' => 'TestPassword123',
- 'password_confirmation' => 'TestPassword123',
- 'captcha' => ['user_create' => 'wrong_captcha'],
- 'form_key' => $formKey->getFormKey(),
- ];
- $this->prepareRequestData($post);
- $this->dispatch('customer/account/createPost');
- $this->assertRedirect($this->stringContains('customer/account/create'));
- $this->assertSessionMessages(
- $this->equalTo(['Incorrect CAPTCHA']),
- MessageInterface::TYPE_ERROR
- );
- }
- /**
- * @param array $postData
- * @return void
- */
- private function prepareRequestData($postData)
- {
- $this->getRequest()->setMethod(Request::METHOD_POST);
- $this->getRequest()->setPostValue($postData);
- }
- }
|