/**
  * @covers Guzzle\Http\Plugin\CookiePlugin::onRequestBeforeSend
  */
 public function testCookiesAreNotAddedWhenParamIsSet()
 {
     $this->storage->clear();
     $this->storage->save(array('domain' => 'example.com', 'path' => '/', 'cookie' => array('test', 'hi'), 'expires' => Guzzle::getHttpDate('+1 day')));
     $client = new Client('http://example.com');
     $client->getEventDispatcher()->addSubscriber($this->plugin);
     $request = $client->get();
     $request->setResponse(new Response(200), true);
     $request->send();
     $this->assertEquals('hi', $request->getCookie()->get('test'));
     $request = $client->get();
     $request->getParams()->set('cookies.disable', true);
     $request->setResponse(new Response(200), true);
     $request->send();
     $this->assertNull($request->getCookie()->get('test'));
 }
 /**
  * @covers Guzzle\Http\CookieJar\ArrayCookieJar
  */
 public function testOverwritesCookiesThatAreOlderOrDiscardable()
 {
     $this->jar->clear();
     $t = time() + 1000;
     $data = array('cookie' => array('foo', 'bar'), 'domain' => '.example.com', 'path' => '/', 'max_age' => '86400', 'port' => array(80, 8080), 'version' => '1', 'secure' => true, 'discard' => true, 'expires' => $t);
     // Make sure that the discard cookie is overridden with the non-discard
     $this->jar->save($data);
     unset($data['discard']);
     $this->jar->save($data);
     $this->assertEquals(1, count($this->jar->getCookies()));
     $c = $this->jar->getCookies();
     $this->assertEquals(false, $c[0]['discard']);
     $this->assertEquals($t, $c[0]['expires']);
     // Make sure it doesn't duplicate the cookie
     $this->jar->save($data);
     $this->assertEquals(1, count($this->jar->getCookies()));
     // Make sure the more future-ful expiration date supercedes the other
     $data['expires'] = time() + 2000;
     $this->jar->save($data);
     $this->assertEquals(1, count($this->jar->getCookies()));
     $c = $this->jar->getCookies();
     $this->assertNotEquals($t, $c[0]['expires']);
 }