From 687920abf5945280e66cff72269365ebfcc50472 Mon Sep 17 00:00:00 2001 From: dan-nl Date: Mon, 8 Sep 2014 21:45:46 +0200 Subject: [PATCH] Add cURL constants test Bug: 70570 Change-Id: I217470638adc1973ebe1227cc9fb65e1c3fab1b7 --- tests/phpunit/includes/HttpTest.php | 301 +++++++++++++++++++++++++++- 1 file changed, 298 insertions(+), 3 deletions(-) diff --git a/tests/phpunit/includes/HttpTest.php b/tests/phpunit/includes/HttpTest.php index 9b53381e1a..59ffb90608 100644 --- a/tests/phpunit/includes/HttpTest.php +++ b/tests/phpunit/includes/HttpTest.php @@ -1,6 +1,7 @@ getFinalUrl( "Relative file path Location: should keep the latest host and scheme!" ) ); } + + /** + * Constant values are from PHP 5.3.28 using cURL 7.24.0 + * @see http://php.net/manual/en/curl.constants.php + * + * @covers CurlHttpRequest::execute + */ + public function provideCurlConstants() { + return array( + array( 'CURLAUTH_ANY' ), + array( 'CURLAUTH_ANYSAFE' ), + array( 'CURLAUTH_BASIC' ), + array( 'CURLAUTH_DIGEST' ), + array( 'CURLAUTH_GSSNEGOTIATE' ), + array( 'CURLAUTH_NTLM' ), + array( 'CURLCLOSEPOLICY_CALLBACK' ), + array( 'CURLCLOSEPOLICY_LEAST_RECENTLY_USED' ), + array( 'CURLCLOSEPOLICY_LEAST_TRAFFIC' ), + array( 'CURLCLOSEPOLICY_OLDEST' ), + array( 'CURLCLOSEPOLICY_SLOWEST' ), + array( 'CURLE_ABORTED_BY_CALLBACK' ), + array( 'CURLE_BAD_CALLING_ORDER' ), + array( 'CURLE_BAD_CONTENT_ENCODING' ), + array( 'CURLE_BAD_FUNCTION_ARGUMENT' ), + array( 'CURLE_BAD_PASSWORD_ENTERED' ), + array( 'CURLE_COULDNT_CONNECT' ), + array( 'CURLE_COULDNT_RESOLVE_HOST' ), + array( 'CURLE_COULDNT_RESOLVE_PROXY' ), + array( 'CURLE_FAILED_INIT' ), + array( 'CURLE_FILESIZE_EXCEEDED' ), + array( 'CURLE_FILE_COULDNT_READ_FILE' ), + array( 'CURLE_FTP_ACCESS_DENIED' ), + array( 'CURLE_FTP_BAD_DOWNLOAD_RESUME' ), + array( 'CURLE_FTP_CANT_GET_HOST' ), + array( 'CURLE_FTP_CANT_RECONNECT' ), + array( 'CURLE_FTP_COULDNT_GET_SIZE' ), + array( 'CURLE_FTP_COULDNT_RETR_FILE' ), + array( 'CURLE_FTP_COULDNT_SET_ASCII' ), + array( 'CURLE_FTP_COULDNT_SET_BINARY' ), + array( 'CURLE_FTP_COULDNT_STOR_FILE' ), + array( 'CURLE_FTP_COULDNT_USE_REST' ), + array( 'CURLE_FTP_PORT_FAILED' ), + array( 'CURLE_FTP_QUOTE_ERROR' ), + array( 'CURLE_FTP_SSL_FAILED' ), + array( 'CURLE_FTP_USER_PASSWORD_INCORRECT' ), + array( 'CURLE_FTP_WEIRD_227_FORMAT' ), + array( 'CURLE_FTP_WEIRD_PASS_REPLY' ), + array( 'CURLE_FTP_WEIRD_PASV_REPLY' ), + array( 'CURLE_FTP_WEIRD_SERVER_REPLY' ), + array( 'CURLE_FTP_WEIRD_USER_REPLY' ), + array( 'CURLE_FTP_WRITE_ERROR' ), + array( 'CURLE_FUNCTION_NOT_FOUND' ), + array( 'CURLE_GOT_NOTHING' ), + array( 'CURLE_HTTP_NOT_FOUND' ), + array( 'CURLE_HTTP_PORT_FAILED' ), + array( 'CURLE_HTTP_POST_ERROR' ), + array( 'CURLE_HTTP_RANGE_ERROR' ), + array( 'CURLE_LDAP_CANNOT_BIND' ), + array( 'CURLE_LDAP_INVALID_URL' ), + array( 'CURLE_LDAP_SEARCH_FAILED' ), + array( 'CURLE_LIBRARY_NOT_FOUND' ), + array( 'CURLE_MALFORMAT_USER' ), + array( 'CURLE_OBSOLETE' ), + array( 'CURLE_OK' ), + array( 'CURLE_OPERATION_TIMEOUTED' ), + array( 'CURLE_OUT_OF_MEMORY' ), + array( 'CURLE_PARTIAL_FILE' ), + array( 'CURLE_READ_ERROR' ), + array( 'CURLE_RECV_ERROR' ), + array( 'CURLE_SEND_ERROR' ), + array( 'CURLE_SHARE_IN_USE' ), + array( 'CURLE_SSH' ), + array( 'CURLE_SSL_CACERT' ), + array( 'CURLE_SSL_CERTPROBLEM' ), + array( 'CURLE_SSL_CIPHER' ), + array( 'CURLE_SSL_CONNECT_ERROR' ), + array( 'CURLE_SSL_ENGINE_NOTFOUND' ), + array( 'CURLE_SSL_ENGINE_SETFAILED' ), + array( 'CURLE_SSL_PEER_CERTIFICATE' ), + array( 'CURLE_TELNET_OPTION_SYNTAX' ), + array( 'CURLE_TOO_MANY_REDIRECTS' ), + array( 'CURLE_UNKNOWN_TELNET_OPTION' ), + array( 'CURLE_UNSUPPORTED_PROTOCOL' ), + array( 'CURLE_URL_MALFORMAT' ), + array( 'CURLE_URL_MALFORMAT_USER' ), + array( 'CURLE_WRITE_ERROR' ), + array( 'CURLFTPAUTH_DEFAULT' ), + array( 'CURLFTPAUTH_SSL' ), + array( 'CURLFTPAUTH_TLS' ), + array( 'CURLFTPMETHOD_MULTICWD' ), + array( 'CURLFTPMETHOD_NOCWD' ), + array( 'CURLFTPMETHOD_SINGLECWD' ), + array( 'CURLFTPSSL_ALL' ), + array( 'CURLFTPSSL_CONTROL' ), + array( 'CURLFTPSSL_NONE' ), + array( 'CURLFTPSSL_TRY' ), + array( 'CURLINFO_CERTINFO' ), + array( 'CURLINFO_CONNECT_TIME' ), + array( 'CURLINFO_CONTENT_LENGTH_DOWNLOAD' ), + array( 'CURLINFO_CONTENT_LENGTH_UPLOAD' ), + array( 'CURLINFO_CONTENT_TYPE' ), + array( 'CURLINFO_EFFECTIVE_URL' ), + array( 'CURLINFO_FILETIME' ), + array( 'CURLINFO_HEADER_OUT' ), + array( 'CURLINFO_HEADER_SIZE' ), + array( 'CURLINFO_HTTP_CODE' ), + array( 'CURLINFO_NAMELOOKUP_TIME' ), + array( 'CURLINFO_PRETRANSFER_TIME' ), + array( 'CURLINFO_PRIVATE' ), + array( 'CURLINFO_REDIRECT_COUNT' ), + array( 'CURLINFO_REDIRECT_TIME' ), + array( 'CURLINFO_REDIRECT_URL' ), + array( 'CURLINFO_REQUEST_SIZE' ), + array( 'CURLINFO_SIZE_DOWNLOAD' ), + array( 'CURLINFO_SIZE_UPLOAD' ), + array( 'CURLINFO_SPEED_DOWNLOAD' ), + array( 'CURLINFO_SPEED_UPLOAD' ), + array( 'CURLINFO_SSL_VERIFYRESULT' ), + array( 'CURLINFO_STARTTRANSFER_TIME' ), + array( 'CURLINFO_TOTAL_TIME' ), + array( 'CURLMSG_DONE' ), + array( 'CURLM_BAD_EASY_HANDLE' ), + array( 'CURLM_BAD_HANDLE' ), + array( 'CURLM_CALL_MULTI_PERFORM' ), + array( 'CURLM_INTERNAL_ERROR' ), + array( 'CURLM_OK' ), + array( 'CURLM_OUT_OF_MEMORY' ), + array( 'CURLOPT_AUTOREFERER' ), + array( 'CURLOPT_BINARYTRANSFER' ), + array( 'CURLOPT_BUFFERSIZE' ), + array( 'CURLOPT_CAINFO' ), + array( 'CURLOPT_CAPATH' ), + array( 'CURLOPT_CERTINFO' ), + array( 'CURLOPT_CLOSEPOLICY' ), + array( 'CURLOPT_CONNECTTIMEOUT' ), + array( 'CURLOPT_CONNECTTIMEOUT_MS' ), + array( 'CURLOPT_COOKIE' ), + array( 'CURLOPT_COOKIEFILE' ), + array( 'CURLOPT_COOKIEJAR' ), + array( 'CURLOPT_COOKIESESSION' ), + array( 'CURLOPT_CRLF' ), + array( 'CURLOPT_CUSTOMREQUEST' ), + array( 'CURLOPT_DNS_CACHE_TIMEOUT' ), + array( 'CURLOPT_DNS_USE_GLOBAL_CACHE' ), + array( 'CURLOPT_EGDSOCKET' ), + array( 'CURLOPT_ENCODING' ), + array( 'CURLOPT_FAILONERROR' ), + array( 'CURLOPT_FILE' ), + array( 'CURLOPT_FILETIME' ), + array( 'CURLOPT_FOLLOWLOCATION' ), + array( 'CURLOPT_FORBID_REUSE' ), + array( 'CURLOPT_FRESH_CONNECT' ), + array( 'CURLOPT_FTPAPPEND' ), + array( 'CURLOPT_FTPLISTONLY' ), + array( 'CURLOPT_FTPPORT' ), + array( 'CURLOPT_FTPSSLAUTH' ), + array( 'CURLOPT_FTP_CREATE_MISSING_DIRS' ), + array( 'CURLOPT_FTP_FILEMETHOD' ), + array( 'CURLOPT_FTP_SKIP_PASV_IP' ), + array( 'CURLOPT_FTP_SSL' ), + array( 'CURLOPT_FTP_USE_EPRT' ), + array( 'CURLOPT_FTP_USE_EPSV' ), + array( 'CURLOPT_HEADER' ), + array( 'CURLOPT_HEADERFUNCTION' ), + array( 'CURLOPT_HTTP200ALIASES' ), + array( 'CURLOPT_HTTPAUTH' ), + array( 'CURLOPT_HTTPGET' ), + array( 'CURLOPT_HTTPHEADER' ), + array( 'CURLOPT_HTTPPROXYTUNNEL' ), + array( 'CURLOPT_HTTP_VERSION' ), + array( 'CURLOPT_INFILE' ), + array( 'CURLOPT_INFILESIZE' ), + array( 'CURLOPT_INTERFACE' ), + array( 'CURLOPT_IPRESOLVE' ), + array( 'CURLOPT_KEYPASSWD' ), + array( 'CURLOPT_KRB4LEVEL' ), + array( 'CURLOPT_LOW_SPEED_LIMIT' ), + array( 'CURLOPT_LOW_SPEED_TIME' ), + array( 'CURLOPT_MAXCONNECTS' ), + array( 'CURLOPT_MAXREDIRS' ), + array( 'CURLOPT_MAX_RECV_SPEED_LARGE' ), + array( 'CURLOPT_MAX_SEND_SPEED_LARGE' ), + array( 'CURLOPT_NETRC' ), + array( 'CURLOPT_NOBODY' ), + array( 'CURLOPT_NOPROGRESS' ), + array( 'CURLOPT_NOSIGNAL' ), + array( 'CURLOPT_PORT' ), + array( 'CURLOPT_POST' ), + array( 'CURLOPT_POSTFIELDS' ), + array( 'CURLOPT_POSTQUOTE' ), + array( 'CURLOPT_POSTREDIR' ), + array( 'CURLOPT_PRIVATE' ), + array( 'CURLOPT_PROGRESSFUNCTION' ), + array( 'CURLOPT_PROTOCOLS' ), + array( 'CURLOPT_PROXY' ), + array( 'CURLOPT_PROXYAUTH' ), + array( 'CURLOPT_PROXYPORT' ), + array( 'CURLOPT_PROXYTYPE' ), + array( 'CURLOPT_PROXYUSERPWD' ), + array( 'CURLOPT_PUT' ), + array( 'CURLOPT_QUOTE' ), + array( 'CURLOPT_RANDOM_FILE' ), + array( 'CURLOPT_RANGE' ), + array( 'CURLOPT_READDATA' ), + array( 'CURLOPT_READFUNCTION' ), + array( 'CURLOPT_REDIR_PROTOCOLS' ), + array( 'CURLOPT_REFERER' ), + array( 'CURLOPT_RESUME_FROM' ), + array( 'CURLOPT_RETURNTRANSFER' ), + array( 'CURLOPT_SSH_AUTH_TYPES' ), + array( 'CURLOPT_SSH_HOST_PUBLIC_KEY_MD5' ), + array( 'CURLOPT_SSH_PRIVATE_KEYFILE' ), + array( 'CURLOPT_SSH_PUBLIC_KEYFILE' ), + array( 'CURLOPT_SSLCERT' ), + array( 'CURLOPT_SSLCERTPASSWD' ), + array( 'CURLOPT_SSLCERTTYPE' ), + array( 'CURLOPT_SSLENGINE' ), + array( 'CURLOPT_SSLENGINE_DEFAULT' ), + array( 'CURLOPT_SSLKEY' ), + array( 'CURLOPT_SSLKEYPASSWD' ), + array( 'CURLOPT_SSLKEYTYPE' ), + array( 'CURLOPT_SSLVERSION' ), + array( 'CURLOPT_SSL_CIPHER_LIST' ), + array( 'CURLOPT_SSL_VERIFYHOST' ), + array( 'CURLOPT_SSL_VERIFYPEER' ), + array( 'CURLOPT_STDERR' ), + array( 'CURLOPT_TCP_NODELAY' ), + array( 'CURLOPT_TIMECONDITION' ), + array( 'CURLOPT_TIMEOUT' ), + array( 'CURLOPT_TIMEOUT_MS' ), + array( 'CURLOPT_TIMEVALUE' ), + array( 'CURLOPT_TRANSFERTEXT' ), + array( 'CURLOPT_UNRESTRICTED_AUTH' ), + array( 'CURLOPT_UPLOAD' ), + array( 'CURLOPT_URL' ), + array( 'CURLOPT_USERAGENT' ), + array( 'CURLOPT_USERPWD' ), + array( 'CURLOPT_VERBOSE' ), + array( 'CURLOPT_WRITEFUNCTION' ), + array( 'CURLOPT_WRITEHEADER' ), + array( 'CURLPROTO_ALL' ), + array( 'CURLPROTO_DICT' ), + array( 'CURLPROTO_FILE' ), + array( 'CURLPROTO_FTP' ), + array( 'CURLPROTO_FTPS' ), + array( 'CURLPROTO_HTTP' ), + array( 'CURLPROTO_HTTPS' ), + array( 'CURLPROTO_LDAP' ), + array( 'CURLPROTO_LDAPS' ), + array( 'CURLPROTO_SCP' ), + array( 'CURLPROTO_SFTP' ), + array( 'CURLPROTO_TELNET' ), + array( 'CURLPROTO_TFTP' ), + array( 'CURLPROXY_HTTP' ), + array( 'CURLPROXY_SOCKS4' ), + array( 'CURLPROXY_SOCKS5' ), + array( 'CURLSSH_AUTH_DEFAULT' ), + array( 'CURLSSH_AUTH_HOST' ), + array( 'CURLSSH_AUTH_KEYBOARD' ), + array( 'CURLSSH_AUTH_NONE' ), + array( 'CURLSSH_AUTH_PASSWORD' ), + array( 'CURLSSH_AUTH_PUBLICKEY' ), + array( 'CURLVERSION_NOW' ), + array( 'CURL_HTTP_VERSION_1_0' ), + array( 'CURL_HTTP_VERSION_1_1' ), + array( 'CURL_HTTP_VERSION_NONE' ), + array( 'CURL_IPRESOLVE_V4' ), + array( 'CURL_IPRESOLVE_V6' ), + array( 'CURL_IPRESOLVE_WHATEVER' ), + array( 'CURL_NETRC_IGNORED' ), + array( 'CURL_NETRC_OPTIONAL' ), + array( 'CURL_NETRC_REQUIRED' ), + array( 'CURL_TIMECOND_IFMODSINCE' ), + array( 'CURL_TIMECOND_IFUNMODSINCE' ), + array( 'CURL_TIMECOND_LASTMOD' ), + array( 'CURL_VERSION_IPV6' ), + array( 'CURL_VERSION_KERBEROS4' ), + array( 'CURL_VERSION_LIBZ' ), + array( 'CURL_VERSION_SSL' ), + ); + } + + /** + * Added this test based on an issue experienced with hhvm where it did + * not define a cURL constant. + * + * @bug 70570 + * @dataProvider provideCurlConstants + */ + public function testCurlConstants( $value ) { + $this->assertTrue( defined( $value ), $value . ' not defined' ); + } } /** -- 2.20.1