Вход Регистрация
Файл: vkolhoze.com/vendor/guzzle/guzzle/tests/Guzzle/Tests/Http/Message/RequestFactoryTest.php
Строк: 788
<?php

namespace GuzzleTestsHttpMessage;

use 
GuzzleCommonCollection;
use 
GuzzleHttpClient;
use 
GuzzleHttpMessageResponse;
use 
GuzzleHttpUrl;
use 
GuzzleHttpEntityBody;
use 
GuzzleHttpMessageRequestFactory;
use 
GuzzleHttpMessageRequest;
use 
GuzzleHttpQueryString;
use 
GuzzleParserMessageMessageParser;
use 
GuzzlePluginLogLogPlugin;
use 
GuzzlePluginMockMockPlugin;

/**
 * @group server
 * @covers GuzzleHttpMessageRequestFactory
 */
class HttpRequestFactoryTest extends GuzzleTestsGuzzleTestCase
{
    public function 
testCachesSingletonInstance()
    {
        
$factory RequestFactory::getInstance();
        
$this->assertSame($factoryRequestFactory::getInstance());
    }

    public function 
testCreatesNewGetRequests()
    {
        
$request RequestFactory::getInstance()->create('GET''http://www.google.com/');
        
$this->assertInstanceOf('Guzzle\Http\Message\MessageInterface'$request);
        
$this->assertInstanceOf('Guzzle\Http\Message\RequestInterface'$request);
        
$this->assertInstanceOf('Guzzle\Http\Message\Request'$request);
        
$this->assertEquals('GET'$request->getMethod());
        
$this->assertEquals('http'$request->getScheme());
        
$this->assertEquals('http://www.google.com/'$request->getUrl());
        
$this->assertEquals('www.google.com'$request->getHost());
        
$this->assertEquals('/'$request->getPath());
        
$this->assertEquals('/'$request->getResource());

        
// Create a GET request with a custom receiving body
        
$this->getServer()->enqueue("HTTP/1.1 200 OKrnContent-Length: 0rnrn");
        
$b EntityBody::factory();
        
$request RequestFactory::getInstance()->create('GET'$this->getServer()->getUrl(), null$b);
        
$request->setClient(new Client());
        
$response $request->send();
        
$this->assertSame($b$response->getBody());
    }

    public function 
testCreatesPutRequests()
    {
        
// Test using a string
        
$request RequestFactory::getInstance()->create('PUT''http://www.google.com/path?q=1&v=2'null'Data');
        
$this->assertInstanceOf('Guzzle\Http\Message\EntityEnclosingRequest'$request);
        
$this->assertEquals('PUT'$request->getMethod());
        
$this->assertEquals('http'$request->getScheme());
        
$this->assertEquals('http://www.google.com/path?q=1&v=2'$request->getUrl());
        
$this->assertEquals('www.google.com'$request->getHost());
        
$this->assertEquals('/path'$request->getPath());
        
$this->assertEquals('/path?q=1&v=2'$request->getResource());
        
$this->assertInstanceOf('Guzzle\Http\EntityBody'$request->getBody());
        
$this->assertEquals('Data', (string) $request->getBody());
        unset(
$request);

        
// Test using an EntityBody
        
$request RequestFactory::getInstance()->create('PUT''http://www.google.com/path?q=1&v=2'nullEntityBody::factory('Data'));
        
$this->assertInstanceOf('Guzzle\Http\Message\EntityEnclosingRequest'$request);
        
$this->assertEquals('Data', (string) $request->getBody());

        
// Test using a resource
        
$resource fopen('php://temp''w+');
        
fwrite($resource'Data');
        
$request RequestFactory::getInstance()->create('PUT''http://www.google.com/path?q=1&v=2'null$resource);
        
$this->assertInstanceOf('Guzzle\Http\Message\EntityEnclosingRequest'$request);
        
$this->assertEquals('Data', (string) $request->getBody());

        
// Test using an object that can be cast as a string
        
$request RequestFactory::getInstance()->create('PUT''http://www.google.com/path?q=1&v=2'nullUrl::factory('http://www.example.com/'));
        
$this->assertInstanceOf('Guzzle\Http\Message\EntityEnclosingRequest'$request);
        
$this->assertEquals('http://www.example.com/', (string) $request->getBody());
    }

