Skip to content

Commit 05993db

Browse files
committed
MAGETWO-45465: CSRF not validated or regenerated in Magento
- fixed integration test
1 parent 69198c7 commit 05993db

File tree

4 files changed

+42
-15
lines changed

4 files changed

+42
-15
lines changed

dev/tests/integration/testsuite/Magento/Backend/Controller/Adminhtml/AuthTest.php

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
*/
66
namespace Magento\Backend\Controller\Adminhtml;
77

8+
use Magento\Framework\Message\MessageInterface;
9+
810
/**
911
* Test class for \Magento\Backend\Controller\Adminhtml\Auth
1012
* @magentoAppArea adminhtml
@@ -63,11 +65,13 @@ protected function _logout()
6365
public function testNotLoggedLoginAction()
6466
{
6567
$this->dispatch('backend/admin/auth/login');
66-
$this->assertFalse($this->getResponse()->isRedirect());
67-
68-
$body = $this->getResponse()->getBody();
69-
$this->assertSelectCount('form#login-form input#username[type=text]', true, $body);
70-
$this->assertSelectCount('form#login-form input#login[type=password]', true, $body);
68+
/** @var $backendUrlModel \Magento\Backend\Model\UrlInterface */
69+
$backendUrlModel = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
70+
'Magento\Backend\Model\UrlInterface'
71+
);
72+
$backendUrlModel->turnOffSecretKey();
73+
$url = $backendUrlModel->getUrl('admin');
74+
$this->assertRedirect($this->stringStartsWith($url));
7175
}
7276

7377
/**
@@ -192,10 +196,16 @@ public function testIncorrectLogin($params)
192196
$params['form_key'] = $formKey->getFormKey();
193197
$this->getRequest()->setPostValue($params);
194198
$this->dispatch('backend/admin/auth/login');
195-
$this->assertContains(
196-
'You did not sign in correctly or your account is temporarily disabled.',
197-
$this->getResponse()->getBody()
199+
$this->assertSessionMessages(
200+
$this->equalTo(['You did not sign in correctly or your account is temporarily disabled.']),
201+
MessageInterface::TYPE_ERROR
202+
);
203+
$backendUrlModel = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
204+
'Magento\Backend\Model\UrlInterface'
198205
);
206+
$backendUrlModel->turnOffSecretKey();
207+
$url = $backendUrlModel->getUrl('admin');
208+
$this->assertRedirect($this->stringStartsWith($url));
199209
}
200210

201211
public function incorrectLoginDataProvider()

dev/tests/integration/testsuite/Magento/Backend/Controller/Adminhtml/IndexTest.php

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,13 @@ public function testNotLoggedIndexAction()
1818
{
1919
$this->_auth->logout();
2020
$this->dispatch('backend/admin/index/index');
21-
$this->assertFalse($this->getResponse()->isRedirect());
22-
23-
$body = $this->getResponse()->getBody();
24-
$this->assertSelectCount('form#login-form input#username[type=text]', true, $body);
25-
$this->assertSelectCount('form#login-form input#login[type=password]', true, $body);
21+
/** @var $backendUrlModel \Magento\Backend\Model\UrlInterface */
22+
$backendUrlModel = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
23+
'Magento\Backend\Model\UrlInterface'
24+
);
25+
$backendUrlModel->turnOffSecretKey();
26+
$url = $backendUrlModel->getUrl('admin');
27+
$this->assertRedirect($this->stringStartsWith($url));
2628
}
2729

2830
/**

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66
namespace Magento\Captcha\Observer;
77

8+
use Magento\Framework\Message\MessageInterface;
89
use Magento\TestFramework\TestCase\AbstractController;
910

1011
/**
@@ -37,6 +38,12 @@ public function testBackendLoginActionWithInvalidCaptchaReturnsError()
3738
];
3839
$this->getRequest()->setPostValue($post);
3940
$this->dispatch('backend/admin');
40-
$this->assertContains((string)__('Incorrect CAPTCHA'), $this->getResponse()->getBody());
41+
$this->assertSessionMessages($this->equalTo([(string)__('Incorrect CAPTCHA.')]), MessageInterface::TYPE_ERROR);
42+
$backendUrlModel = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
43+
'Magento\Backend\Model\UrlInterface'
44+
);
45+
$backendUrlModel->turnOffSecretKey();
46+
$url = $backendUrlModel->getUrl('admin');
47+
$this->assertRedirect($this->stringStartsWith($url));
4148
}
4249
}

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
*/
66
namespace Magento\Captcha\Observer;
77

8+
use Magento\Framework\Message\MessageInterface;
9+
810
class CaseCaptchaIsRequiredAfterFailedLoginAttemptsTest extends \Magento\TestFramework\TestCase\AbstractController
911
{
1012
/**
@@ -30,6 +32,12 @@ public function testBackendLoginActionWithInvalidCaptchaReturnsError()
3032
];
3133
$this->getRequest()->setPostValue($post);
3234
$this->dispatch('backend/admin');
33-
$this->assertContains((string)__('Incorrect CAPTCHA'), $this->getResponse()->getBody());
35+
$this->assertSessionMessages($this->equalTo([(string)__('Incorrect CAPTCHA.')]), MessageInterface::TYPE_ERROR);
36+
$backendUrlModel = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
37+
'Magento\Backend\Model\UrlInterface'
38+
);
39+
$backendUrlModel->turnOffSecretKey();
40+
$url = $backendUrlModel->getUrl('admin');
41+
$this->assertRedirect($this->stringStartsWith($url));
3442
}
3543
}

0 commit comments

Comments
 (0)