示例#1
0
 public function testEmitspuzzle_event_HeadersEventForHeadRequest()
 {
     puzzle_test_Server::enqueue(array("HTTP/1.1 200 OK\r\nContent-Length: 2\r\n\r\nOK"));
     $this->_closure_testEmitspuzzle_event_HeadersEventForHeadRequest_ee = null;
     $client = new puzzle_Client(array('adapter' => new puzzle_adapter_curl_MultiAdapter(new puzzle_message_MessageFactory())));
     $client->head(puzzle_test_Server::$url, array('events' => array('headers' => array($this, '__callback_testEmitspuzzle_event_HeadersEventForHeadRequest'))));
     $this->assertInstanceOf('puzzle_event_HeadersEvent', $this->_closure_testEmitspuzzle_event_HeadersEventForHeadRequest_ee);
 }
示例#2
0
 public function testStripsFragmentFromHost()
 {
     puzzle_test_Server::flush();
     puzzle_test_Server::enqueue("HTTP/1.1 200 OK\r\n\r\nContent-Length: 0\r\n\r\n");
     // This will fail if the removal of the #fragment is not performed
     $url = puzzle_Url::fromString(puzzle_test_Server::$url)->setPath(null)->setFragment('foo');
     $client = new puzzle_Client();
     $client->get($url);
 }
示例#3
0
 /**
  * @dataProvider hasBodyProvider
  */
 public function testSendsWithBody($method)
 {
     puzzle_test_Server::flush();
     puzzle_test_Server::enqueue(array(new puzzle_message_Response(200)));
     call_user_func("puzzle_{$method}", puzzle_test_Server::$url, array('headers' => array('foo' => 'bar'), 'body' => 'test', 'query' => array('a' => '1')));
     $rx = puzzle_test_Server::received(true);
     $sent = $rx[0];
     $this->assertEquals(strtoupper($method), $sent->getMethod());
     $this->assertEquals('/?a=1', $sent->getResource());
     $this->assertEquals('bar', $sent->getHeader('foo'));
     $this->assertEquals('test', $sent->getBody());
 }
示例#4
0
 public function testReleasesAdditionalEasyHandles()
 {
     puzzle_test_Server::flush();
     puzzle_test_Server::enqueue(array("HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n", "HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n", "HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n", "HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n"));
     $a = new puzzle_adapter_curl_CurlAdapter(new puzzle_message_MessageFactory(), array('max_handles' => 2));
     $this->_closure_testReleasesAdditionalEasyHandles_client = new puzzle_Client(array('base_url' => puzzle_test_Server::$url, 'adapter' => $a));
     $request = $this->_closure_testReleasesAdditionalEasyHandles_client->createRequest('GET', '/', array('events' => array('headers' => array($this, '__callback_testReleasesAdditionalEasyHandles_1'))));
     $transaction = new puzzle_adapter_Transaction($this->_closure_testReleasesAdditionalEasyHandles_client, $request);
     $a->send($transaction);
     $this->assertCount(2, $this->readAttribute($a, 'handles'));
 }
示例#5
0
 public function testThrowsImmediatelyWhenInstructed()
 {
     puzzle_test_Server::flush();
     puzzle_test_Server::enqueue(array("HTTP/1.1 501\r\nContent-Length: 0\r\n\r\n"));
     $c = new puzzle_Client(array('base_url' => puzzle_test_Server::$url));
     $request = $c->createRequest('GET', '/');
     $request->getEmitter()->on('error', array($this, '__callback_testThrowsImmediatelyWhenInstructed'));
     $transactions = array(new puzzle_adapter_Transaction($c, $request));
     $a = new puzzle_adapter_curl_MultiAdapter(new puzzle_message_MessageFactory());
     try {
         $a->sendAll(new ArrayIterator($transactions), 1);
         $this->fail('Did not throw');
     } catch (puzzle_exception_RequestException $e) {
         $this->assertSame($request, $e->getRequest());
     }
 }
示例#6
0
 public function testDoesNotAlwaysAddContentType()
 {
     puzzle_test_Server::flush();
     puzzle_test_Server::enqueue(array("HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n"));
     $client = new puzzle_Client();
     $client->put(puzzle_test_Server::$url . '/foo', array('body' => 'foo'));
     $rx = puzzle_test_Server::received(true);
     $request = $rx[0];
     $this->assertEquals('', $request->getHeader('Content-Type'));
 }
示例#7
0
 public function testDoesNotAddContentTypeByDefault()
 {
     puzzle_test_Server::flush();
     puzzle_test_Server::enqueue("HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n");
     $client = new puzzle_Client(array('base_url' => puzzle_test_Server::$url, 'adapter' => new puzzle_adapter_StreamAdapter(new puzzle_message_MessageFactory())));
     $client->put('/', array('body' => 'foo'));
     $requests = puzzle_test_Server::received(true);
     $this->assertEquals('', $requests[0]->getHeader('Content-Type'));
     $this->assertEquals(3, $requests[0]->getHeader('Content-Length'));
 }