Testing the cURL extension
How to test the cURL extension.
With a webserver
The cURL extensions tests can be run with the help of both a file on a webserver and a ftp server that can be reached by the machine the tests are run on. Environmental variables needs to be set as follows (on Unix):
export PHP_CURL_HTTP_REMOTE_SERVER=http://www.example.com export PHP_CURL_FTP_REMOTE_SERVER="ftp.example.net"; export PHP_CURL_FTP_REMOTE_USER="ftpusername"; export PHP_CURL_FTP_REMOTE_PASSWD="ftppassword";
Where http://www.example.com is the url to the host providing the test file. If the variable is not set the tests will assume you have webserver unning on the machine the tests are run on.
The get.php
file used for testing can be found in the ext/curl/tests/responder
directory and needs to be copied to the root of the webserver that is going to be used for testing.
With a local file
Some cURL tests work with a local file. The PHP_CURL_HTTP_REMOTE_SERVER
variable can be set to a local file to get the reponse data from.
The following piece of code is used to make sure a file is always present.
// Figure out what handler to use if(!empty($_ENV['PHP_CURL_HTTP_REMOTE_SERVER'])) { // Use the set Environment variable $host = $_ENV['PHP_CURL_HTTP_REMOTE_SERVER']; $url = "{$host}/get.php?test=get"; } else { // Create a temporary file for the test $tempname = tempnam(sys_get_temp_dir(), 'CURL_HANDLE'); $url = 'file://'. $tempname; // add the test data to the file file_put_contents($tempname, "Hello World!\nHello World!"); } /* .. your test .. */ // Cleanup isset( $tempname ) and unlink( $tempname );
When the PHP_CURL_HTTP_REMOTE_SERVER
variable isn't set a temporary file is created and the data needed for the test is put in there.