    public function 
testCreatesHeadAndDeleteRequests()
    {
        
$request RequestFactory::getInstance()->create('DELETE''http://www.test.com/');
        
$this->assertEquals('DELETE'$request->getMethod());
        
$request RequestFactory::getInstance()->create('HEAD''http://www.test.com/');
        
$this->assertEquals('HEAD'$request->getMethod());
    }

    public function 
testCreatesOptionsRequests()
    {
        
$request RequestFactory::getInstance()->create('OPTIONS''http://www.example.com/');
        
$this->assertEquals('OPTIONS'$request->getMethod());
        
$this->assertInstanceOf('Guzzle\Http\Message\EntityEnclosingRequest'$request);
    }

    public function 
testCreatesNewPutRequestWithBody()
    {
        
$request RequestFactory::getInstance()->create('PUT''http://www.google.com/path?q=1&v=2'null'Data');
        
$this->assertEquals('Data', (string) $request->getBody());
    }

    public function 
testCreatesNewPostRequestWithFields()
    {
        
// Use an array
        
$request RequestFactory::getInstance()->create('POST''http://www.google.com/path?q=1&v=2'null, array(
            
'a' => 'b'
        
));
        
$this->assertEquals(array('a' => 'b'), $request->getPostFields()->getAll());
        unset(
$request);

        
// Use a collection
        
$request RequestFactory::getInstance()->create('POST''http://www.google.com/path?q=1&v=2'null, new Collection(array(
            
'a' => 'b'
        
)));
        
$this->assertEquals(array('a' => 'b'), $request->getPostFields()->getAll());

        
// Use a QueryString
        
$request RequestFactory::getInstance()->create('POST''http://www.google.com/path?q=1&v=2'null, new QueryString(array(
            
'a' => 'b'
        
)));
        
$this->assertEquals(array('a' => 'b'), $request->getPostFields()->getAll());

        
$request RequestFactory::getInstance()->create('POST''http://www.test.com/'null, array(
            
'a' => 'b',
            
'file' => '@' __FILE__
        
));

        
$this->assertEquals(array(
            
'a' => 'b'
        
), $request->getPostFields()->getAll());

        
$files $request->getPostFiles();
        
$this->assertInstanceOf('GuzzleHttpMessagePostFile'$files['file'][0]);
    }

    public function 
testCreatesFromParts()
    {
        
$parts parse_url('http://michael:123@www.google.com:8080/path?q=1&v=2');

        
$request RequestFactory::getInstance()->fromParts('PUT'$partsnull'Data');
        
$this->assertInstanceOf('Guzzle\Http\Message\EntityEnclosingRequest'$request);
        
$this->assertEquals('PUT'$request->getMethod());
        
$this->assertEquals('http'$request->getScheme());
        
$this->assertEquals('http://www.google.com:8080/path?q=1&v=2'$request->getUrl());
        
$this->assertEquals('www.google.com'$request->getHost());
        
$this->assertEquals('www.google.com:8080'$request->getHeader('Host'));
        
$this->assertEquals('/path'$request->getPath());
        
$this->assertEquals('/path?q=1&v=2'$request->getResource());
        
$this->assertInstanceOf('Guzzle\Http\EntityBody'$request->getBody());
        
$this->assertEquals('Data', (string) $request->getBody());
        
$this->assertEquals('michael'$request->getUsername());
        
$this->assertEquals('123'$request->getPassword());
        
$this->assertEquals('8080'$request->getPort());
        
$this->assertEquals(array(
            
'scheme' => 'http',
            
'host' => 'www.google.com',
            
'port' => 8080,
            
'path' => '/path',
            
'query' => 'q=1&v=2',
        ), 
parse_url($request->getUrl()));
    }

