summaryrefslogtreecommitdiff
path: root/vendor/guzzle/guzzle/tests/Guzzle/Tests/Log
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/guzzle/guzzle/tests/Guzzle/Tests/Log')
-rw-r--r--vendor/guzzle/guzzle/tests/Guzzle/Tests/Log/ArrayLogAdapterTest.php23
-rw-r--r--vendor/guzzle/guzzle/tests/Guzzle/Tests/Log/ClosureLogAdapterTest.php30
-rw-r--r--vendor/guzzle/guzzle/tests/Guzzle/Tests/Log/MessageFormatterTest.php143
-rw-r--r--vendor/guzzle/guzzle/tests/Guzzle/Tests/Log/PsrLogAdapterTest.php25
-rw-r--r--vendor/guzzle/guzzle/tests/Guzzle/Tests/Log/Zf2LogAdapterTest.php51
5 files changed, 272 insertions, 0 deletions
diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Log/ArrayLogAdapterTest.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Log/ArrayLogAdapterTest.php
new file mode 100644
index 0000000..a66882f
--- /dev/null
+++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Log/ArrayLogAdapterTest.php
@@ -0,0 +1,23 @@
+<?php
+
+namespace Guzzle\Tests\Log;
+
+use Guzzle\Log\ArrayLogAdapter;
+
+class ArrayLogAdapterTest extends \Guzzle\Tests\GuzzleTestCase
+{
+ public function testLog()
+ {
+ $adapter = new ArrayLogAdapter();
+ $adapter->log('test', \LOG_NOTICE, '127.0.0.1');
+ $this->assertEquals(array(array('message' => 'test', 'priority' => \LOG_NOTICE, 'extras' => '127.0.0.1')), $adapter->getLogs());
+ }
+
+ public function testClearLog()
+ {
+ $adapter = new ArrayLogAdapter();
+ $adapter->log('test', \LOG_NOTICE, '127.0.0.1');
+ $adapter->clearLogs();
+ $this->assertEquals(array(), $adapter->getLogs());
+ }
+}
diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Log/ClosureLogAdapterTest.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Log/ClosureLogAdapterTest.php
new file mode 100644
index 0000000..0177dc0
--- /dev/null
+++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Log/ClosureLogAdapterTest.php
@@ -0,0 +1,30 @@
+<?php
+
+namespace Guzzle\Tests\Log;
+
+use Guzzle\Log\ClosureLogAdapter;
+
+/**
+ * @covers Guzzle\Log\ClosureLogAdapter
+ */
+class ClosureLogAdapterTest extends \Guzzle\Tests\GuzzleTestCase
+{
+ public function testClosure()
+ {
+ $that = $this;
+ $modified = null;
+ $this->adapter = new ClosureLogAdapter(function($message, $priority, $extras = null) use ($that, &$modified) {
+ $modified = array($message, $priority, $extras);
+ });
+ $this->adapter->log('test', LOG_NOTICE, '127.0.0.1');
+ $this->assertEquals(array('test', LOG_NOTICE, '127.0.0.1'), $modified);
+ }
+
+ /**
+ * @expectedException InvalidArgumentException
+ */
+ public function testThrowsExceptionWhenNotCallable()
+ {
+ $this->adapter = new ClosureLogAdapter(123);
+ }
+}
diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Log/MessageFormatterTest.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Log/MessageFormatterTest.php
new file mode 100644
index 0000000..3ff4b07
--- /dev/null
+++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Log/MessageFormatterTest.php
@@ -0,0 +1,143 @@
+<?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')
+ ->setConstructorArgs(array(200))
+ ->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);
+ }
+}
diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Log/PsrLogAdapterTest.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Log/PsrLogAdapterTest.php
new file mode 100644
index 0000000..7b72dd6
--- /dev/null
+++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Log/PsrLogAdapterTest.php
@@ -0,0 +1,25 @@
+<?php
+
+namespace Guzzle\Tests\Log;
+
+use Guzzle\Log\PsrLogAdapter;
+use Monolog\Logger;
+use Monolog\Handler\TestHandler;
+
+/**
+ * @covers Guzzle\Log\PsrLogAdapter
+ * @covers Guzzle\Log\AbstractLogAdapter
+ */
+class PsrLogAdapterTest extends \Guzzle\Tests\GuzzleTestCase
+{
+ public function testLogsMessagesToAdaptedObject()
+ {
+ $log = new Logger('test');
+ $handler = new TestHandler();
+ $log->pushHandler($handler);
+ $adapter = new PsrLogAdapter($log);
+ $adapter->log('test!', LOG_INFO);
+ $this->assertTrue($handler->hasInfoRecords());
+ $this->assertSame($log, $adapter->getLogObject());
+ }
+}
diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Log/Zf2LogAdapterTest.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Log/Zf2LogAdapterTest.php
new file mode 100644
index 0000000..1b61283
--- /dev/null
+++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Log/Zf2LogAdapterTest.php
@@ -0,0 +1,51 @@
+<?php
+
+namespace Guzzle\Tests\Log;
+
+use Guzzle\Log\Zf2LogAdapter;
+use Zend\Log\Logger;
+use Zend\Log\Writer\Stream;
+
+/**
+ * @covers Guzzle\Log\Zf2LogAdapter
+ */
+class Zf2LogAdapterTest extends \Guzzle\Tests\GuzzleTestCase
+{
+ /** @var Zf2LogAdapter */
+ protected $adapter;
+
+ /** @var Logger */
+ protected $log;
+
+ /** @var resource */
+ protected $stream;
+
+ protected function setUp()
+ {
+ $this->stream = fopen('php://temp', 'r+');
+ $this->log = new Logger();
+ $this->log->addWriter(new Stream($this->stream));
+ $this->adapter = new Zf2LogAdapter($this->log);
+
+ }
+
+ public function testLogsMessagesToAdaptedObject()
+ {
+ // Test without a priority
+ $this->adapter->log('Zend_Test!', \LOG_NOTICE);
+ rewind($this->stream);
+ $contents = stream_get_contents($this->stream);
+ $this->assertEquals(1, substr_count($contents, 'Zend_Test!'));
+
+ // Test with a priority
+ $this->adapter->log('Zend_Test!', \LOG_ALERT);
+ rewind($this->stream);
+ $contents = stream_get_contents($this->stream);
+ $this->assertEquals(2, substr_count($contents, 'Zend_Test!'));
+ }
+
+ public function testExposesAdaptedLogObject()
+ {
+ $this->assertEquals($this->log, $this->adapter->getLogObject());
+ }
+}