![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/dev/tests/integration/testsuite/Magento/Backend/Controller/Adminhtml/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Backend\Controller\Adminhtml; use Magento\Framework\Message\MessageInterface; /** * Test class for \Magento\Backend\Controller\Adminhtml\Auth * @magentoAppArea adminhtml * @magentoDbIsolation enabled */ class AuthTest extends \Magento\TestFramework\TestCase\AbstractController { /** * @var \Magento\Backend\Model\Auth\Session */ protected $_session; /** * @var \Magento\Backend\Model\Auth */ protected $_auth; protected function tearDown(): void { $this->_session = null; $this->_auth = null; parent::tearDown(); } /** * Performs user login */ protected function _login() { \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( \Magento\Backend\Model\UrlInterface::class )->turnOffSecretKey(); $this->_auth = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( \Magento\Backend\Model\Auth::class ); $this->_auth->login( \Magento\TestFramework\Bootstrap::ADMIN_NAME, \Magento\TestFramework\Bootstrap::ADMIN_PASSWORD ); $this->_session = $this->_auth->getAuthStorage(); } /** * Performs user logout */ protected function _logout() { $this->_auth->logout(); \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( \Magento\Backend\Model\UrlInterface::class )->turnOnSecretKey(); } /** * Check not logged state * @covers \Magento\Backend\Controller\Adminhtml\Auth\Login::execute */ public function testNotLoggedLoginAction() { $this->dispatch('backend/admin/auth/login'); /** @var $backendUrlModel \Magento\Backend\Model\UrlInterface */ $backendUrlModel = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( \Magento\Backend\Model\UrlInterface::class ); $backendUrlModel->turnOffSecretKey(); $url = $backendUrlModel->getUrl('admin'); $this->assertRedirect($this->stringStartsWith($url)); } /** * Check logged state * @covers \Magento\Backend\Controller\Adminhtml\Auth\Login::execute * @magentoDbIsolation enabled */ public function testLoggedLoginAction() { $this->_login(); $this->dispatch('backend/admin/auth/login'); /** @var $backendUrlModel \Magento\Backend\Model\UrlInterface */ $backendUrlModel = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( \Magento\Backend\Model\UrlInterface::class ); $url = $backendUrlModel->getStartupPageUrl(); $expected = $backendUrlModel->getUrl($url); $this->assertRedirect($this->stringStartsWith($expected)); $this->_logout(); } /** * @magentoAppIsolation enabled */ public function testNotLoggedLoginActionWithRedirect() { /** @var \Magento\Framework\Data\Form\FormKey $formKey */ $formKey = $this->_objectManager->get(\Magento\Framework\Data\Form\FormKey::class); $this->getRequest()->setPostValue( [ 'login' => [ 'username' => \Magento\TestFramework\Bootstrap::ADMIN_NAME, 'password' => \Magento\TestFramework\Bootstrap::ADMIN_PASSWORD, ], 'form_key' => $formKey->getFormKey(), ] ); $this->dispatch('backend/admin/index/index'); $response = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() ->get(\Magento\Framework\App\ResponseInterface::class); $code = $response->getHttpResponseCode(); $this->assertTrue($code >= 300 && $code < 400, 'Incorrect response code'); $this->assertTrue( \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( \Magento\Backend\Model\Auth::class )->isLoggedIn() ); } /** * @covers \Magento\Backend\Controller\Adminhtml\Auth\Logout::execute * @magentoDbIsolation enabled */ public function testLogoutAction() { $this->_login(); $this->dispatch('backend/admin/auth/logout'); $this->assertRedirect( $this->equalTo( \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( \Magento\Backend\Helper\Data::class )->getHomePageUrl() ) ); $this->assertFalse($this->_session->isLoggedIn(), 'User is not logged out.'); } /** * @covers \Magento\Backend\Controller\Adminhtml\Auth\DeniedJson::execute * @covers \Magento\Backend\Controller\Adminhtml\Auth\DeniedJson::_getDeniedJson * @magentoDbIsolation enabled */ public function testDeniedJsonAction() { $this->_login(); $this->dispatch('backend/admin/auth/deniedJson'); $data = [ 'ajaxExpired' => 1, 'ajaxRedirect' => \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( \Magento\Backend\Helper\Data::class )->getHomePageUrl(), ]; $expected = json_encode($data); $this->assertEquals($expected, $this->getResponse()->getBody()); $this->_logout(); } /** * @covers \Magento\Backend\Controller\Adminhtml\Auth\DeniedIframe::execute * @covers \Magento\Backend\Controller\Adminhtml\Auth\DeniedIframe::_getDeniedIframe * @magentoDbIsolation enabled */ public function testDeniedIframeAction() { $this->_login(); $this->dispatch('backend/admin/auth/deniedIframe'); $homeUrl = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( \Magento\Backend\Helper\Data::class )->getHomePageUrl(); $expected = '<script>parent.window.location ='; $this->assertStringStartsWith($expected, $this->getResponse()->getBody()); $this->assertStringContainsString($homeUrl, $this->getResponse()->getBody()); $this->_logout(); } /** * Test user logging process when user not assigned to any role * @dataProvider incorrectLoginDataProvider * @magentoDbIsolation enabled * * @param $params */ public function testIncorrectLogin($params) { /** @var \Magento\Framework\Data\Form\FormKey $formKey */ $formKey = $this->_objectManager->get(\Magento\Framework\Data\Form\FormKey::class); $params['form_key'] = $formKey->getFormKey(); $this->getRequest()->setPostValue($params); $this->dispatch('backend/admin/auth/login'); $this->assertSessionMessages( $this->equalTo( [ 'The account sign-in was incorrect or your account is disabled temporarily. ' . 'Please wait and try again later.' ] ), MessageInterface::TYPE_ERROR ); $backendUrlModel = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( \Magento\Backend\Model\UrlInterface::class ); $backendUrlModel->turnOffSecretKey(); $url = $backendUrlModel->getUrl('admin'); $this->assertRedirect($this->stringStartsWith($url)); } public function incorrectLoginDataProvider() { return [ 'login dummy user' => [ [ 'login' => [ 'username' => 'test1', 'password' => \Magento\TestFramework\Bootstrap::ADMIN_PASSWORD, ], ], ], 'login without role' => [ [ 'login' => [ 'username' => 'test2', 'password' => \Magento\TestFramework\Bootstrap::ADMIN_PASSWORD, ], ], ], 'login not active user' => [ [ 'login' => [ 'username' => 'test3', 'password' => \Magento\TestFramework\Bootstrap::ADMIN_PASSWORD, ], ], ] ]; } }