From 690b39f11b65dac5fd8ae829e48e8224b9627a88 Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Thu, 21 Jun 2018 18:54:00 +0200 Subject: [PATCH 1/2] Added integration test for checking customer login attempts captcha cleanup --- .../ResetAttemptForFrontendObserverTest.php | 60 +++++++++++++++++++ .../Captcha/_files/failed_logins_frontend.php | 18 ++++++ .../failed_logins_frontend_rollback.php | 18 ++++++ 3 files changed, 96 insertions(+) create mode 100644 dev/tests/integration/testsuite/Magento/Captcha/Observer/ResetAttemptForFrontendObserverTest.php create mode 100644 dev/tests/integration/testsuite/Magento/Captcha/_files/failed_logins_frontend.php create mode 100644 dev/tests/integration/testsuite/Magento/Captcha/_files/failed_logins_frontend_rollback.php diff --git a/dev/tests/integration/testsuite/Magento/Captcha/Observer/ResetAttemptForFrontendObserverTest.php b/dev/tests/integration/testsuite/Magento/Captcha/Observer/ResetAttemptForFrontendObserverTest.php new file mode 100644 index 0000000000000..bb9f9b25195b5 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Captcha/Observer/ResetAttemptForFrontendObserverTest.php @@ -0,0 +1,60 @@ +objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + } + + /** + * @magentoDataFixture Magento/Captcha/_files/failed_logins_frontend.php + */ + public function testSuccesfulLoginRemovesFailedAttempts() + { + $customerFactory = $this->objectManager->get(CustomerFactory::class); + $captchaLogFactory = $this->objectManager->get(LogFactory::class); + $eventManager = $this->objectManager->get(ManagerInterface::class); + + /** @var Customer $customer */ + $customer = $customerFactory->create(); + $customer->setEmail(self::USER_EMAIL); + + $eventManager->dispatch( + 'customer_customer_authenticated', + ['model' => $customer, 'password' => 'some_password'] + ); + + /** + * @var CaptchaLog $captchaLog + */ + $captchaLog = $captchaLogFactory->create(); + + self::assertEquals(0, $captchaLog->countAttemptsByUserLogin(self::USER_EMAIL)); + } +} diff --git a/dev/tests/integration/testsuite/Magento/Captcha/_files/failed_logins_frontend.php b/dev/tests/integration/testsuite/Magento/Captcha/_files/failed_logins_frontend.php new file mode 100644 index 0000000000000..b4fe99f5825e8 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Captcha/_files/failed_logins_frontend.php @@ -0,0 +1,18 @@ +get(LogFactory::class); + +/** @var Log $captchaLog */ +$captchaLog = $logFactory->create(); +$captchaLog->logAttempt(ResetAttemptForFrontendObserverTest::USER_EMAIL); diff --git a/dev/tests/integration/testsuite/Magento/Captcha/_files/failed_logins_frontend_rollback.php b/dev/tests/integration/testsuite/Magento/Captcha/_files/failed_logins_frontend_rollback.php new file mode 100644 index 0000000000000..9948c0f1f89a5 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Captcha/_files/failed_logins_frontend_rollback.php @@ -0,0 +1,18 @@ +get(LogFactory::class); + +/** @var Log $captchaLog */ +$captchaLog = $logFactory->create(); +$captchaLog->deleteUserAttempts(ResetAttemptForFrontendObserverTest::USER_EMAIL); From 1cb9476de048885fd0c1d2fb1665f756a89b40ee Mon Sep 17 00:00:00 2001 From: Yaroslav Rogoza Date: Thu, 21 Jun 2018 19:18:07 +0200 Subject: [PATCH 2/2] Added integration test for checking customer login attempts captcha cleanup after account edit --- ...emptForFrontendAccountEditObserverTest.php | 53 +++++++++++++++++++ .../ResetAttemptForFrontendObserverTest.php | 8 +-- .../Captcha/_files/failed_logins_frontend.php | 3 +- .../failed_logins_frontend_rollback.php | 3 +- 4 files changed, 59 insertions(+), 8 deletions(-) create mode 100644 dev/tests/integration/testsuite/Magento/Captcha/Observer/ResetAttemptForFrontendAccountEditObserverTest.php diff --git a/dev/tests/integration/testsuite/Magento/Captcha/Observer/ResetAttemptForFrontendAccountEditObserverTest.php b/dev/tests/integration/testsuite/Magento/Captcha/Observer/ResetAttemptForFrontendAccountEditObserverTest.php new file mode 100644 index 0000000000000..c09211b020b30 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Captcha/Observer/ResetAttemptForFrontendAccountEditObserverTest.php @@ -0,0 +1,53 @@ +objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + } + + /** + * @magentoDataFixture Magento/Captcha/_files/failed_logins_frontend.php + */ + public function testAccountEditRemovesFailedAttempts() + { + $customerEmail = 'mageuser@dummy.com'; + $captchaLogFactory = $this->objectManager->get(LogFactory::class); + $eventManager = $this->objectManager->get(ManagerInterface::class); + + $eventManager->dispatch( + 'customer_account_edited', + ['email' => $customerEmail] + ); + + /** + * @var CaptchaLog $captchaLog + */ + $captchaLog = $captchaLogFactory->create(); + + self::assertEquals(0, $captchaLog->countAttemptsByUserLogin($customerEmail)); + } +} diff --git a/dev/tests/integration/testsuite/Magento/Captcha/Observer/ResetAttemptForFrontendObserverTest.php b/dev/tests/integration/testsuite/Magento/Captcha/Observer/ResetAttemptForFrontendObserverTest.php index bb9f9b25195b5..f8dd80595f936 100644 --- a/dev/tests/integration/testsuite/Magento/Captcha/Observer/ResetAttemptForFrontendObserverTest.php +++ b/dev/tests/integration/testsuite/Magento/Captcha/Observer/ResetAttemptForFrontendObserverTest.php @@ -15,13 +15,12 @@ use Magento\Framework\ObjectManagerInterface; /** - * Class ResetAttemptForBackendObserverTest + * Class ResetAttemptForFrontendObserverTest * * Test for checking that the customer login attempts are removed after a successful login */ class ResetAttemptForFrontendObserverTest extends \PHPUnit\Framework\TestCase { - const USER_EMAIL = 'mageuser@dummy.com'; /** * @var ObjectManagerInterface */ @@ -37,13 +36,14 @@ public function setUp() */ public function testSuccesfulLoginRemovesFailedAttempts() { + $customerEmail = 'mageuser@dummy.com'; $customerFactory = $this->objectManager->get(CustomerFactory::class); $captchaLogFactory = $this->objectManager->get(LogFactory::class); $eventManager = $this->objectManager->get(ManagerInterface::class); /** @var Customer $customer */ $customer = $customerFactory->create(); - $customer->setEmail(self::USER_EMAIL); + $customer->setEmail($customerEmail); $eventManager->dispatch( 'customer_customer_authenticated', @@ -55,6 +55,6 @@ public function testSuccesfulLoginRemovesFailedAttempts() */ $captchaLog = $captchaLogFactory->create(); - self::assertEquals(0, $captchaLog->countAttemptsByUserLogin(self::USER_EMAIL)); + self::assertEquals(0, $captchaLog->countAttemptsByUserLogin($customerEmail)); } } diff --git a/dev/tests/integration/testsuite/Magento/Captcha/_files/failed_logins_frontend.php b/dev/tests/integration/testsuite/Magento/Captcha/_files/failed_logins_frontend.php index b4fe99f5825e8..4e0db30fa82c1 100644 --- a/dev/tests/integration/testsuite/Magento/Captcha/_files/failed_logins_frontend.php +++ b/dev/tests/integration/testsuite/Magento/Captcha/_files/failed_logins_frontend.php @@ -8,11 +8,10 @@ use Magento\TestFramework\Helper\Bootstrap; use Magento\Captcha\Model\ResourceModel\LogFactory; use Magento\Captcha\Model\ResourceModel\Log; -use Magento\Captcha\Observer\ResetAttemptForFrontendObserverTest; $objectManager = Bootstrap::getObjectManager(); $logFactory = $objectManager->get(LogFactory::class); /** @var Log $captchaLog */ $captchaLog = $logFactory->create(); -$captchaLog->logAttempt(ResetAttemptForFrontendObserverTest::USER_EMAIL); +$captchaLog->logAttempt('mageuser@dummy.com'); diff --git a/dev/tests/integration/testsuite/Magento/Captcha/_files/failed_logins_frontend_rollback.php b/dev/tests/integration/testsuite/Magento/Captcha/_files/failed_logins_frontend_rollback.php index 9948c0f1f89a5..a01edb6d0a219 100644 --- a/dev/tests/integration/testsuite/Magento/Captcha/_files/failed_logins_frontend_rollback.php +++ b/dev/tests/integration/testsuite/Magento/Captcha/_files/failed_logins_frontend_rollback.php @@ -8,11 +8,10 @@ use Magento\TestFramework\Helper\Bootstrap; use Magento\Captcha\Model\ResourceModel\LogFactory; use Magento\Captcha\Model\ResourceModel\Log; -use Magento\Captcha\Observer\ResetAttemptForFrontendObserverTest; $objectManager = Bootstrap::getObjectManager(); $logFactory = $objectManager->get(LogFactory::class); /** @var Log $captchaLog */ $captchaLog = $logFactory->create(); -$captchaLog->deleteUserAttempts(ResetAttemptForFrontendObserverTest::USER_EMAIL); +$captchaLog->deleteUserAttempts('mageuser@dummy.com');