![]() 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/framework/Stdlib/Test/Unit/Cookie/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Framework\Stdlib\Test\Unit\Cookie; use Magento\Framework\App\Request\Http; use Magento\Framework\Stdlib\Cookie\SensitiveCookieMetadata; use Magento\Framework\Stdlib\StringUtils; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; /** * Test SensitiveCookieMetaData * */ class SensitiveCookieMetadataTest extends TestCase { /** @var ObjectManager */ private $objectManager; /** @var SensitiveCookieMetadata */ private $sensitiveCookieMetadata; /** @var Http|MockObject */ private $requestMock; protected function setUp(): void { $this->objectManager = new ObjectManager($this); $this->requestMock = $this->getMockBuilder(Http::class) ->disableOriginalConstructor() ->getMock(); $this->sensitiveCookieMetadata = $this->objectManager->getObject( SensitiveCookieMetadata::class, [ 'request' => $this->requestMock, ] ); } /** * @param array $metadata * @param bool $httpOnly * @dataProvider constructorAndGetHttpOnlyTestDataProvider */ public function testConstructorAndGetHttpOnly($metadata, $httpOnly) { /** @var \Magento\Framework\Stdlib\Cookie\SensitiveCookieMetadata $object */ $object = $this->objectManager->getObject( SensitiveCookieMetadata::class, [ 'request' => $this->requestMock, 'metadata' => $metadata, ] ); $this->assertEquals($httpOnly, $object->getHttpOnly()); $this->assertEquals('domain', $object->getDomain()); $this->assertEquals('path', $object->getPath()); } /** * @return array */ public function constructorAndGetHttpOnlyTestDataProvider() { return [ 'with httpOnly' => [ [ SensitiveCookieMetadata::KEY_HTTP_ONLY => false, SensitiveCookieMetadata::KEY_DOMAIN => 'domain', SensitiveCookieMetadata::KEY_PATH => 'path', ], false, ], 'without httpOnly' => [ [ SensitiveCookieMetadata::KEY_DOMAIN => 'domain', SensitiveCookieMetadata::KEY_PATH => 'path', ], true, ], ]; } /** * @param bool $isSecure * @param array $metadata * @param bool $expected * @param int $callNum * @dataProvider getSecureDataProvider */ public function testGetSecure($isSecure, $metadata, $expected, $callNum = 1) { $this->requestMock->expects($this->exactly($callNum)) ->method('isSecure') ->willReturn($isSecure); /** @var \Magento\Framework\Stdlib\Cookie\SensitiveCookieMetadata $object */ $object = $this->objectManager->getObject( SensitiveCookieMetadata::class, [ 'request' => $this->requestMock, 'metadata' => $metadata, ] ); $this->assertEquals($expected, $object->getSecure()); } /** * @return array */ public function getSecureDataProvider() { return [ 'with secure' => [ true, [ SensitiveCookieMetadata::KEY_SECURE => false, SensitiveCookieMetadata::KEY_DOMAIN => 'domain', SensitiveCookieMetadata::KEY_PATH => 'path', ], false, 0, ], 'without secure' => [ true, [ SensitiveCookieMetadata::KEY_DOMAIN => 'domain', SensitiveCookieMetadata::KEY_PATH => 'path', ], true, ], 'without secure 2' => [ false, [ SensitiveCookieMetadata::KEY_DOMAIN => 'domain', SensitiveCookieMetadata::KEY_PATH => 'path', ], false, ], ]; } /** * @param bool $isSecure * @param array $metadata * @param bool $expected * @param int $callNum * @dataProvider toArrayDataProvider */ public function testToArray($isSecure, $metadata, $expected, $callNum = 1) { $this->requestMock->expects($this->exactly($callNum)) ->method('isSecure') ->willReturn($isSecure); /** @var \Magento\Framework\Stdlib\Cookie\SensitiveCookieMetadata $object */ $object = $this->objectManager->getObject( SensitiveCookieMetadata::class, [ 'request' => $this->requestMock, 'metadata' => $metadata, ] ); $this->assertEquals($expected, $object->__toArray()); } /** * @return array */ public function toArrayDataProvider() { return [ 'with secure' => [ true, [ SensitiveCookieMetadata::KEY_SECURE => false, SensitiveCookieMetadata::KEY_DOMAIN => 'domain', SensitiveCookieMetadata::KEY_PATH => 'path', ], [ SensitiveCookieMetadata::KEY_SECURE => false, SensitiveCookieMetadata::KEY_DOMAIN => 'domain', SensitiveCookieMetadata::KEY_PATH => 'path', SensitiveCookieMetadata::KEY_HTTP_ONLY => 1, SensitiveCookieMetadata::KEY_SAME_SITE => 'Lax', ], 0, ], 'without secure' => [ true, [ SensitiveCookieMetadata::KEY_DOMAIN => 'domain', SensitiveCookieMetadata::KEY_PATH => 'path', ], [ SensitiveCookieMetadata::KEY_SECURE => true, SensitiveCookieMetadata::KEY_DOMAIN => 'domain', SensitiveCookieMetadata::KEY_PATH => 'path', SensitiveCookieMetadata::KEY_HTTP_ONLY => 1, SensitiveCookieMetadata::KEY_SAME_SITE => 'Lax', ], ], 'without secure 2' => [ false, [ SensitiveCookieMetadata::KEY_DOMAIN => 'domain', SensitiveCookieMetadata::KEY_PATH => 'path', ], [ SensitiveCookieMetadata::KEY_SECURE => false, SensitiveCookieMetadata::KEY_DOMAIN => 'domain', SensitiveCookieMetadata::KEY_PATH => 'path', SensitiveCookieMetadata::KEY_HTTP_ONLY => 1, SensitiveCookieMetadata::KEY_SAME_SITE => 'Lax', ], ], ]; } /** * @param StringUtils $setMethodName * @param StringUtils $getMethodName * @param StringUtils $expectedValue * @dataProvider getMethodData */ public function testGetters($setMethodName, $getMethodName, $expectedValue) { $this->sensitiveCookieMetadata->$setMethodName($expectedValue); $this->assertSame($expectedValue, $this->sensitiveCookieMetadata->$getMethodName()); } /** * @return array */ public function getMethodData() { return [ "getDomain" => ["setDomain", 'getDomain', "example.com"], "getPath" => ["setPath", 'getPath', "path"], "getSameSite" => ["setSameSite", 'getSameSite', 'Lax'] ]; } }