Open Monograph Press  3.3.0
AsyncPluginTest.php
1 <?php
2 
4 
12 
17 {
18  public function testSubscribesToEvents()
19  {
21  $this->assertArrayHasKey('request.before_send', $events);
22  $this->assertArrayHasKey('request.exception', $events);
23  $this->assertArrayHasKey('curl.callback.progress', $events);
24  }
25 
26  public function testEnablesProgressCallbacks()
27  {
28  $p = new AsyncPlugin();
29  $request = RequestFactory::getInstance()->create('PUT', 'http://www.example.com');
30  $event = new Event(array(
31  'request' => $request
32  ));
33  $p->onBeforeSend($event);
34  $this->assertEquals(true, $request->getCurlOptions()->get('progress'));
35  }
36 
37  public function testAddsTimesOutAfterSending()
38  {
39  $p = new AsyncPlugin();
40  $request = RequestFactory::getInstance()->create('PUT', 'http://www.example.com');
41  $handle = CurlHandle::factory($request);
42  $event = new Event(array(
43  'request' => $request,
44  'handle' => $handle->getHandle(),
45  'uploaded' => 10,
46  'upload_size' => 10,
47  'downloaded' => 0
48  ));
49  $p->onCurlProgress($event);
50  }
51 
52  public function testEnsuresRequestIsSet()
53  {
54  $p = new AsyncPlugin();
55  $event = new Event(array(
56  'uploaded' => 10,
57  'upload_size' => 10,
58  'downloaded' => 0
59  ));
60  $p->onCurlProgress($event);
61  }
62 
63  public function testMasksCurlExceptions()
64  {
65  $p = new AsyncPlugin();
66  $request = RequestFactory::getInstance()->create('PUT', 'http://www.example.com');
67  $e = new CurlException('Error');
68  $event = new Event(array(
69  'request' => $request,
70  'exception' => $e
71  ));
72  $p->onRequestTimeout($event);
73  $this->assertEquals(RequestInterface::STATE_COMPLETE, $request->getState());
74  $this->assertEquals(200, $request->getResponse()->getStatusCode());
75  $this->assertTrue($request->getResponse()->hasHeader('X-Guzzle-Async'));
76  }
77 
78  public function testEnsuresIntegration()
79  {
80  $this->getServer()->flush();
81  $this->getServer()->enqueue("HTTP/1.1 204 FOO\r\nContent-Length: 4\r\n\r\ntest");
82  $client = new Client($this->getServer()->getUrl());
83  $request = $client->post('/', null, array(
84  'foo' => 'bar'
85  ));
86  $request->getEventDispatcher()->addSubscriber(new AsyncPlugin());
87  $request->send();
88  $this->assertEquals('', $request->getResponse()->getBody(true));
89  $this->assertTrue($request->getResponse()->hasHeader('X-Guzzle-Async'));
90  $received = $this->getServer()->getReceivedRequests(true);
91  $this->assertEquals('POST', $received[0]->getMethod());
92  }
93 }
Guzzle\Tests\Plugin\Async\AsyncPluginTest\testSubscribesToEvents
testSubscribesToEvents()
Definition: AsyncPluginTest.php:18
Guzzle\Tests\Plugin\Async
Definition: AsyncPluginTest.php:3
Guzzle\Tests\Plugin\Async\AsyncPluginTest\testAddsTimesOutAfterSending
testAddsTimesOutAfterSending()
Definition: AsyncPluginTest.php:37
Guzzle\Tests\Plugin\Async\AsyncPluginTest\testEnsuresRequestIsSet
testEnsuresRequestIsSet()
Definition: AsyncPluginTest.php:52
Guzzle\Http\Exception\CurlException
Definition: CurlException.php:10
Guzzle\Tests\Plugin\Async\AsyncPluginTest\testMasksCurlExceptions
testMasksCurlExceptions()
Definition: AsyncPluginTest.php:63
Guzzle\Tests\Plugin\Async\AsyncPluginTest
Definition: AsyncPluginTest.php:16
Guzzle\Http\Message\RequestInterface
Definition: lib/vendor/guzzle/guzzle/src/Guzzle/Http/Message/RequestInterface.php:16
Guzzle\Http\Message\RequestInterface\STATE_COMPLETE
const STATE_COMPLETE
Definition: lib/vendor/guzzle/guzzle/src/Guzzle/Http/Message/RequestInterface.php:19
Guzzle\Tests\GuzzleTestCase
Definition: GuzzleTestCase.php:22
Guzzle\Tests\Plugin\Async\AsyncPluginTest\testEnablesProgressCallbacks
testEnablesProgressCallbacks()
Definition: AsyncPluginTest.php:26
Guzzle\Plugin\Async\AsyncPlugin
Definition: AsyncPlugin.php:13
Guzzle\Common\Event
Definition: lib/vendor/guzzle/guzzle/src/Guzzle/Common/Event.php:10
Guzzle\Plugin\Async\AsyncPlugin\getSubscribedEvents
static getSubscribedEvents()
Definition: AsyncPlugin.php:15
Guzzle\Http\Message\RequestFactory
Definition: lib/vendor/guzzle/guzzle/src/Guzzle/Http/Message/RequestFactory.php:14
Guzzle\Tests\Plugin\Async\AsyncPluginTest\testEnsuresIntegration
testEnsuresIntegration()
Definition: AsyncPluginTest.php:78
Guzzle\Http\Client
Definition: paymethod/paypal/lib/vendor/guzzle/guzzle/src/Guzzle/Http/Client.php:24
Guzzle\Http\Message\RequestFactory\getInstance
static getInstance()
Definition: lib/vendor/guzzle/guzzle/src/Guzzle/Http/Message/RequestFactory.php:42
Guzzle\Http\Curl\CurlHandle
Definition: CurlHandle.php:16
Guzzle\Tests\GuzzleTestCase\getServer
static getServer()
Definition: GuzzleTestCase.php:36
Guzzle\Http\Curl\CurlHandle\factory
static factory(RequestInterface $request)
Definition: CurlHandle.php:52