Skip to content

Commit cbe6a44

Browse files
committed
Adding integration tests for wrong captcha on customer create page
1 parent 1050136 commit cbe6a44

File tree

1 file changed

+49
-9
lines changed

1 file changed

+49
-9
lines changed

dev/tests/integration/testsuite/Magento/Captcha/Observer/CaseCheckOnFrontendUnsuccessfulMessageWhenCaptchaFailedTest.php

Lines changed: 49 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
*/
66
namespace Magento\Captcha\Observer;
77

8-
use Magento\Framework\App\Request\Http as HttpRequest;
8+
use Magento\Framework\Data\Form\FormKey;
99
use Magento\Framework\Message\MessageInterface;
1010
use Magento\TestFramework\Request;
1111
use Magento\TestFramework\TestCase\AbstractController;
@@ -28,8 +28,8 @@ class CaseCheckOnFrontendUnsuccessfulMessageWhenCaptchaFailedTest extends Abstra
2828
*/
2929
public function testLoginCheckUnsuccessfulMessageWhenCaptchaFailed()
3030
{
31-
/** @var \Magento\Framework\Data\Form\FormKey $formKey */
32-
$formKey = $this->_objectManager->get(\Magento\Framework\Data\Form\FormKey::class);
31+
/** @var FormKey $formKey */
32+
$formKey = $this->_objectManager->get(FormKey::class);
3333
$post = [
3434
'login' => [
3535
'username' => 'dummy@dummy.com',
@@ -39,8 +39,7 @@ public function testLoginCheckUnsuccessfulMessageWhenCaptchaFailed()
3939
'form_key' => $formKey->getFormKey(),
4040
];
4141

42-
$this->getRequest()->setMethod(Request::METHOD_POST);
43-
$this->getRequest()->setPostValue($post);
42+
$this->prepareRequestData($post);
4443

4544
$this->dispatch('customer/account/loginPost');
4645

@@ -62,10 +61,8 @@ public function testLoginCheckUnsuccessfulMessageWhenCaptchaFailed()
6261
*/
6362
public function testForgotPasswordCheckUnsuccessfulMessageWhenCaptchaFailed()
6463
{
65-
$email = 'dummy@dummy.com';
66-
67-
$this->getRequest()->setPostValue(['email' => $email]);
68-
$this->getRequest()->setMethod(HttpRequest::METHOD_POST);
64+
$post = ['email' => 'dummy@dummy.com'];
65+
$this->prepareRequestData($post);
6966

7067
$this->dispatch('customer/account/forgotPasswordPost');
7168

@@ -75,4 +72,47 @@ public function testForgotPasswordCheckUnsuccessfulMessageWhenCaptchaFailed()
7572
MessageInterface::TYPE_ERROR
7673
);
7774
}
75+
76+
/**
77+
* Test incorrect captcha on customer create account page
78+
*
79+
* @codingStandardsIgnoreStart
80+
* @magentoConfigFixture current_store customer/password/limit_password_reset_requests_method 0
81+
* @magentoConfigFixture default_store customer/captcha/enable 1
82+
* @magentoConfigFixture default_store customer/captcha/forms user_create
83+
* @magentoConfigFixture default_store customer/captcha/mode always
84+
*/
85+
public function testCreateAccountCheckUnsuccessfulMessageWhenCaptchaFailed()
86+
{
87+
/** @var FormKey $formKey */
88+
$formKey = $this->_objectManager->get(FormKey::class);
89+
$post = [
90+
'firstname' => 'Firstname',
91+
'lastname' => 'Lastname',
92+
'email' => 'dummy@dummy.com',
93+
'password' => 'TestPassword123',
94+
'password_confirmation' => 'TestPassword123',
95+
'captcha' => ['user_create' => 'wrong_captcha'],
96+
'form_key' => $formKey->getFormKey(),
97+
];
98+
$this->prepareRequestData($post);
99+
100+
$this->dispatch('customer/account/createPost');
101+
102+
$this->assertRedirect($this->stringContains('customer/account/create'));
103+
$this->assertSessionMessages(
104+
$this->equalTo(['Incorrect CAPTCHA']),
105+
MessageInterface::TYPE_ERROR
106+
);
107+
}
108+
109+
/**
110+
* @param array $postData
111+
* @return void
112+
*/
113+
private function prepareRequestData($postData)
114+
{
115+
$this->getRequest()->setMethod(Request::METHOD_POST);
116+
$this->getRequest()->setPostValue($postData);
117+
}
78118
}

0 commit comments

Comments
 (0)