public function testReadsBodiesFromMockedRequests() { $m = new puzzle_subscriber_Mock(array(new puzzle_message_Response(200))); $client = new puzzle_Client(array('base_url' => 'http://test.com')); $client->getEmitter()->attach($m); $body = puzzle_stream_Stream::factory('foo'); $client->put('/', array('body' => $body)); $this->assertEquals(3, $body->tell()); }
public function testRedirectsCanBeDisabledPerRequest() { $client = new puzzle_Client(array('base_url' => 'http://test.com')); $client->getEmitter()->attach(new puzzle_subscriber_Mock(array("HTTP/1.1 301 Moved Permanently\r\nLocation: /redirect\r\nContent-Length: 0\r\n\r\n", "HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n"))); $response = $client->put('/', array('body' => 'test', 'allow_redirects' => false)); $this->assertEquals(301, $response->getStatusCode()); }
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')); }
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')); }