/** * @group ZF2-78 * @dataProvider parameterArrayProvider */ public function testContentTypeAdditionlInfo($params) { $content_type = 'application/x-www-form-urlencoded; charset=UTF-8'; $this->client->setUri($this->baseuri . 'testPostData.php'); $this->client->setHeaders(array('Content-Type' => $content_type)); $this->client->setMethod(\Zend\Http\Request::METHOD_POST); $this->client->setParameterPost($params); $this->client->send(); $request = Request::fromString($this->client->getLastRawRequest()); $this->assertEquals($content_type, $request->headers()->get('Content-Type')->getFieldValue()); }
/** * Test we can get the last request as string * */ public function testGetLastRawRequest() { $this->client->setUri($this->baseuri . 'testHeaders.php'); $this->client->setParameterGet(array('someinput' => 'somevalue')); $this->client->setHeaders(array('X-Powered-By' => 'My Glorious Golden Ass')); $this->client->setMethod('TRACE'); $res = $this->client->send(); if ($res->getStatusCode() == 405 || $res->getStatusCode() == 501) { $this->markTestSkipped("Server does not allow the TRACE method"); } $this->assertEquals($this->client->getLastRawRequest(), $res->getBody(), 'Response body should be exactly like the last request'); }
/** * Test that we properly calculate the content-length of multibyte-encoded * request body * * This may file in case that mbstring overloads the substr and strlen * functions, and the mbstring internal encoding is a multibyte encoding. * * @link http://framework.zend.com/issues/browse/ZF-2098 */ public function testMultibyteRawPostDataZF2098() { $this->_client->setAdapter('Zend\\Http\\Client\\Adapter\\Test'); $this->_client->setUri('http://example.com'); $bodyFile = __DIR__ . '/_files/ZF2098-multibytepostdata.txt'; $this->_client->setRawBody(file_get_contents($bodyFile)); $this->_client->setEncType('text/plain'); $this->_client->setMethod('POST'); $this->_client->send(); $request = $this->_client->getLastRawRequest(); if (!preg_match('/^content-length:\\s+(\\d+)/mi', $request, $match)) { $this->fail("Unable to find content-length header in request"); } $this->assertEquals(filesize($bodyFile), (int) $match[1]); }