/** * Test asynchronous request through socketPerform() and socketSelect() * * @return void */ public function testRequestAsynchronous() { $test = $this; $req = new cURL\Request(); $req->getOptions()->set(CURLOPT_URL, $this->okTestUrl)->set(CURLOPT_RETURNTRANSFER, true); $req->addListener('complete', function ($event) use($test) { $test->validateSuccesfulResponse('/', $event->response); }); $n = 0; while ($req->socketPerform()) { $n++; $req->socketSelect(); } try { $req->socketPerform(); } catch (cURL\Exception $e) { } $this->assertInstanceOf('cURL\\Exception', $e); $this->assertGreaterThan(0, $n); $req = new cURL\Request(); $req->getOptions()->set(CURLOPT_URL, $this->errorTestUrl)->set(CURLOPT_TIMEOUT, 1)->set(CURLOPT_RETURNTRANSFER, true); $req->addListener('complete', function ($event) use($test) { $test->validateTimeoutedResponse($event->response); }); while ($req->socketPerform()) { $req->socketSelect(); } }
/** * Tests whether 'complete' event on individual Request has been fired * once when using RequestsQueue */ public function testRequestCompleteEventAsynchronous() { $eventFired = 0; $req = new cURL\Request(); $req->getOptions()->set(CURLOPT_URL, $this->createRequestUrl())->set(CURLOPT_RETURNTRANSFER, true); $req->addListener('complete', function ($event) use(&$eventFired) { $this->validateSuccesfulResponse($event->response); $eventFired++; }); while ($req->socketPerform()) { $req->socketSelect(); } $this->assertEquals(1, $eventFired); }