    public function 
testCreatesFromMessage()
    {
        
$auth base64_encode('michael:123');
        
$message "PUT /path?q=1&v=2 HTTP/1.1rnHost: www.google.com:8080rnContent-Length: 4rnAuthorization: Basic {$auth}rnrnData";
        
$request RequestFactory::getInstance()->fromMessage($message);
        
$this->assertInstanceOf('Guzzle\Http\Message\EntityEnclosingRequest'$request);
        
$this->assertEquals('PUT'$request->getMethod());
        
$this->assertEquals('http'$request->getScheme());
        
$this->assertEquals('http://www.google.com:8080/path?q=1&v=2'$request->getUrl());
        
$this->assertEquals('www.google.com'$request->getHost());
        
$this->assertEquals('www.google.com:8080'$request->getHeader('Host'));
        
$this->assertEquals('/path'$request->getPath());
        
$this->assertEquals('/path?q=1&v=2'$request->getResource());
        
$this->assertInstanceOf('Guzzle\Http\EntityBody'$request->getBody());
        
$this->assertEquals('Data', (string) $request->getBody());
        
$this->assertEquals("Basic {$auth}", (string) $request->getHeader('Authorization'));
        
$this->assertEquals('8080'$request->getPort());

        
// Test passing a blank message returns false
        
$this->assertFalse($request RequestFactory::getInstance()->fromMessage(''));

        
// Test passing a url with no port
        
$message "PUT /path?q=1&v=2 HTTP/1.1rnHost: www.google.comrnContent-Length: 4rnAuthorization: Basic {$auth}rnrnData";
        
$request RequestFactory::getInstance()->fromMessage($message);
        
$this->assertInstanceOf('Guzzle\Http\Message\EntityEnclosingRequest'$request);
        
$this->assertEquals('PUT'$request->getMethod());
        
$this->assertEquals('http'$request->getScheme());
        
$this->assertEquals('http://www.google.com/path?q=1&v=2'$request->getUrl());
        
$this->assertEquals('www.google.com'$request->getHost());
        
$this->assertEquals('/path'$request->getPath());
        
$this->assertEquals('/path?q=1&v=2'$request->getResource());
        
$this->assertInstanceOf('Guzzle\Http\EntityBody'$request->getBody());
        
$this->assertEquals('Data', (string) $request->getBody());
        
$this->assertEquals("Basic {$auth}", (string) $request->getHeader('Authorization'));
        
$this->assertEquals(80$request->getPort());
    }

    public function 
testCreatesNewTraceRequest()
    {
        
$request RequestFactory::getInstance()->create('TRACE''http://www.google.com/');
        
$this->assertFalse($request instanceof GuzzleHttpMessageEntityEnclosingRequest);
        
$this->assertEquals('TRACE'$request->getMethod());
    }

    public function 
testCreatesProperTransferEncodingRequests()
    {
        
$request RequestFactory::getInstance()->create('PUT''http://www.google.com/', array(
            
'Transfer-Encoding' => 'chunked'
        
), 'hello');
        
$this->assertEquals('chunked'$request->getHeader('Transfer-Encoding'));
        
$this->assertFalse($request->hasHeader('Content-Length'));
    }

    public function 
testProperlyDealsWithDuplicateHeaders()
    {
        
$parser = new MessageParser();

        
$message "POST / http/1.1rn"
            
"DATE:Mon, 09 Sep 2011 23:36:00 GMTrn"
            
"host:host.foo.comrn"
            
"ZOO:abcrn"
            
"ZOO:123rn"
            
"ZOO:HIrn"
            
"zoo:456rnrn";

        
$parts $parser->parseRequest($message);
        
$this->assertEquals(array (
            
'DATE' => 'Mon, 09 Sep 2011 23:36:00 GMT',
            
'host' => 'host.foo.com',
            
'ZOO'  => array('abc''123''HI'),
            
'zoo'  => '456',
        ), 
$parts['headers']);

        
$request RequestFactory::getInstance()->fromMessage($message);

        
$this->assertEquals(array(
            
'abc''123''HI''456'
        
), $request->getHeader('zoo')->toArray());
    }

