20 public function setUp()
28 new Cookie(array(
'name' =>
'foo',
'value' =>
'bar',
'domain' =>
'foo.com',
'path' =>
'/',
'discard' =>
true)),
29 new Cookie(array(
'name' =>
'test',
'value' =>
'123',
'domain' =>
'baz.com',
'path' =>
'/foo',
'expires' => 2)),
30 new Cookie(array(
'name' =>
'you',
'value' =>
'123',
'domain' =>
'bar.com',
'path' =>
'/boo',
'expires' => time() + 1000))
40 array(array(
'foo',
'baz',
'test',
'muppet',
'googoo'),
'',
'',
'',
false),
41 array(array(
'foo',
'baz',
'muppet',
'googoo'),
'',
'',
'',
true),
42 array(array(
'googoo'),
'www.example.com',
'',
'',
false),
43 array(array(
'muppet',
'googoo'),
'test.y.example.com',
'',
'',
false),
44 array(array(
'foo',
'baz'),
'example.com',
'',
'',
false),
45 array(array(
'muppet'),
'x.y.example.com',
'/acme/',
'',
false),
46 array(array(
'muppet'),
'x.y.example.com',
'/acme/test/',
'',
false),
47 array(array(
'googoo'),
'x.y.example.com',
'/test/acme/test/',
'',
false),
48 array(array(
'foo',
'baz'),
'example.com',
'',
'',
false),
49 array(array(
'baz'),
'example.com',
'',
'baz',
false),
56 foreach ($cookies as $cookie) {
57 $this->assertTrue($this->jar->add($cookie));
60 $this->assertEquals(3, count($this->jar));
61 $this->assertEquals(3, count($this->jar->getIterator()));
62 $this->assertEquals($cookies, $this->jar->all(
null,
null,
null,
false,
false));
69 $this->jar->add($cookie);
71 $this->jar->removeExpired();
72 $this->assertEquals(array($cookies[0], $cookies[2]), $this->jar->all());
79 $this->jar->add($cookie);
81 $this->jar->removeTemporary();
82 $this->assertEquals(array($cookies[2]), $this->jar->all());
87 $this->assertEquals(
'[]', $this->jar->serialize());
88 $this->jar->unserialize(
'[]');
89 $this->assertEquals(array(), $this->jar->all());
93 $this->jar->add($cookie);
97 $serialized = $this->jar->serialize();
98 $data = json_decode($serialized,
true);
99 $this->assertEquals(1, count($data));
102 $a->unserialize($serialized);
103 $this->assertEquals(1, count($a));
110 $this->jar->add($cookie);
114 $this->jar->remove(
'foo.com');
115 $this->assertEquals(2, count($this->jar));
117 $this->jar->remove(
'foo.com');
118 $this->assertEquals(2, count($this->jar));
121 $this->jar->remove(
'bar.com',
'/boo');
122 $this->assertEquals(1, count($this->jar));
125 $this->jar->remove(
null,
null,
'test');
126 $this->assertEquals(0, count($this->jar));
131 $this->assertEquals(
false, $this->jar->add(
new Cookie()));
132 $this->assertFalse($this->jar->add(
new Cookie(array(
135 $this->assertFalse($this->jar->add(
new Cookie(array(
138 $this->assertFalse($this->jar->add(
new Cookie(array(
141 $this->assertFalse($this->jar->add(
new Cookie(array(
143 'domain' =>
'foo.com'
149 $this->assertTrue($this->jar->add(
new Cookie(array(
151 'domain' =>
'foo.com',
154 $this->assertTrue($this->jar->add(
new Cookie(array(
156 'domain' =>
'foo.com',
159 $this->assertTrue($this->jar->add(
new Cookie(array(
161 'domain' =>
'foo.com',
172 'domain' =>
'.example.com',
174 'max_age' =>
'86400',
175 'port' => array(80, 8080),
183 $this->assertTrue($this->jar->add(
new Cookie($data)));
185 unset($data[
'discard']);
186 $this->assertTrue($this->jar->add(
new Cookie($data)));
187 $this->assertEquals(1, count($this->jar));
189 $c = $this->jar->all();
190 $this->assertEquals(
false, $c[0]->getDiscard());
193 $this->jar->add(
new Cookie($data));
194 $this->assertEquals(1, count($this->jar));
197 $data[
'expires'] = time() + 2000;
198 $this->assertTrue($this->jar->add(
new Cookie($data)));
199 $this->assertEquals(1, count($this->jar));
200 $c = $this->jar->all();
201 $this->assertNotEquals($t, $c[0]->getExpires());
210 'domain' =>
'.example.com',
212 'max_age' =>
'86400',
213 'port' => array(80, 8080),
221 $this->assertTrue($this->jar->add(
new Cookie($data)));
223 $data[
'value'] =
'boo';
224 $this->assertTrue($this->jar->add(
new Cookie($data)));
225 $this->assertEquals(1, count($this->jar));
228 $data[
'value'] =
'zoo';
229 $data[
'secure'] =
false;
230 $this->assertTrue($this->jar->add(
new Cookie($data)));
231 $this->assertEquals(1, count($this->jar));
233 $c = $this->jar->all();
234 $this->assertEquals(
'zoo', $c[0]->getValue());
239 $response =
new Response(200, array(
240 'Set-Cookie' => array(
241 "fpc=d=.Hm.yh4.1XmJWjJfs4orLQzKzPImxklQoxXSHOZATHUSEFciRueW_7704iYUtsXNEXq0M92Px2glMdWypmJ7HIQl6XIUvrZimWjQ3vIdeuRbI.FNQMAfcxu_XN1zSx7l.AcPdKL6guHc2V7hIQFhnjRW0rxm2oHY1P4bGQxFNz7f.tHm12ZD3DbdMDiDy7TBXsuP4DM-&v=2; expires=Fri, 02-Mar-2019 02:17:40 GMT; path=/; domain=127.0.0.1",
242 "FPCK3=AgBNbvoQAGpGEABZLRAAbFsQAF1tEABkDhAAeO0=; expires=Sat, 02-Apr-2019 02:17:40 GMT; path=/; domain=127.0.0.1",
243 "CH=deleted; expires=Wed, 03-Mar-2010 02:17:39 GMT; path=/; domain=127.0.0.1",
244 "CH=AgBNbvoQAAEcEAApuhAAMJcQADQvEAAvGxAALe0QAD6uEAATwhAAC1AQAC8t; expires=Sat, 02-Apr-2019 02:17:40 GMT; path=/; domain=127.0.0.1"
248 $this->jar->addCookiesFromResponse($response);
249 $this->assertEquals(3, count($this->jar));
250 $this->assertEquals(1, count($this->jar->all(
null,
null,
'fpc')));
251 $this->assertEquals(1, count($this->jar->all(
null,
null,
'FPCK3')));
252 $this->assertEquals(1, count($this->jar->all(
null,
null,
'CH')));
257 $response =
new Response(200, array(
258 'Set-Cookie' =>
"fpc=d=.Hm.yh4.1XmJWjJfs4orLQzKzPImxklQoxXSHOZATHUSEFciRueW_7704iYUtsXNEXq0M92Px2glMdWypmJ7HIQl6XIUvrZimWjQ3vIdeuRbI.FNQMAfcxu_XN1zSx7l.AcPdKL6guHc2V7hIQFhnjRW0rxm2oHY1P4bGQxFNz7f.tHm12ZD3DbdMDiDy7TBXsuP4DM-&v=2; expires=Fri, 02-Mar-2019 02:17:40 GMT;"
260 $request =
new Request(
'GET',
'http://www.example.com');
261 $this->jar->addCookiesFromResponse($response, $request);
262 $this->assertEquals(1, count($this->jar));
268 array(
'https://example.com', array(0)),
269 array(
'http://example.com', array()),
270 array(
'https://example.com:8912', array()),
271 array(
'https://foo.example.com', array(0)),
272 array(
'http://foo.example.com/test/acme/', array(4))
285 'domain' =>
'example.com',
287 'max_age' =>
'86400',
288 'port' => array(443, 8080),
295 'domain' =>
'example.com',
297 'max_age' =>
'86400',
298 'port' => array(80, 8080),
305 'domain' =>
'www.foobar.com',
311 'value' =>
'cookie_monster',
312 'domain' =>
'.y.example.com',
314 'comment' =>
'Comment goes here...',
315 'expires' => time() + 86400
320 'domain' =>
'.example.com',
321 'path' =>
'/test/acme/',
327 foreach ($bag as $cookie) {
328 $this->jar->add($cookie);
331 $request =
new Request(
'GET', $url);
332 $results = $this->jar->getMatchingCookies($request);
333 $this->assertEquals(count($cookies), count($results));
334 foreach ($cookies as $i) {
335 $this->assertContains($bag[$i], $results);
345 $a =
new ArrayCookieJar();
346 $a->setStrictMode(
true);
348 'name' =>
'abc:@123',
360 'domain' =>
'foo.com',
368 'domain' =>
'foo.com',
373 $this->assertTrue($this->jar->add($b));
374 $this->assertEquals(2, count($this->jar));
377 $data[
'value'] =
null;
378 $this->assertFalse($this->jar->add(
new Cookie($data)));
380 $cookies = $this->jar->all(
'foo.com');
381 $this->assertTrue(in_array($a, $cookies,
true));
382 $this->assertFalse(in_array($b, $cookies,
true));
383 $this->assertEquals(1, count($this->jar));