Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CookieManagerTest.php
Go to the documentation of this file.
1 <?php
3 
11 
18 {
19  private $cookieTesterUrl = 'testmoduleone/CookieTester';
20 
22  protected $curlClient;
23 
24  public function setUp()
25  {
27  $this->config = $objectManager->get(\Magento\Webapi\Model\Config::class);
28  $this->curlClient = $objectManager->get(
29  \Magento\TestFramework\TestCase\HttpClient\CurlClientWithCookies::class
30  );
31  }
32 
37  public function testSensitiveCookie()
38  {
39  $url = $this->cookieTesterUrl . '/SetSensitiveCookie';
40  $cookieParams =
41  [
42  'cookie_name' => 'test-sensitive-cookie',
43  'cookie_value' => 'test-sensitive-cookie-value',
44  ];
45  $response = $this->curlClient->get($url, $cookieParams);
46 
47  $cookie = $this->findCookie($cookieParams['cookie_name'], $response['cookies']);
48  $this->assertNotNull($cookie);
49  $this->assertEquals($cookieParams['cookie_name'], $cookie['name']);
50  $this->assertEquals($cookieParams['cookie_value'], $cookie['value']);
51  $this->assertFalse(isset($cookie['domain']));
52  $this->assertFalse(isset($cookie['path']));
53  $this->assertEquals('true', $cookie['httponly']);
54  $this->assertFalse(isset($cookie['secure']));
55  $this->assertFalse(isset($cookie['max-age']));
56  }
57 
62  public function testPublicCookieNameValue()
63  {
64  $url = $this->cookieTesterUrl . '/SetPublicCookie';
65  $cookieParams =
66  [
67  'cookie_name' => 'test-cookie',
68  'cookie_value' => 'test-cookie-value',
69  ];
70 
71  $response = $this->curlClient->get($url, $cookieParams);
72 
73  $cookie = $this->findCookie($cookieParams['cookie_name'], $response['cookies']);
74  $this->assertNotNull($cookie);
75  $this->assertEquals($cookieParams['cookie_name'], $cookie['name']);
76  $this->assertEquals($cookieParams['cookie_value'], $cookie['value']);
77  $this->assertFalse(isset($cookie['domain']));
78  $this->assertFalse(isset($cookie['path']));
79  $this->assertFalse(isset($cookie['httponly']));
80  $this->assertFalse(isset($cookie['secure']));
81  $this->assertFalse(isset($cookie['max-age']));
82  }
83 
88  public function testPublicCookieAll()
89  {
90  $url = $this->cookieTesterUrl . '/SetPublicCookie';
91  $cookieParams =
92  [
93  'cookie_name' => 'test-cookie',
94  'cookie_value' => 'test-cookie-value',
95  'cookie_domain' => 'www.example.com',
96  'cookie_path' => '/test/path',
97  'cookie_httponly' => 'true',
98  'cookie_secure' => 'true',
99  'cookie_duration' => '600',
100  ];
101 
102  $response = $this->curlClient->get($url, $cookieParams);
103 
104  $cookie = $this->findCookie($cookieParams['cookie_name'], $response['cookies']);
105  $this->assertNotNull($cookie);
106  $this->assertEquals($cookieParams['cookie_name'], $cookie['name']);
107  $this->assertEquals($cookieParams['cookie_value'], $cookie['value']);
108  $this->assertEquals($cookieParams['cookie_domain'], $cookie['domain']);
109  $this->assertEquals($cookieParams['cookie_path'], $cookie['path']);
110  $this->assertEquals($cookieParams['cookie_httponly'], $cookie['httponly']);
111  $this->assertEquals($cookieParams['cookie_secure'], $cookie['secure']);
112  if (isset($cookie['max-age'])) {
113  $this->assertEquals($cookieParams['cookie_duration'], $cookie['max-age']);
114  }
115  $this->assertTrue(isset($cookie['expires']));
116  }
117 
122  public function testDeleteCookie()
123  {
124  $url = $this->cookieTesterUrl . '/DeleteCookie';
125  $cookieParams =
126  [
127  'cookie_name' => 'test-cookie',
128  'cookie_value' => 'test-cookie-value',
129  ];
130 
131  $response = $this->curlClient->get(
132  $url,
133  $cookieParams,
134  ['Cookie: test-cookie=test-cookie-value; anothertestcookie=anothertestcookievalue']
135  );
136 
137  $cookie = $this->findCookie($cookieParams['cookie_name'], $response['cookies']);
138  $this->assertNotNull($cookie);
139  $this->assertEquals($cookieParams['cookie_name'], $cookie['name']);
140  $this->assertEquals('deleted', $cookie['value']);
141  $this->assertFalse(isset($cookie['domain']));
142  $this->assertFalse(isset($cookie['path']));
143  $this->assertFalse(isset($cookie['httponly']));
144  $this->assertFalse(isset($cookie['secure']));
145  if (isset($cookie['max-age'])) {
146  $this->assertEquals(0, $cookie['max-age']);
147  }
148  $this->assertEquals('Thu, 01-Jan-1970 00:00:01 GMT', $cookie['expires']);
149  }
150 
159  private function findCookie($cookieName, $cookies)
160  {
161  foreach ($cookies as $cookieIndex => $cookie) {
162  if ($cookie['name'] === $cookieName) {
163  return $cookie;
164  }
165  }
166  return null;
167  }
168 }
$response
Definition: 404.php:11
$objectManager
Definition: bootstrap.php:17