From 84201bcaaa2ce75b8069fbc25db5297cfb1436a8 Mon Sep 17 00:00:00 2001 From: Zach Borboa Date: Sat, 28 Dec 2013 22:43:47 -0800 Subject: [PATCH] Ensure success, error, and complete callbacks are called correctly --- Curl.class.php | 6 +++--- tests/run.php | 26 +++++++++++++++++++++++--- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/Curl.class.php b/Curl.class.php index c239cae..6888553 100644 --- a/Curl.class.php +++ b/Curl.class.php @@ -244,13 +244,13 @@ class Curl { $ch->error_message = $ch->curl_error ? $ch->curl_error_message : $ch->http_error_message; if (!$ch->error) { - $ch->_call($ch->_success, $ch); + $ch->_call($this->_success, $ch); } else { - $ch->_call($ch->_error, $ch); + $ch->_call($this->_error, $ch); } - $ch->_call($ch->_complete, $ch); + $ch->_call($this->_complete, $ch); return $ch->error_code; } diff --git a/tests/run.php b/tests/run.php index 0de6c0f..560112d 100644 --- a/tests/run.php +++ b/tests/run.php @@ -342,31 +342,48 @@ class CurlTest extends PHPUnit_Framework_TestCase { $error_called = FALSE; $complete_called = FALSE; + $success_called_once = FALSE; + $error_called_once = FALSE; + $complete_called_once = FALSE; + $curl = new Curl(); $curl->setHeader('X-DEBUG-TEST', 'get'); $curl->setOpt(CURLOPT_SSL_VERIFYPEER, FALSE); $curl->setOpt(CURLOPT_SSL_VERIFYHOST, FALSE); - $curl->success(function($instance) use (&$success_called, &$error_called, &$complete_called) { + $curl->success(function($instance) use (&$success_called, + &$error_called, + &$complete_called, + &$success_called_once) { PHPUnit_Framework_Assert::assertInstanceOf('Curl', $instance); PHPUnit_Framework_Assert::assertFalse($success_called); PHPUnit_Framework_Assert::assertFalse($error_called); PHPUnit_Framework_Assert::assertFalse($complete_called); $success_called = TRUE; + $success_called_once = TRUE; }); - $curl->error(function($instance) use (&$success_called, &$error_called, &$complete_called, &$curl) { + $curl->error(function($instance) use (&$success_called, + &$error_called, + &$complete_called, + &$curl, + &$error_called_once) { PHPUnit_Framework_Assert::assertInstanceOf('Curl', $instance); PHPUnit_Framework_Assert::assertFalse($success_called); PHPUnit_Framework_Assert::assertFalse($error_called); PHPUnit_Framework_Assert::assertFalse($complete_called); $error_called = TRUE; + $error_called_once = TRUE; }); - $curl->complete(function($instance) use (&$success_called, &$error_called, &$complete_called) { + $curl->complete(function($instance) use (&$success_called, + &$error_called, + &$complete_called, + &$complete_called_once) { PHPUnit_Framework_Assert::assertInstanceOf('Curl', $instance); PHPUnit_Framework_Assert::assertTrue($success_called); PHPUnit_Framework_Assert::assertFalse($error_called); PHPUnit_Framework_Assert::assertFalse($complete_called); $complete_called = TRUE; + $complete_called_once = TRUE; PHPUnit_Framework_Assert::assertTrue($success_called); PHPUnit_Framework_Assert::assertFalse($error_called); @@ -382,6 +399,9 @@ class CurlTest extends PHPUnit_Framework_TestCase { Test::TEST_URL . '/b/', Test::TEST_URL . '/c/', )); + + PHPUnit_Framework_Assert::assertTrue($success_called_once || $error_called_once); + PHPUnit_Framework_Assert::assertTrue($complete_called_once); } public function testErrorCallback() {