    public function 
testCreatesHttpMessagesWithBodiesAndNormalizesLineEndings()
    {
        
$message "POST / http/1.1rn"
                 
"Content-Type:application/x-www-form-urlencoded; charset=utf8rn"
                 
"Date:Mon, 09 Sep 2011 23:36:00 GMTrn"
                 
"Host:host.foo.comrnrn"
                 
"foo=bar";

        
$request RequestFactory::getInstance()->fromMessage($message);
        
$this->assertEquals('application/x-www-form-urlencoded; charset=utf8', (string) $request->getHeader('Content-Type'));
        
$this->assertEquals('foo=bar', (string) $request->getBody());

        
$message "POST / http/1.1n"
                 
"Content-Type:application/x-www-form-urlencoded; charset=utf8n"
                 
"Date:Mon, 09 Sep 2011 23:36:00 GMTn"
                 
"Host:host.foo.comnn"
                 
"foo=bar";
        
$request RequestFactory::getInstance()->fromMessage($message);
        
$this->assertEquals('foo=bar', (string) $request->getBody());

        
$message "PUT / HTTP/1.1rnContent-Length: 0rnrn";
        
$request RequestFactory::getInstance()->fromMessage($message);
        
$this->assertTrue($request->hasHeader('Content-Length'));
        
$this->assertEquals(0, (string) $request->getHeader('Content-Length'));
    }

    public function 
testBugPathIncorrectlyHandled()
    {
        
$message "POST /foornrnBODY";
        
$request RequestFactory::getInstance()->fromMessage($message);
        
$this->assertSame('POST'$request->getMethod());
        
$this->assertSame('/foo'$request->getPath());
        
$this->assertSame('BODY', (string) $request->getBody());
    }

    public function 
testHandlesChunkedTransferEncoding()
    {
        
$request RequestFactory::getInstance()->create('PUT''http://www.foo.com/', array(
            
'Transfer-Encoding' => 'chunked'
        
), 'Test');
        
$this->assertFalse($request->hasHeader('Content-Length'));
        
$this->assertEquals('chunked'$request->getHeader('Transfer-Encoding'));

        
$request RequestFactory::getInstance()->create('POST''http://www.foo.com/', array(
            
'transfer-encoding' => 'chunked'
        
), array(
            
'foo' => 'bar'
        
));

        
$this->assertFalse($request->hasHeader('Content-Length'));
        
$this->assertEquals('chunked'$request->getHeader('Transfer-Encoding'));
    }

    public function 
testClonesRequestsWithMethodWithoutClient()
    {
        
$f RequestFactory::getInstance();
        
$request $f->create('GET''http://www.test.com', array('X-Foo' => 'Bar'));
        
$request->getParams()->replace(array('test' => '123'));
        
$request->getCurlOptions()->set('foo''bar');
        
$cloned $f->cloneRequestWithMethod($request'PUT');
        
$this->assertEquals('PUT'$cloned->getMethod());
        
$this->assertEquals('Bar', (string) $cloned->getHeader('X-Foo'));
        
$this->assertEquals('http://www.test.com'$cloned->getUrl());
        
// Ensure params are cloned and cleaned up
        
$this->assertEquals(1count($cloned->getParams()->getAll()));
        
$this->assertEquals('123'$cloned->getParams()->get('test'));
        
// Ensure curl options are cloned
        
$this->assertEquals('bar'$cloned->getCurlOptions()->get('foo'));
        
// Ensure event dispatcher is cloned
        
$this->assertNotSame($request->getEventDispatcher(), $cloned->getEventDispatcher());
    }

