![]() 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/api-functional/testsuite/Magento/Framework/Stdlib/ |
<?php namespace Magento\Framework\Stdlib; /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ use Magento\TestFramework\Helper\Bootstrap; use Magento\TestFramework\TestCase\HttpClient\CurlClientWithCookies; /** * End to end test of the Cookie Manager, using curl. * * Uses controllers in TestModule1 to set and delete cookies and verify 'Set-Cookie' headers that come back. */ class CookieManagerTest extends \Magento\TestFramework\TestCase\WebapiAbstract { /** * @var string */ private $cookieTesterUrl = 'testmoduleone/CookieTester'; /** @var CurlClientWithCookies */ protected $curlClient; protected function setUp(): void { $objectManager = Bootstrap::getObjectManager(); $this->curlClient = $objectManager->get( \Magento\TestFramework\TestCase\HttpClient\CurlClientWithCookies::class ); } /** * Set a sensitive Cookie and delete it. * */ public function testSensitiveCookie() { $url = $this->cookieTesterUrl . '/SetSensitiveCookie'; $cookieParams = [ 'cookie_name' => 'test-sensitive-cookie', 'cookie_value' => 'test-sensitive-cookie-value', ]; $response = $this->curlClient->get($url, $cookieParams); $cookie = $this->findCookie($cookieParams['cookie_name'], $response['cookies']); $this->assertNotNull($cookie); $this->assertEquals($cookieParams['cookie_name'], $cookie['name']); $this->assertEquals($cookieParams['cookie_value'], $cookie['value']); $this->assertFalse(isset($cookie['domain'])); $this->assertFalse(isset($cookie['path'])); $this->assertEquals('true', $cookie['httponly']); $this->assertFalse(isset($cookie['secure'])); $this->assertFalse(isset($cookie['max-age'])); } /** * Set a public cookie * */ public function testPublicCookieNameValue() { $url = $this->cookieTesterUrl . '/SetPublicCookie'; $cookieParams = [ 'cookie_name' => 'test-cookie', 'cookie_value' => 'test-cookie-value', ]; $response = $this->curlClient->get($url, $cookieParams); $cookie = $this->findCookie($cookieParams['cookie_name'], $response['cookies']); $this->assertNotNull($cookie); $this->assertEquals($cookieParams['cookie_name'], $cookie['name']); $this->assertEquals($cookieParams['cookie_value'], $cookie['value']); $this->assertFalse(isset($cookie['domain'])); $this->assertFalse(isset($cookie['path'])); $this->assertFalse(isset($cookie['httponly'])); $this->assertFalse(isset($cookie['secure'])); $this->assertFalse(isset($cookie['max-age'])); } /** * Set a public cookie * */ public function testPublicCookieAll() { $url = $this->cookieTesterUrl . '/SetPublicCookie'; $cookieParams = [ 'cookie_name' => 'test-cookie', 'cookie_value' => 'test-cookie-value', 'cookie_domain' => 'www.example.com', 'cookie_path' => '/test/path', 'cookie_httponly' => 'true', 'cookie_secure' => 'true', 'cookie_duration' => '600', ]; $response = $this->curlClient->get($url, $cookieParams); $cookie = $this->findCookie($cookieParams['cookie_name'], $response['cookies']); $this->assertNotNull($cookie); $this->assertEquals($cookieParams['cookie_name'], $cookie['name']); $this->assertEquals($cookieParams['cookie_value'], $cookie['value']); $this->assertEquals($cookieParams['cookie_domain'], $cookie['domain']); $this->assertEquals($cookieParams['cookie_path'], $cookie['path']); $this->assertEquals($cookieParams['cookie_httponly'], $cookie['httponly']); $this->assertEquals($cookieParams['cookie_secure'], $cookie['secure']); if (isset($cookie['max-age'])) { $this->assertEquals($cookieParams['cookie_duration'], $cookie['max-age']); } $this->assertTrue(isset($cookie['expires'])); } /** * Delete a cookie * */ public function testDeleteCookie() { $url = $this->cookieTesterUrl . '/DeleteCookie'; $cookieParams = [ 'cookie_name' => 'test-cookie', 'cookie_value' => 'test-cookie-value', ]; $response = $this->curlClient->get( $url, $cookieParams, ['Cookie: test-cookie=test-cookie-value; anothertestcookie=anothertestcookievalue'] ); $cookie = $this->findCookie($cookieParams['cookie_name'], $response['cookies']); $this->assertNotNull($cookie); $this->assertEquals($cookieParams['cookie_name'], $cookie['name']); $this->assertEquals('deleted', $cookie['value']); $this->assertFalse(isset($cookie['domain'])); $this->assertFalse(isset($cookie['path'])); $this->assertFalse(isset($cookie['httponly'])); $this->assertFalse(isset($cookie['secure'])); if (isset($cookie['max-age'])) { $this->assertEquals(0, $cookie['max-age']); } $this->assertEquals( date('D, j-M-o H:i:s T', strtotime('Thu, 01-Jan-1970 00:00:01 GMT')), date('D, j-M-o H:i:s T', strtotime($cookie['expires'])) ); } /** * Find cookie with given name in the list of cookies * * @param string $cookieName * @param array $cookies * @return $cookie|null * @SuppressWarnings(PHPMD.UnusedLocalVariable) */ private function findCookie($cookieName, $cookies) { foreach ($cookies as $cookieIndex => $cookie) { if ($cookie['name'] === $cookieName) { return $cookie; } } return null; } }