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

namespace GuzzleTestsHttpCurl;

use 
GuzzleHttpClient;
use 
GuzzleHttpMessageEntityEnclosingRequest;
use 
GuzzleHttpMessageResponse;
use 
GuzzleHttpCurlRequestMediator;

/**
 * @covers GuzzleHttpCurlRequestMediator
 */
class RequestMediatorTest extends GuzzleTestsGuzzleTestCase
{
    public 
$events = array();

    public function 
event($event)
    {
        
$this->events[] = $event;
    }

    public function 
testEmitsEvents()
    {
        
$request = new EntityEnclosingRequest('PUT''http://www.example.com');
        
$request->setBody('foo');
        
$request->setResponse(new Response(200));

        
// Ensure that IO events are emitted
        
$request->getCurlOptions()->set('emit_io'true);

        
// Attach listeners for each event type
        
$request->getEventDispatcher()->addListener('curl.callback.progress', array($this'event'));
        
$request->getEventDispatcher()->addListener('curl.callback.read', array($this'event'));
        
$request->getEventDispatcher()->addListener('curl.callback.write', array($this'event'));

        
$mediator = new RequestMediator($requesttrue);

        
$mediator->progress('a''b''c''d');
        
$this->assertEquals(1count($this->events));
        
$this->assertEquals('curl.callback.progress'$this->events[0]->getName());

        
$this->assertEquals(3$mediator->writeResponseBody('foo''bar'));
        
$this->assertEquals(2count($this->events));
        
$this->assertEquals('curl.callback.write'$this->events[1]->getName());
        
$this->assertEquals('bar'$this->events[1]['write']);
        
$this->assertSame($request$this->events[1]['request']);

        
$this->assertEquals('foo'$mediator->readRequestBody('a''b'3));
        
$this->assertEquals(3count($this->events));
        
$this->assertEquals('curl.callback.read'$this->events[2]->getName());
        
$this->assertEquals('foo'$this->events[2]['read']);
        
$this->assertSame($request$this->events[2]['request']);
    }

    public function 
testDoesNotUseRequestResponseBodyWhenNotCustom()
    {
        
$this->getServer()->flush();
        
$this->getServer()->enqueue(array(
            
"HTTP/1.1 307 FoornLocation: /foornContent-Length: 2rnrnHI",
            
"HTTP/1.1 301 FoornLocation: /foornContent-Length: 2rnrnFI",
            
"HTTP/1.1 200 OKrnContent-Length: 4rnrntest",
        ));
        
$client = new Client($this->getServer()->getUrl());
        
$response $client->get()->send();
        
$this->assertEquals('test'$response->getBody(true));
    }
}
Онлайн: 2
Реклама