diff --git a/tests/PHPCurlClass/PHPMultiCurlClassTest.php b/tests/PHPCurlClass/PHPMultiCurlClassTest.php index d396db9..5eaa14d 100644 --- a/tests/PHPCurlClass/PHPMultiCurlClassTest.php +++ b/tests/PHPCurlClass/PHPMultiCurlClassTest.php @@ -1172,4 +1172,184 @@ class MultiCurlTest extends PHPUnit_Framework_TestCase $this->assertTrue($put_error_called); $this->assertTrue($put_complete_called); } + + public function testCurlCallbackOverride() + { + $multi_curl = new MultiCurl(); + $multi_curl->beforeSend(function() { + PHPUnit_Framework_Assert::assertFalse(true); + }); + $multi_curl->success(function() { + PHPUnit_Framework_Assert::assertFalse(true); + }); + $multi_curl->error(function() { + PHPUnit_Framework_Assert::assertFalse(true); + }); + $multi_curl->complete(function() { + PHPUnit_Framework_Assert::assertFalse(true); + }); + + $delete_before_send_called = false; + $delete_success_called = false; + $delete_error_called = false; + $delete_complete_called = false; + $delete = $multi_curl->addDelete(Test::TEST_URL); + $delete->beforeSend(function ($instance) use (&$delete_before_send_called) { + $delete_before_send_called = true; + }); + $delete->success(function ($instance) use (&$delete_success_called) { + $delete_success_called = true; + }); + $delete->error(function ($instance) use (&$delete_error_called) { + $delete_error_called = true; + }); + $delete->complete(function ($instance) use (&$delete_complete_called) { + $delete_complete_called = true; + }); + + $get_before_send_called = false; + $get_success_called = false; + $get_error_called = false; + $get_complete_called = false; + $get = $multi_curl->addGet(Test::TEST_URL); + $get->beforeSend(function ($instance) use (&$get_before_send_called) { + $get_before_send_called = true; + }); + $get->success(function ($instance) use (&$get_success_called) { + $get_success_called = true; + }); + $get->error(function ($instance) use (&$get_error_called) { + $get_error_called = true; + }); + $get->complete(function ($instance) use (&$get_complete_called) { + $get_complete_called = true; + }); + + $head_before_send_called = false; + $head_success_called = false; + $head_error_called = false; + $head_complete_called = false; + $head = $multi_curl->addHead(Test::TEST_URL); + $head->beforeSend(function ($instance) use (&$head_before_send_called) { + $head_before_send_called = true; + }); + $head->success(function ($instance) use (&$head_success_called) { + $head_success_called = true; + }); + $head->error(function ($instance) use (&$head_error_called) { + $head_error_called = true; + }); + $head->complete(function ($instance) use (&$head_complete_called) { + $head_complete_called = true; + }); + + $options_before_send_called = false; + $options_success_called = false; + $options_error_called = false; + $options_complete_called = false; + $options = $multi_curl->addOptions(Test::TEST_URL); + $options->beforeSend(function ($instance) use (&$options_before_send_called) { + $options_before_send_called = true; + }); + $options->success(function ($instance) use (&$options_success_called) { + $options_success_called = true; + }); + $options->error(function ($instance) use (&$options_error_called) { + $options_error_called = true; + }); + $options->complete(function ($instance) use (&$options_complete_called) { + $options_complete_called = true; + }); + + $patch_before_send_called = false; + $patch_success_called = false; + $patch_error_called = false; + $patch_complete_called = false; + $patch = $multi_curl->addPatch(Test::TEST_URL); + $patch->beforeSend(function ($instance) use (&$patch_before_send_called) { + $patch_before_send_called = true; + }); + $patch->success(function ($instance) use (&$patch_success_called) { + $patch_success_called = true; + }); + $patch->error(function ($instance) use (&$patch_error_called) { + $patch_error_called = true; + }); + $patch->complete(function ($instance) use (&$patch_complete_called) { + $patch_complete_called = true; + }); + + $post_before_send_called = false; + $post_success_called = false; + $post_error_called = false; + $post_complete_called = false; + $post = $multi_curl->addPost(Test::TEST_URL); + $post->beforeSend(function ($instance) use (&$post_before_send_called) { + $post_before_send_called = true; + }); + $post->success(function ($instance) use (&$post_success_called) { + $post_success_called = true; + }); + $post->error(function ($instance) use (&$post_error_called) { + $post_error_called = true; + }); + $post->complete(function ($instance) use (&$post_complete_called) { + $post_complete_called = true; + }); + + $put_before_send_called = false; + $put_success_called = false; + $put_error_called = false; + $put_complete_called = false; + $put = $multi_curl->addPut(Test::TEST_URL); + $put->beforeSend(function ($instance) use (&$put_before_send_called) { + $put_before_send_called = true; + }); + $put->success(function ($instance) use (&$put_success_called) { + $put_success_called = true; + }); + $put->error(function ($instance) use (&$put_error_called) { + $put_error_called = true; + }); + $put->complete(function ($instance) use (&$put_complete_called) { + $put_complete_called = true; + }); + + $multi_curl->start(); + + $this->assertTrue($delete_before_send_called); + $this->assertTrue($delete_success_called); + $this->assertFalse($delete_error_called); + $this->assertTrue($delete_complete_called); + + $this->assertTrue($get_before_send_called); + $this->assertTrue($get_success_called); + $this->assertFalse($get_error_called); + $this->assertTrue($get_complete_called); + + $this->assertTrue($head_before_send_called); + $this->assertTrue($head_success_called); + $this->assertFalse($head_error_called); + $this->assertTrue($head_complete_called); + + $this->assertTrue($options_before_send_called); + $this->assertTrue($options_success_called); + $this->assertFalse($options_error_called); + $this->assertTrue($options_complete_called); + + $this->assertTrue($patch_before_send_called); + $this->assertTrue($patch_success_called); + $this->assertFalse($patch_error_called); + $this->assertTrue($patch_complete_called); + + $this->assertTrue($post_before_send_called); + $this->assertTrue($post_success_called); + $this->assertFalse($post_error_called); + $this->assertTrue($post_complete_called); + + $this->assertTrue($put_before_send_called); + $this->assertTrue($put_success_called); + $this->assertFalse($put_error_called); + $this->assertTrue($put_complete_called); + } }