public function setState($state, array $context = array())
 {
     parent::setState($state, $context);
     if ($state == self::STATE_TRANSFER && !$this->body && !count($this->postFields) && !count($this->postFiles)) {
         $this->setHeader('Content-Length', 0)->removeHeader('Transfer-Encoding');
     }
     return $this->state;
 }
 public function testUpdatesRequestForRetry()
 {
     $request = new Request('GET', 'http://www.example.com');
     $request->setState('transfer');
     $response = new Response(500);
     $handle = $this->getMockBuilder('Guzzle\\Http\\Curl\\CurlHandle')->disableOriginalConstructor()->getMock();
     $e = new CurlException();
     $e->setCurlHandle($handle);
     $plugin = new BackoffPlugin(new ConstantBackoffStrategy(10));
     $plugin->addSubscriber($this);
     $event = new Event(array('request' => $request, 'response' => $response, 'exception' => $e));
     $plugin->onRequestSent($event);
     $this->assertEquals(array('request' => $request, 'response' => $response, 'handle' => $handle, 'retries' => 1, 'delay' => 10), $this->readAttribute($this->retried, 'context'));
     $plugin->onRequestSent($event);
     $this->assertEquals(array('request' => $request, 'response' => $response, 'handle' => $handle, 'retries' => 2, 'delay' => 10), $this->readAttribute($this->retried, 'context'));
 }
Пример #3
0
 /**
  * @covers Guzzle\Http\Message\Request::processResponse
  * @expectedException Guzzle\Http\Exception\RequestException
  * @expectedExceptionMessage Error completing request
  */
 public function testRequestThrowsExceptionWhenSetToCompleteWithNoResponse()
 {
     $this->request->setState(RequestInterface::STATE_COMPLETE);
 }