2013-10-14 12:19:32 -07:00
|
|
|
<?php
|
|
|
|
|
2014-02-16 20:10:19 -08:00
|
|
|
namespace GuzzleHttp\Tests;
|
2013-10-14 12:19:32 -07:00
|
|
|
|
2014-02-16 20:10:19 -08:00
|
|
|
require_once __DIR__ . '/Server.php';
|
2013-10-14 12:19:32 -07:00
|
|
|
|
2014-02-16 20:10:19 -08:00
|
|
|
use GuzzleHttp\Message\Response;
|
|
|
|
use GuzzleHttp\Tests\Http\Server;
|
2013-10-14 12:19:32 -07:00
|
|
|
|
|
|
|
class FunctionsTest extends \PHPUnit_Framework_TestCase
|
|
|
|
{
|
2014-02-16 20:10:19 -08:00
|
|
|
/** @var \GuzzleHttp\Tests\Http\Server */
|
2013-10-14 12:19:32 -07:00
|
|
|
public static $server;
|
|
|
|
|
|
|
|
public static function setupBeforeClass()
|
|
|
|
{
|
|
|
|
self::$server = new Server();
|
|
|
|
self::$server->start();
|
|
|
|
self::$server->flush();
|
|
|
|
}
|
|
|
|
|
|
|
|
public static function tearDownAfterClass()
|
|
|
|
{
|
|
|
|
self::$server->stop();
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testExpandsTemplate()
|
|
|
|
{
|
2014-02-16 20:10:19 -08:00
|
|
|
$this->assertEquals('foo/123', \GuzzleHttp\uriTemplate('foo/{bar}', ['bar' => '123']));
|
2013-10-14 12:19:32 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
public function noBodyProvider()
|
|
|
|
{
|
|
|
|
return [['get'], ['head'], ['delete']];
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @dataProvider noBodyProvider
|
|
|
|
*/
|
|
|
|
public function testSendsNoBody($method)
|
|
|
|
{
|
|
|
|
self::$server->flush();
|
|
|
|
self::$server->enqueue([new Response(200)]);
|
2014-02-16 20:10:19 -08:00
|
|
|
call_user_func("GuzzleHttp\\{$method}", self::$server->getUrl(), [
|
2014-02-13 23:37:34 -08:00
|
|
|
'headers' => ['foo' => 'bar'],
|
|
|
|
'query' => ['a' => '1']
|
|
|
|
]);
|
2013-10-14 12:19:32 -07:00
|
|
|
$sent = self::$server->getReceivedRequests(true)[0];
|
|
|
|
$this->assertEquals(strtoupper($method), $sent->getMethod());
|
|
|
|
$this->assertEquals('/?a=1', $sent->getResource());
|
|
|
|
$this->assertEquals('bar', $sent->getHeader('foo'));
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testSendsOptionsRequest()
|
|
|
|
{
|
|
|
|
self::$server->flush();
|
|
|
|
self::$server->enqueue([new Response(200)]);
|
2014-02-16 20:10:19 -08:00
|
|
|
\GuzzleHttp\options(self::$server->getUrl(), ['headers' => ['foo' => 'bar']]);
|
2013-10-14 12:19:32 -07:00
|
|
|
$sent = self::$server->getReceivedRequests(true)[0];
|
|
|
|
$this->assertEquals('OPTIONS', $sent->getMethod());
|
|
|
|
$this->assertEquals('/', $sent->getResource());
|
|
|
|
$this->assertEquals('bar', $sent->getHeader('foo'));
|
|
|
|
}
|
|
|
|
|
|
|
|
public function hasBodyProvider()
|
|
|
|
{
|
|
|
|
return [['put'], ['post'], ['patch']];
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @dataProvider hasBodyProvider
|
|
|
|
*/
|
|
|
|
public function testSendsWithBody($method)
|
|
|
|
{
|
|
|
|
self::$server->flush();
|
|
|
|
self::$server->enqueue([new Response(200)]);
|
2014-02-16 20:10:19 -08:00
|
|
|
call_user_func("GuzzleHttp\\{$method}", self::$server->getUrl(), [
|
2014-02-13 23:37:34 -08:00
|
|
|
'headers' => ['foo' => 'bar'],
|
|
|
|
'body' => 'test',
|
|
|
|
'query' => ['a' => '1']
|
|
|
|
]);
|
2013-10-14 12:19:32 -07:00
|
|
|
$sent = self::$server->getReceivedRequests(true)[0];
|
|
|
|
$this->assertEquals(strtoupper($method), $sent->getMethod());
|
|
|
|
$this->assertEquals('/?a=1', $sent->getResource());
|
|
|
|
$this->assertEquals('bar', $sent->getHeader('foo'));
|
|
|
|
$this->assertEquals('test', $sent->getBody());
|
|
|
|
}
|
|
|
|
}
|