Skip to content

Commit 690b39f

Browse files
committed
Added integration test for checking customer login attempts captcha cleanup
1 parent 8405bd2 commit 690b39f

File tree

3 files changed

+96
-0
lines changed

3 files changed

+96
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\Captcha\Observer;
9+
10+
use Magento\Captcha\Model\ResourceModel\Log as CaptchaLog;
11+
use Magento\Captcha\Model\ResourceModel\LogFactory;
12+
use Magento\Customer\Model\Customer;
13+
use Magento\Customer\Model\CustomerFactory;
14+
use Magento\Framework\Event\ManagerInterface;
15+
use Magento\Framework\ObjectManagerInterface;
16+
17+
/**
18+
* Class ResetAttemptForBackendObserverTest
19+
*
20+
* Test for checking that the customer login attempts are removed after a successful login
21+
*/
22+
class ResetAttemptForFrontendObserverTest extends \PHPUnit\Framework\TestCase
23+
{
24+
const USER_EMAIL = 'mageuser@dummy.com';
25+
/**
26+
* @var ObjectManagerInterface
27+
*/
28+
private $objectManager;
29+
30+
public function setUp()
31+
{
32+
$this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
33+
}
34+
35+
/**
36+
* @magentoDataFixture Magento/Captcha/_files/failed_logins_frontend.php
37+
*/
38+
public function testSuccesfulLoginRemovesFailedAttempts()
39+
{
40+
$customerFactory = $this->objectManager->get(CustomerFactory::class);
41+
$captchaLogFactory = $this->objectManager->get(LogFactory::class);
42+
$eventManager = $this->objectManager->get(ManagerInterface::class);
43+
44+
/** @var Customer $customer */
45+
$customer = $customerFactory->create();
46+
$customer->setEmail(self::USER_EMAIL);
47+
48+
$eventManager->dispatch(
49+
'customer_customer_authenticated',
50+
['model' => $customer, 'password' => 'some_password']
51+
);
52+
53+
/**
54+
* @var CaptchaLog $captchaLog
55+
*/
56+
$captchaLog = $captchaLogFactory->create();
57+
58+
self::assertEquals(0, $captchaLog->countAttemptsByUserLogin(self::USER_EMAIL));
59+
}
60+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
use Magento\TestFramework\Helper\Bootstrap;
9+
use Magento\Captcha\Model\ResourceModel\LogFactory;
10+
use Magento\Captcha\Model\ResourceModel\Log;
11+
use Magento\Captcha\Observer\ResetAttemptForFrontendObserverTest;
12+
13+
$objectManager = Bootstrap::getObjectManager();
14+
$logFactory = $objectManager->get(LogFactory::class);
15+
16+
/** @var Log $captchaLog */
17+
$captchaLog = $logFactory->create();
18+
$captchaLog->logAttempt(ResetAttemptForFrontendObserverTest::USER_EMAIL);
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
use Magento\TestFramework\Helper\Bootstrap;
9+
use Magento\Captcha\Model\ResourceModel\LogFactory;
10+
use Magento\Captcha\Model\ResourceModel\Log;
11+
use Magento\Captcha\Observer\ResetAttemptForFrontendObserverTest;
12+
13+
$objectManager = Bootstrap::getObjectManager();
14+
$logFactory = $objectManager->get(LogFactory::class);
15+
16+
/** @var Log $captchaLog */
17+
$captchaLog = $logFactory->create();
18+
$captchaLog->deleteUserAttempts(ResetAttemptForFrontendObserverTest::USER_EMAIL);

0 commit comments

Comments
 (0)