226 Commits

Author SHA1 Message Date
Zach Borboa e8b66975d0 Fix risky test missing assertion 2022-08-23 14:19:57 -07:00
Zach Borboa c2eec0667e Fix building post data for object
PHP 8 error messages:
    TypeError: array_keys(): Argument #1 ($array) must be of type array, stdClass given
    TypeError: array_values(): Argument #1 ($array) must be of type array, stdClass given

PHP 7 error messages:
    TypeError: array_keys() expects parameter 1 to be array, object given
    TypeError: array_values() expects parameter 1 to be array, object given
2022-08-19 09:46:26 -04:00
Zach Borboa 85e94ba1b1 Fix #725: Encode keys for post data with numeric keys 2022-07-28 23:47:29 -04:00
Zach Borboa a33b7bde4e Fix #707: Call MultiCurl::beforeSend() before each request is made 2022-07-01 11:21:57 -04:00
Zach Borboa 30ffe42915 Fix #712: Retain keys for arrays with null values 2022-06-23 12:44:46 -04:00
Zach Borboa 523386ec01 Fix #714: Attempt to stop active requests when MultiCurl::stop() is called 2022-06-23 08:26:20 -04:00
Zach Borboa 7dae1c6b54 Update server test names 2021-11-23 23:24:54 -05:00
Theodoros-Franz Gerakitis e999cb4e25 Fix #686: Build url without using data parameter
Also for PATCH, PUT & SEARCH requests
2021-11-23 23:23:08 -05:00
Zach Borboa 860645c623 Add option to skip slow tests using an environment variable
Enable the PHP_CURL_CLASS_SKIP_SLOW_TESTS flag to skip the slow tests:
    $ time ./tests/run.sh
    real	16m24.624s ←
    user	0m1.682s
    sys	0m1.645s

    $ time PHP_CURL_CLASS_SKIP_SLOW_TESTS=1 ./tests/run.sh
    real	0m47.441s ←
    user	0m20.005s
    sys	0m10.802s
2021-11-23 20:37:33 -05:00
Zach Borboa 92a8f3bbe2 Fix #686: Build url without using data parameter 2021-11-20 23:43:44 -05:00
Zach Borboa 0c8eab3083 Fix empty request headers value 2021-11-20 15:43:36 -05:00
Zach Borboa a4f4223b98 Implement Curl::setStop() for stopping requests early
Use Curl::setStop() to stop requests early without downloading
the full response.
2021-09-15 05:49:25 -04:00
Zach Borboa 620bf40691 Move ArrayUtil tests under ArrayUtilTest 2021-07-26 21:48:17 -04:00
Zach Borboa cd825550b2 Fix Curl::downloadFileName not being correctly set 2021-07-26 20:17:14 -04:00
Zach Borboa 285b4f02e6 Update tests to more closely match one another 2021-07-26 10:29:24 -04:00
Zach Borboa bb1a190071 Use strict types 2021-07-26 00:48:18 -04:00
Zach Borboa 6ceabf7293 Clean up 2021-07-26 00:35:01 -04:00
Zach Borboa 1226bb1a6c Implement option to capture output of Curl::diagnose() 2021-07-20 23:28:20 -04:00
Zach Borboa 7348de72f3 Clean up 2021-07-20 23:10:20 -04:00
Zach Borboa 18e76855c2 Fix assertion 2021-07-20 23:01:40 -04:00
Zach Borboa 2a899465c4 Add method to run basic request diagnostics 2021-07-18 21:56:03 -04:00
Zach Borboa 250421927f Add additional Curl::set* and MultiCurl::set* helper methods 2021-06-17 11:14:29 -04:00
Zach Borboa fe829855cb Fix #670: Add additional checks before attempting to close curl handles 2021-06-09 20:58:33 -04:00
Zach Borboa b88fd76ffc Move Curl::buildUrl() to Url::buildUrl() 2021-03-23 10:02:11 -04:00
Zach Borboa 161f9aea63 Use short array syntax 2021-03-18 01:15:52 -04:00
Zach Borboa cc3f7bac24 Remove PHP v5.x support and add basic doc for how one may install the old version 2021-03-17 12:19:38 -04:00
Zach Borboa 05a1a21090 Remove official support of HHVM
As of HHVM 4.0, PHP is no longer supported:
    "With this release, we no longer aim to be compatible with PHP"
    "We are considering removing support for <?php in the next release [...]"
