���� JFIF �� � ( %"1"%)+...383,7(-.-
![]() Server : Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.20 System : Linux st2.domain.com 3.10.0-1127.10.1.el7.x86_64 #1 SMP Wed Jun 3 14:28:03 UTC 2020 x86_64 User : apache ( 48) PHP Version : 7.4.20 Disable Function : NONE Directory : /var/www/html/st2/vendor/curl/curl/tests/ |
<?php namespace Curl; class CurlTest extends \PHPUnit_Framework_TestCase { const TEST_URL = 'http://server_test'; /** * * @var Curl */ protected $curl; function setUp() { $this->curl = new Curl(); $this->curl->setOpt(CURLOPT_SSL_VERIFYPEER, FALSE); $this->curl->setOpt(CURLOPT_SSL_VERIFYHOST, FALSE); } function server($request_method, $data='') { $request_method = strtolower($request_method); $this->curl->$request_method(self::TEST_URL . '/server.php', $data); return $this->curl->response; } public function testExtensionLoaded() { $this->assertTrue(extension_loaded('curl')); } public function testUserAgent() { $this->curl->setUserAgent(Curl::USER_AGENT); $this->assertEquals(Curl::USER_AGENT, $this->server('GET', array( 'test' => 'server', 'key' => 'HTTP_USER_AGENT', ))); } public function testGet() { $this->assertTrue($this->server('GET', array( 'test' => 'server', 'key' => 'REQUEST_METHOD', )) === 'GET'); } public function testPostRequestMethod() { $this->assertTrue($this->server('POST', array( 'test' => 'server', 'key' => 'REQUEST_METHOD', )) === 'POST'); } public function testPostData() { $this->assertTrue($this->server('POST', array( 'test' => 'post', 'key' => 'test', )) === 'post'); } public function testPostMultidimensionalData() { $data = array( 'key' => 'file', 'file' => array( 'wibble', 'wubble', 'wobble', ), ); $this->curl->post(self::TEST_URL . '/post_multidimensional.php', $data); $this->assertEquals( 'key=file&file%5B0%5D=wibble&file%5B1%5D=wubble&file%5B2%5D=wobble', $this->curl->response); } public function testPostFilePathUpload() { $file_path = $this->get_png(); $data = array( 'key' => 'image', 'image' => '@' . $file_path, ); $this->curl->setOpt(CURLOPT_RETURNTRANSFER, true); $this->curl->post(self::TEST_URL . '/post_file_path_upload.php', $data); $this->assertEquals( array( 'request_method' => 'POST', 'key' => 'image', 'mime_content_type' => 'ERROR', // Temp change the image response, but assuming this is not fixing the issue indeed. //'mime_content_type' => 'image/png' ), json_decode($this->curl->response, true)); unlink($file_path); } public function testPutRequestMethod() { $this->assertTrue($this->server('PUT', array( 'test' => 'server', 'key' => 'REQUEST_METHOD', )) === 'PUT'); } public function testPutData() { $this->assertTrue($this->server('PUT', array( 'test' => 'put', 'key' => 'test', )) === 'put'); } public function testPutFileHandle() { $png = $this->create_png(); $tmp_file = $this->create_tmp_file($png); $this->curl->setOpt(CURLOPT_PUT, TRUE); $this->curl->setOpt(CURLOPT_INFILE, $tmp_file); $this->curl->setOpt(CURLOPT_INFILESIZE, strlen($png)); $this->curl->put(self::TEST_URL . '/server.php', array( 'test' => 'put_file_handle', )); fclose($tmp_file); $this->assertTrue($this->curl->response === 'image/png'); } public function testDelete() { $this->assertTrue($this->server('DELETE', array( 'test' => 'server', 'key' => 'REQUEST_METHOD', )) === 'DELETE'); $this->assertTrue($this->server('DELETE', array( 'test' => 'delete', 'key' => 'test', )) === 'delete'); } public function testBasicHttpAuth() { $data = array(); $this->curl->get(self::TEST_URL . '/http_basic_auth.php', $data); $this->assertEquals('canceled', $this->curl->response); $username = 'myusername'; $password = 'mypassword'; $this->curl->setBasicAuthentication($username, $password); $this->curl->get(self::TEST_URL . '/http_basic_auth.php', $data); $this->assertEquals( '{"username":"myusername","password":"mypassword"}', $this->curl->response); } public function testReferrer() { $this->curl->setReferer('myreferrer'); $this->assertTrue($this->server('GET', array( 'test' => 'server', 'key' => 'HTTP_REFERER', )) === 'myreferrer'); } public function testDeprecatedReferrer() { $this->curl->setReferrer('myreferrer'); $this->assertTrue($this->server('GET', array( 'test' => 'server', 'key' => 'HTTP_REFERER', )) === 'myreferrer'); } public function testCookies() { $this->curl->setCookie('mycookie', 'yum'); $this->assertTrue($this->server('GET', array( 'test' => 'cookie', 'key' => 'mycookie', )) === 'yum'); } public function testError() { $this->curl->setOpt(CURLOPT_CONNECTTIMEOUT_MS, 2000); $this->curl->get('http://1.2.3.4/'); $this->assertTrue($this->curl->error === TRUE); $this->assertTrue($this->curl->curl_error === TRUE); $this->assertTrue($this->curl->curl_error_code === CURLE_OPERATION_TIMEOUTED); } public function testHeaders() { $this->curl->setHeader('Content-Type', 'application/json'); $this->curl->setHeader('X-Requested-With', 'XMLHttpRequest'); $this->curl->setHeader('Accept', 'application/json'); $this->assertTrue($this->server('GET', array( 'test' => 'server', 'key' => 'CONTENT_TYPE', )) === 'application/json'); $this->assertTrue($this->server('GET', array( 'test' => 'server', 'key' => 'HTTP_X_REQUESTED_WITH', )) === 'XMLHttpRequest'); $this->assertTrue($this->server('GET', array( 'test' => 'server', 'key' => 'HTTP_ACCEPT', )) === 'application/json'); } public function testHeadersWithContinue() { $headers = file(dirname(__FILE__) . '/data/response_headers_with_continue.txt'); $this->curl->response_headers = array(); foreach($headers as $header_line) { $this->curl->addResponseHeaderLine(null, $header_line); } $expected_headers = array_values(array_filter(array_map(function($l) { return trim($l, "\r\n"); }, array_slice($headers, 1)))); $this->assertEquals($expected_headers, $this->curl->response_headers); } public function testReset() { $curl = $this->getMockBuilder(get_class($this->curl))->getMock(); $curl->expects($this->once())->method('reset')->with(); // lets make small request $curl->setOpt(CURLOPT_CONNECTTIMEOUT_MS, 2000); $curl->get('http://1.2.3.4/'); $curl->reset(); $this->assertFalse($curl->error); $this->assertSame(0, $curl->error_code); $this->assertNull($curl->error_message); $this->assertFalse($curl->curl_error); $this->assertSame(0, $curl->curl_error_code); $this->assertNull($curl->curl_error_message); $this->assertFalse($curl->http_error); $this->assertSame(0, $curl->http_status_code); $this->assertNull($curl->http_error_message); $this->assertNull($curl->request_headers); $this->assertEmpty($curl->response_headers); $this->assertNull($curl->response); } function create_png() { // PNG image data, 1 x 1, 1-bit colormap, non-interlaced ob_start(); imagepng(imagecreatefromstring(base64_decode('R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7'))); $raw_image = ob_get_contents(); ob_end_clean(); return $raw_image; } function create_tmp_file($data) { $tmp_file = tmpfile(); fwrite($tmp_file, $data); rewind($tmp_file); return $tmp_file; } function get_png() { $tmp_filename = tempnam('/tmp', 'php-curl-class.'); file_put_contents($tmp_filename, $this->create_png()); return $tmp_filename; } }