    public function 
testClonesRequestsWithMethodWithClient()
    {
        
$f RequestFactory::getInstance();
        
$client = new Client();
        
$request $client->put('http://www.test.com', array('Content-Length' => 4), 'test');
        
$cloned $f->cloneRequestWithMethod($request'GET');
        
$this->assertEquals('GET'$cloned->getMethod());
        
$this->assertNull($cloned->getHeader('Content-Length'));
        
$this->assertEquals('http://www.test.com'$cloned->getUrl());
        
$this->assertSame($request->getClient(), $cloned->getClient());
    }

    public function 
testClonesRequestsWithMethodWithClientWithEntityEnclosingChange()
    {
        
$f RequestFactory::getInstance();
        
$client = new Client();
        
$request $client->put('http://www.test.com', array('Content-Length' => 4), 'test');
        
$cloned $f->cloneRequestWithMethod($request'POST');
        
$this->assertEquals('POST'$cloned->getMethod());
        
$this->assertEquals('test', (string) $cloned->getBody());
    }

    public function 
testCanDisableRedirects()
    {
        
$this->getServer()->enqueue(array(
            
"HTTP/1.1 307rnLocation: " $this->getServer()->getUrl() . "rnContent-Length: 0rnrn"
        
));
        
$client = new Client($this->getServer()->getUrl());
        
$response $client->get('/', array(), array('allow_redirects' => false))->send();
        
$this->assertEquals(307$response->getStatusCode());
    }

    public function 
testCanAddCookies()
    {
        
$client = new Client($this->getServer()->getUrl());
        
$request $client->get('/', array(), array('cookies' => array('Foo' => 'Bar')));
        
$this->assertEquals('Bar'$request->getCookie('Foo'));
    }

    public function 
testCanAddQueryString()
    {
        
$request RequestFactory::getInstance()->create('GET''http://foo.com', array(), null, array(
            
'query' => array('Foo' => 'Bar')
        ));
        
$this->assertEquals('Bar'$request->getQuery()->get('Foo'));
    }

    public function 
testCanSetDefaultQueryString()
    {
        
$request = new Request('GET''http://www.foo.com?test=abc');
        
RequestFactory::getInstance()->applyOptions($request, array(
            
'query' => array('test' => '123''other' => 't123')
        ), 
RequestFactory::OPTIONS_AS_DEFAULTS);
        
$this->assertEquals('abc'$request->getQuery()->get('test'));
        
$this->assertEquals('t123'$request->getQuery()->get('other'));
    }

    public function 
testCanAddBasicAuth()
    {
        
$request RequestFactory::getInstance()->create('GET''http://foo.com', array(), null, array(
            
'auth' => array('michael''test')
        ));
        
$this->assertEquals('michael'$request->getUsername());
        
$this->assertEquals('test'$request->getPassword());
    }

    public function 
testCanAddDigestAuth()
    {
        
$request RequestFactory::getInstance()->create('GET''http://foo.com', array(), null, array(
            
'auth' => array('michael''test''digest')
        ));
        
$this->assertEquals(CURLAUTH_DIGEST$request->getCurlOptions()->get(CURLOPT_HTTPAUTH));
        
$this->assertEquals('michael'$request->getUsername());
        
$this->assertEquals('test'$request->getPassword());
    }

    public function 
testCanAddEvents()
    {
        
$foo null;
        
$client = new Client();
        
$client->addSubscriber(new MockPlugin(array(new Response(200))));
        
$request $client->get($this->getServer()->getUrl(), array(), array(
            
'events' => array(
                
'request.before_send' => function () use (&$foo) { $foo true; }
            )
        ));
        
$request->send();
        
$this->assertTrue($foo);
    }

