![]() 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/vendor/magento/module-cookie/Test/Unit/Controller/Index/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Cookie\Test\Unit\Controller\Index; use Magento\Cookie\Controller\Index\NoCookies; use Magento\Framework\App\Request\Http as HttpRequest; use Magento\Framework\App\Response\Http as HttpResponse; use Magento\Framework\App\Response\RedirectInterface; use Magento\Framework\App\ViewInterface; use Magento\Framework\DataObject; use Magento\Framework\Event\ManagerInterface; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; /** * @covers \Magento\Cookie\Controller\Index\NoCookies */ class NoCookiesTest extends TestCase { /** * @var NoCookies */ private $controller; /** * @var MockObject|ManagerInterface */ private $eventManagerMock; /** * @var MockObject|HttpRequest */ private $requestMock; /** * @var MockObject|HttpResponse */ private $responseMock; /** * @var MockObject|RedirectInterface */ private $redirectResponseMock; /** * @var MockObject|ViewInterface */ private $viewMock; const REDIRECT_URL = 'http://www.example.com/redirect'; const REDIRECT_PATH = '\a\path'; const REDIRECT_ARGUMENTS = '&arg1key=arg1value'; /** * @inheritDoc */ protected function setup(): void { $this->eventManagerMock = $this->getMockBuilder(ManagerInterface::class) ->getMock(); $this->requestMock = $this->getMockBuilder(HttpRequest::class) ->disableOriginalConstructor() ->getMock(); $this->responseMock = $this->getMockBuilder(HttpResponse::class) ->disableOriginalConstructor() ->getMock(); $this->redirectResponseMock = $this->getMockBuilder(RedirectInterface::class) ->getMock(); $this->viewMock = $this->getMockForAbstractClass(ViewInterface::class); $objectManager = new ObjectManagerHelper($this); $this->controller = $objectManager->getObject( NoCookies::class, [ 'eventManager' => $this->eventManagerMock, 'request' => $this->requestMock, 'response' => $this->responseMock, 'redirect' => $this->redirectResponseMock, 'view' => $this->viewMock, ] ); } /** * Test execute redirect url */ public function testExecuteRedirectUrl(): void { // redirect is new'ed in the execute function, so need to set the redirect URL in dispatch call $this->eventManagerMock->expects($this->once()) ->method('dispatch') ->with( 'controller_action_nocookies', $this->callback( function ($dataArray) { $redirect = $dataArray['redirect']; $this->assertInstanceOf(DataObject::class, $redirect); $redirect->setRedirectUrl(self::REDIRECT_URL); return true; } ) ); // Verify response is set with redirect url $this->responseMock->expects($this->once()) ->method('setRedirect') ->with(self::REDIRECT_URL); // Verify request is set to dispatched $this->requestMock->expects($this->once()) ->method('setDispatched') ->with($this->isTrue()); // Make the call to test $this->controller->execute(); } /** * Test execute redirect path */ public function testExecuteRedirectPath(): void { // redirect is new'ed in the execute function, so need to set the redirect in dispatch call $this->eventManagerMock->expects($this->once()) ->method('dispatch') ->with( 'controller_action_nocookies', $this->callback( function ($dataArray) { $redirect = $dataArray['redirect']; $this->assertInstanceOf(DataObject::class, $redirect); $redirect->setArguments(self::REDIRECT_ARGUMENTS); $redirect->setPath(self::REDIRECT_PATH); $redirect->setRedirect(self::REDIRECT_URL); return true; } ) ); // Verify response is set with redirect, which $this->redirectResponseMock->expects($this->once()) ->method('redirect') ->with($this->responseMock, '\a\path', '&arg1key=arg1value'); // Verify request is set to dispatched $this->requestMock->expects($this->once())->method('setDispatched')->with($this->isTrue()); // Make the call to test $this->controller->execute(); } /** * Test execute default */ public function testExecuteDefault(): void { // Verify view is called to load and render $this->viewMock->expects($this->once())->method('loadLayout')->with(['default', 'noCookie']); $this->viewMock->expects($this->once())->method('renderLayout'); // Verify request is set to dispatched $this->requestMock->expects($this->once())->method('setDispatched')->with($this->isTrue()); // Make the call to test $this->controller->execute(); } }