2021-03-17 09:33:50 -04:00
Zach Borboa d946b02b89 Clean up references of the previous continuous integration 2021-03-17 01:07:48 -04:00
Zach Borboa 6645958447 Remove fix attempt for CurlTest::testTimeout() 2021-03-17 00:40:36 -04:00
Zach Borboa 7697d2be2b Use message from test helper when assertion fails 2021-03-16 21:57:12 -04:00
Zach Borboa 1d35adf53d Attempt to fix the timeout tests failing
Use different ports for the timeout tests as the development server can
only handle one request at a time (single-threaded).
2021-03-16 09:18:28 -04:00
Zach Borboa 6d04c33645 Attempt to fix timeout issue only occurring on ci 2021-03-15 22:35:18 -04:00
Zach Borboa f979b5ee87 Fix variable 2021-03-15 21:23:33 -04:00
Zach Borboa c1eff76154 Add additional debugging 2021-03-15 20:57:07 -04:00
Zach Borboa a143250a68 Add debugging error message 2021-03-15 20:25:07 -04:00
Zach Borboa 6531a8443b Fix multipart/form-data tests expecting an Expect header 2021-03-15 07:01:22 -04:00
Zach Borboa dd15d946c0 Skip test on PHP 8.0 and later due to error 2021-03-14 00:25:17 -05:00
Zach Borboa 79e7ddafb5 Fix tests as curl_init() and curl_multi_init() can return an object
As of PHP 8.0.0, curl_init() and curl_multi_init() return an object
instead of a resource. Update the tests to pass when the curl init
functions return either an object or a resource.
2021-03-13 20:32:20 -05:00
Zach Borboa 75adc83a5c Add tests that expose the empty cookie jar after close bug 2021-03-13 18:18:15 -05:00
Zach Borboa 9d4134b830 Use a helper function to access values of private class properties 2020-10-31 21:28:15 -07:00
Zach Borboa 37c605f9e4 Fix #651: Allow passing an indexed array to Curl::setHeaders() 2020-10-30 21:52:43 -07:00
Zach Borboa ab407d6b25 Implement disableTimeout()
Implement Curl::disableTimeout() and MultiCurl::disableTimeout()
2020-05-09 09:19:35 -07:00
Zach Borboa ea66e3bfb9 Standardize the use import statements 2020-04-17 18:47:59 -07:00
Zach Borboa 2fd406a500 Fix continuous integration tests for PHP 7.3.
There were 3 errors:
    1) CurlTest\CurlTest::testMultipartFormDataContentType
    TypeError: Argument 2 passed to PHPUnit\Framework\Assert::assertContains() must be iterable, string given, [...]

    2) CurlTest\CurlTest::testJsonEncode
    ErrorException: json_encode error: Malformed UTF-8 characters, possibly incorrectly encoded

    3) CurlTest\CurlTest::testRequiredOptionCurlOptReturnTransferEmitsWarning
    CURLOPT_RETURNTRANSFER is a required option
2020-02-17 13:34:53 -08:00
Zach Borboa 82c0880ab5 Clean up 2020-01-14 20:56:42 -08:00
Zach Borboa a020585a73 Fix #608: Implement Curl::setRange() and MultiCurl::setRange() 2020-01-14 20:55:41 -08:00
Zach Borboa 1d0f6cfc84 Fix #609: Implement Curl::setFile() and MultiCurl::setFile() 2020-01-14 20:36:19 -08:00
Zach Borboa 505663a55d Use camelCase for ArrayUtil function names and deprecate old snake_case names 2019-06-09 22:26:18 -07:00
Zach Borboa 82b927bbcd Add test for Curl::removeHeader() 2019-05-24 22:48:09 -07:00
Zach Borboa c894feda9f Add test cases for the SEARCH method 2019-05-22 23:49:22 -07:00