    public function 
testCanAddEventsWithPriority()
    {
        
$foo null;
        
$client = new Client();
        
$client->addSubscriber(new MockPlugin(array(new Response(200))));
        
$request $client->get($this->getServer()->getUrl(), array(), array(
            
'events' => array(
                
'request.before_send' => array(function () use (&$foo) { $foo true; }, 100)
            )
        ));
        
$request->send();
        
$this->assertTrue($foo);
    }

    public function 
testCanAddPlugins()
    {
        
$mock = new MockPlugin(array(
            new 
Response(200),
            new 
Response(200)
        ));
        
$client = new Client();
        
$client->addSubscriber($mock);
        
$request $client->get('/', array(), array(
            
'plugins' => array($mock)
        ));
        
$request->send();
    }

    public function 
testCanDisableExceptions()
    {
        
$client = new Client();
        
$request $client->get('/', array(), array(
            
'plugins' => array(new MockPlugin(array(new Response(500)))),
            
'exceptions' => false
        
));
        
$this->assertEquals(500$request->send()->getStatusCode());
    }

    public function 
testCanDisableExceptionsWithErrorListener()
    {
        
$client = new Client();
        
$client->getEventDispatcher()->addListener('request.error', function () {});
        
$request $client->get('/', array(), array(
                
'plugins' => array(new MockPlugin(array(new Response(500)))),
                
'exceptions' => false
            
));
        
$this->assertEquals(500$request->send()->getStatusCode());
    }

    public function 
testCanChangeSaveToLocation()
    {
        
$r EntityBody::factory();
        
$client = new Client();
        
$request $client->get('/', array(), array(
            
'plugins' => array(new MockPlugin(array(new Response(200, array(), 'testing')))),
            
'save_to' => $r
        
));
        
$request->send();
        
$this->assertEquals('testing', (string) $r);
    }

    public function 
testCanSetProxy()
    {
        
$client = new Client();
        
$request $client->get('/', array(), array('proxy' => '192.168.16.121'));
        
$this->assertEquals('192.168.16.121'$request->getCurlOptions()->get(CURLOPT_PROXY));
    }

    public function 
testCanSetHeadersOption()
    {
        
$client = new Client();
        
$request $client->get('/', array(), array('headers' => array('Foo' => 'Bar')));
        
$this->assertEquals('Bar', (string) $request->getHeader('Foo'));
    }

    public function 
testCanSetDefaultHeadersOptions()
    {
        
$request = new Request('GET''http://www.foo.com', array('Foo' => 'Bar'));
        
RequestFactory::getInstance()->applyOptions($request, array(
            
'headers' => array('Foo' => 'Baz''Bam' => 't123')
        ), 
RequestFactory::OPTIONS_AS_DEFAULTS);
        
$this->assertEquals('Bar', (string) $request->getHeader('Foo'));
        
$this->assertEquals('t123', (string) $request->getHeader('Bam'));
    }

    public function 
testCanSetBodyOption()
    {
        
$client = new Client();
        
$request $client->put('/', array(), null, array('body' => 'test'));
        
$this->assertEquals('test', (string) $request->getBody());
    }

    
/**
     * @expectedException InvalidArgumentException
     */
    
public function testValidatesBodyOption()
    {
        
$client = new Client();
        
$client->get('/', array(), array('body' => 'test'));
    }

    public function 
testCanSetTimeoutOption()
    {
        
$client = new Client();
        
$request $client->get('/', array(), array('timeout' => 1.5));
        
$this->assertEquals(1500$request->getCurlOptions()->get(CURLOPT_TIMEOUT_MS));
    }

    public function 
testCanSetConnectTimeoutOption()
    {
        
$client = new Client();
        
$request $client->get('/', array(), array('connect_timeout' => 1.5));
        
$this->assertEquals(1500$request->getCurlOptions()->get(CURLOPT_CONNECTTIMEOUT_MS));
    }

    public function 
testCanSetDebug()
    {
        
$client = new Client();
        
$request $client->get('/', array(), array('debug' => true));
        
$this->assertTrue($request->getCurlOptions()->get(CURLOPT_VERBOSE));
    }

    public function 
testCanSetVerifyToOff()
    {
        
$client = new Client();
        
$request $client->get('/', array(), array('verify' => false));
        
$this->assertNull($request->getCurlOptions()->get(CURLOPT_CAINFO));
        
$this->assertSame(0$request->getCurlOptions()->get(CURLOPT_SSL_VERIFYHOST));
        
$this->assertFalse($request->getCurlOptions()->get(CURLOPT_SSL_VERIFYPEER));
    }

    public function 
testCanSetVerifyToOn()
    {
        
$client = new Client();
        
$request $client->get('/', array(), array('verify' => true));
        
$this->assertNotNull($request->getCurlOptions()->get(CURLOPT_CAINFO));
        
$this->assertSame(2$request->getCurlOptions()->get(CURLOPT_SSL_VERIFYHOST));
        
$this->assertTrue($request->getCurlOptions()->get(CURLOPT_SSL_VERIFYPEER));
    }

    public function 
testCanSetVerifyToPath()
    {
        
$client = new Client();
        
$request $client->get('/', array(), array('verify' => '/foo.pem'));
        
$this->assertEquals('/foo.pem'$request->getCurlOptions()->get(CURLOPT_CAINFO));
        
$this->assertSame(2$request->getCurlOptions()->get(CURLOPT_SSL_VERIFYHOST));
        
$this->assertTrue($request->getCurlOptions()->get(CURLOPT_SSL_VERIFYPEER));
    }

    public function 
inputValidation()
    {
        return 
array_map(function ($option) { return array($option); }, array(
            
'headers''query''cookies''auth''events''plugins''params'
        
));
    }

    
/**
     * @dataProvider inputValidation
     * @expectedException GuzzleCommonExceptionInvalidArgumentException
     */
    
public function testValidatesInput($option)
    {
        
$client = new Client();
        
$client->get('/', array(), array($option => 'foo'));
    }

    public function 
testCanAddRequestParams()
    {
        
$client = new Client();
        
$request $client->put('/', array(), null, array('params' => array('foo' => 'test')));
        
$this->assertEquals('test'$request->getParams()->get('foo'));
    }

    public function 
testCanAddSslKey()
    {
        
$client = new Client();
        
$request $client->get('/', array(), array('ssl_key' => '/foo.pem'));
        
$this->assertEquals('/foo.pem'$request->getCurlOptions()->get(CURLOPT_SSLKEY));
    }

    public function 
testCanAddSslKeyPassword()
    {
        
$client = new Client();
        
$request $client->get('/', array(), array('ssl_key' => array('/foo.pem''bar')));
        
$this->assertEquals('/foo.pem'$request->getCurlOptions()->get(CURLOPT_SSLKEY));
        
$this->assertEquals('bar'$request->getCurlOptions()->get(CURLOPT_SSLKEYPASSWD));
    }

    public function 
testCanAddSslCert()
    {
        
$client = new Client();
        
$request $client->get('/', array(), array('cert' => '/foo.pem'));
        
$this->assertEquals('/foo.pem'$request->getCurlOptions()->get(CURLOPT_SSLCERT));
    }

    public function 
testCanAddSslCertPassword()
    {
        
$client = new Client();
        
$request $client->get('/', array(), array('cert' => array('/foo.pem''bar')));
        
$this->assertEquals('/foo.pem'$request->getCurlOptions()->get(CURLOPT_SSLCERT));
        
$this->assertEquals('bar'$request->getCurlOptions()->get(CURLOPT_SSLCERTPASSWD));
    }

    public function 
testCreatesBodyWithoutZeroString()
    {
        
$request RequestFactory::getInstance()->create('PUT''http://test.com', array(), '0');
        
$this->assertSame('0', (string) $request->getBody());
    }
}
Онлайн: 2
Реклама