summaryrefslogtreecommitdiff
path: root/vendor/monolog/monolog/tests
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/monolog/monolog/tests')
-rw-r--r--vendor/monolog/monolog/tests/Monolog/Formatter/GelfMessageFormatterTest.php15
-rw-r--r--vendor/monolog/monolog/tests/Monolog/Formatter/LineFormatterTest.php2
-rw-r--r--vendor/monolog/monolog/tests/Monolog/Formatter/NormalizerFormatterTest.php15
-rw-r--r--vendor/monolog/monolog/tests/Monolog/Functional/Handler/FirePHPHandlerTest.php32
-rw-r--r--vendor/monolog/monolog/tests/Monolog/Handler/AmqpHandlerTest.php1
-rw-r--r--vendor/monolog/monolog/tests/Monolog/Handler/CouchDBHandlerTest.php10
-rw-r--r--vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php15
-rw-r--r--vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerLegacyTest.php4
-rw-r--r--vendor/monolog/monolog/tests/Monolog/Handler/GelfMockMessagePublisher.php25
-rw-r--r--vendor/monolog/monolog/tests/Monolog/Handler/HipChatHandlerTest.php80
-rw-r--r--vendor/monolog/monolog/tests/Monolog/Handler/MockRavenClient.php1
-rw-r--r--vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php2
-rw-r--r--vendor/monolog/monolog/tests/Monolog/Handler/PHPConsoleHandlerTest.php271
-rw-r--r--vendor/monolog/monolog/tests/Monolog/Handler/RavenHandlerTest.php45
-rw-r--r--vendor/monolog/monolog/tests/Monolog/Handler/SwiftMailerHandlerTest.php65
-rw-r--r--vendor/monolog/monolog/tests/Monolog/Handler/TestHandlerTest.php2
-rw-r--r--vendor/monolog/monolog/tests/Monolog/LoggerTest.php38
-rw-r--r--vendor/monolog/monolog/tests/Monolog/RegistryTest.php63
-rw-r--r--vendor/monolog/monolog/tests/bootstrap.php15
19 files changed, 628 insertions, 73 deletions
diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/GelfMessageFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/GelfMessageFormatterTest.php
index 3f47a09a..6ac14854 100644
--- a/vendor/monolog/monolog/tests/Monolog/Formatter/GelfMessageFormatterTest.php
+++ b/vendor/monolog/monolog/tests/Monolog/Formatter/GelfMessageFormatterTest.php
@@ -82,6 +82,21 @@ class GelfMessageFormatterTest extends \PHPUnit_Framework_TestCase
/**
* @covers Monolog\Formatter\GelfMessageFormatter::format
+ * @expectedException InvalidArgumentException
+ */
+ public function testFormatInvalidFails()
+ {
+ $formatter = new GelfMessageFormatter();
+ $record = array(
+ 'level' => Logger::ERROR,
+ 'level_name' => 'ERROR',
+ );
+
+ $formatter->format($record);
+ }
+
+ /**
+ * @covers Monolog\Formatter\GelfMessageFormatter::format
*/
public function testFormatWithContext()
{
diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/LineFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/LineFormatterTest.php
index 89e1ca2e..c1b2e0ee 100644
--- a/vendor/monolog/monolog/tests/Monolog/Formatter/LineFormatterTest.php
+++ b/vendor/monolog/monolog/tests/Monolog/Formatter/LineFormatterTest.php
@@ -103,7 +103,7 @@ class LineFormatterTest extends \PHPUnit_Framework_TestCase
'message' => 'foobar',
));
- $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: foobar [] {"foo":"[object] (Monolog\\\\Formatter\\\\TestFoo: {\\"foo\\":\\"foo\\"})","bar":"[object] (Monolog\\\\Formatter\\\\TestBar: {})","baz":[],"res":"[resource]"}'."\n", $message);
+ $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: foobar [] {"foo":"[object] (Monolog\\\\Formatter\\\\TestFoo: {\\"foo\\":\\"foo\\"})","bar":"[object] (Monolog\\\\Formatter\\\\TestBar: bar)","baz":[],"res":"[resource]"}'."\n", $message);
}
public function testDefFormatWithException()
diff --git a/vendor/monolog/monolog/tests/Monolog/Formatter/NormalizerFormatterTest.php b/vendor/monolog/monolog/tests/Monolog/Formatter/NormalizerFormatterTest.php
index 00bbb249..4ffeded0 100644
--- a/vendor/monolog/monolog/tests/Monolog/Formatter/NormalizerFormatterTest.php
+++ b/vendor/monolog/monolog/tests/Monolog/Formatter/NormalizerFormatterTest.php
@@ -28,6 +28,9 @@ class NormalizerFormatterTest extends \PHPUnit_Framework_TestCase
'context' => array(
'foo' => 'bar',
'baz' => 'qux',
+ 'inf' => INF,
+ '-inf' => -INF,
+ 'nan' => acos(4),
),
));
@@ -38,13 +41,16 @@ class NormalizerFormatterTest extends \PHPUnit_Framework_TestCase
'datetime' => date('Y-m-d'),
'extra' => array(
'foo' => '[object] (Monolog\\Formatter\\TestFooNorm: {"foo":"foo"})',
- 'bar' => '[object] (Monolog\\Formatter\\TestBarNorm: {})',
+ 'bar' => '[object] (Monolog\\Formatter\\TestBarNorm: bar)',
'baz' => array(),
'res' => '[resource]',
),
'context' => array(
'foo' => 'bar',
'baz' => 'qux',
+ 'inf' => 'INF',
+ '-inf' => '-INF',
+ 'nan' => 'NaN',
)
), $formatted);
}
@@ -184,7 +190,8 @@ class NormalizerFormatterTest extends \PHPUnit_Framework_TestCase
// This will contain $resource and $wrappedResource as arguments in the trace item
$resource = fopen('php://memory', 'rw+');
fwrite($resource, 'test_resource');
- $wrappedResource = new TestStreamFoo($resource);
+ $wrappedResource = new TestFooNorm;
+ $wrappedResource->foo = $resource;
// Just do something stupid with a resource/wrapped resource as argument
array_keys($wrappedResource);
} catch (\Exception $e) {
@@ -201,9 +208,9 @@ class NormalizerFormatterTest extends \PHPUnit_Framework_TestCase
);
if (version_compare(PHP_VERSION, '5.5.0', '>=')) {
- $pattern = '%"wrappedResource":"\[object\] \(Monolog\\\\\\\\Formatter\\\\\\\\TestStreamFoo: \)"%';
+ $pattern = '%"wrappedResource":"\[object\] \(Monolog\\\\\\\\Formatter\\\\\\\\TestFooNorm: \)"%';
} else {
- $pattern = '%\\\\"resource\\\\":null%';
+ $pattern = '%\\\\"foo\\\\":null%';
}
// Tests that the wrapped resource is ignored while encoding, only works for PHP <= 5.4
diff --git a/vendor/monolog/monolog/tests/Monolog/Functional/Handler/FirePHPHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Functional/Handler/FirePHPHandlerTest.php
deleted file mode 100644
index 7e4e7eb5..00000000
--- a/vendor/monolog/monolog/tests/Monolog/Functional/Handler/FirePHPHandlerTest.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-/*
- * This file is part of the Monolog package.
- *
- * (c) Jordi Boggiano <j.boggiano@seld.be>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-spl_autoload_register(function ($class) {
- $file = __DIR__.'/../../../../src/'.strtr($class, '\\', '/').'.php';
- if (file_exists($file)) {
- require $file;
-
- return true;
- }
-});
-
-use Monolog\Logger;
-use Monolog\Handler\FirePHPHandler;
-use Monolog\Handler\ChromePHPHandler;
-
-$logger = new Logger('firephp');
-$logger->pushHandler(new FirePHPHandler);
-$logger->pushHandler(new ChromePHPHandler());
-
-$logger->addDebug('Debug');
-$logger->addInfo('Info');
-$logger->addWarning('Warning');
-$logger->addError('Error');
diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/AmqpHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/AmqpHandlerTest.php
index 074d50c6..a71d6251 100644
--- a/vendor/monolog/monolog/tests/Monolog/Handler/AmqpHandlerTest.php
+++ b/vendor/monolog/monolog/tests/Monolog/Handler/AmqpHandlerTest.php
@@ -14,7 +14,6 @@ namespace Monolog\Handler;
use Monolog\TestCase;
use Monolog\Logger;
use PhpAmqpLib\Message\AMQPMessage;
-use PhpAmqpLib\Channel\AMQPChannel;
use PhpAmqpLib\Connection\AMQPConnection;
/**
diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/CouchDBHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/CouchDBHandlerTest.php
index 78a1d15c..9fc4b388 100644
--- a/vendor/monolog/monolog/tests/Monolog/Handler/CouchDBHandlerTest.php
+++ b/vendor/monolog/monolog/tests/Monolog/Handler/CouchDBHandlerTest.php
@@ -20,16 +20,6 @@ class CouchDBHandlerTest extends TestCase
{
$record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \stdClass, 'foo' => 34));
- $expected = array(
- 'message' => 'test',
- 'context' => array('data' => '[object] (stdClass: {})', 'foo' => 34),
- 'level' => Logger::WARNING,
- 'level_name' => 'WARNING',
- 'channel' => 'test',
- 'datetime' => $record['datetime']->format('Y-m-d H:i:s'),
- 'extra' => array(),
- );
-
$handler = new CouchDBHandler();
try {
diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php
index a3d350d5..8e31e9b8 100644
--- a/vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php
+++ b/vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php
@@ -15,6 +15,7 @@ use Monolog\TestCase;
use Monolog\Logger;
use Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy;
use Monolog\Handler\FingersCrossed\ChannelLevelActivationStrategy;
+use Psr\Log\LogLevel;
class FingersCrossedHandlerTest extends TestCase
{
@@ -237,4 +238,18 @@ class FingersCrossedHandlerTest extends TestCase
$this->assertFalse($test->hasDebugRecords());
$this->assertTrue($test->hasInfoRecords());
}
+
+ /**
+ * @covers Monolog\Handler\FingersCrossedHandler::close
+ */
+ public function testPsrLevelPassthruOnClose()
+ {
+ $test = new TestHandler();
+ $handler = new FingersCrossedHandler($test, new ErrorLevelActivationStrategy(Logger::WARNING), 0, true, true, LogLevel::INFO);
+ $handler->handle($this->getRecord(Logger::DEBUG));
+ $handler->handle($this->getRecord(Logger::INFO));
+ $handler->close();
+ $this->assertFalse($test->hasDebugRecords());
+ $this->assertTrue($test->hasInfoRecords());
+ }
}
diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerLegacyTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerLegacyTest.php
index d60a6db3..9d007b13 100644
--- a/vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerLegacyTest.php
+++ b/vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerLegacyTest.php
@@ -23,6 +23,8 @@ class GelfHandlerLegacyTest extends TestCase
if (!class_exists('Gelf\MessagePublisher') || !class_exists('Gelf\Message')) {
$this->markTestSkipped("mlehner/gelf-php not installed");
}
+
+ require_once __DIR__ . '/GelfMockMessagePublisher.php';
}
/**
@@ -43,7 +45,7 @@ class GelfHandlerLegacyTest extends TestCase
protected function getMessagePublisher()
{
- return new MockMessagePublisher('localhost');
+ return new GelfMockMessagePublisher('localhost');
}
public function testDebug()
diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/GelfMockMessagePublisher.php b/vendor/monolog/monolog/tests/Monolog/Handler/GelfMockMessagePublisher.php
new file mode 100644
index 00000000..873d92fb
--- /dev/null
+++ b/vendor/monolog/monolog/tests/Monolog/Handler/GelfMockMessagePublisher.php
@@ -0,0 +1,25 @@
+<?php
+
+/*
+ * This file is part of the Monolog package.
+ *
+ * (c) Jordi Boggiano <j.boggiano@seld.be>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Monolog\Handler;
+
+use Gelf\MessagePublisher;
+use Gelf\Message;
+
+class GelfMockMessagePublisher extends MessagePublisher
+{
+ public function publish(Message $message)
+ {
+ $this->lastMessage = $message;
+ }
+
+ public $lastMessage = null;
+}
diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/HipChatHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/HipChatHandlerTest.php
index d58386a1..ff773c98 100644
--- a/vendor/monolog/monolog/tests/Monolog/Handler/HipChatHandlerTest.php
+++ b/vendor/monolog/monolog/tests/Monolog/Handler/HipChatHandlerTest.php
@@ -35,12 +35,81 @@ class HipChatHandlerTest extends TestCase
return $content;
}
+ public function testWriteCustomHostHeader()
+ {
+ $this->createHandler('myToken', 'room1', 'Monolog', true, 'hipchat.foo.bar');
+ $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1'));
+ fseek($this->res, 0);
+ $content = fread($this->res, 1024);
+
+ $this->assertRegexp('/POST \/v1\/rooms\/message\?format=json&auth_token=.* HTTP\/1.1\\r\\nHost: hipchat.foo.bar\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content);
+
+ return $content;
+ }
+
+ public function testWriteV2() {
+ $this->createHandler('myToken', 'room1', 'Monolog', false, 'hipchat.foo.bar', 'v2');
+ $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1'));
+ fseek($this->res, 0);
+ $content = fread($this->res, 1024);
+
+ $this->assertRegexp('/POST \/v2\/room\/room1\/notification\?auth_token=.* HTTP\/1.1\\r\\nHost: hipchat.foo.bar\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content);
+
+ return $content;
+ }
+
+ public function testWriteV2Notify() {
+ $this->createHandler('myToken', 'room1', 'Monolog', true, 'hipchat.foo.bar', 'v2');
+ $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1'));
+ fseek($this->res, 0);
+ $content = fread($this->res, 1024);
+
+ $this->assertRegexp('/POST \/v2\/room\/room1\/notification\?auth_token=.* HTTP\/1.1\\r\\nHost: hipchat.foo.bar\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content);
+
+ return $content;
+ }
+
+ public function testRoomSpaces() {
+ $this->createHandler('myToken', 'room name', 'Monolog', false, 'hipchat.foo.bar', 'v2');
+ $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1'));
+ fseek($this->res, 0);
+ $content = fread($this->res, 1024);
+
+ $this->assertRegexp('/POST \/v2\/room\/room%20name\/notification\?auth_token=.* HTTP\/1.1\\r\\nHost: hipchat.foo.bar\\r\\nContent-Type: application\/x-www-form-urlencoded\\r\\nContent-Length: \d{2,4}\\r\\n\\r\\n/', $content);
+
+ return $content;
+ }
+
/**
* @depends testWriteHeader
*/
public function testWriteContent($content)
{
- $this->assertRegexp('/from=Monolog&room_id=room1&notify=0&message=test1&message_format=text&color=red$/', $content);
+ $this->assertRegexp('/notify=0&message=test1&message_format=text&color=red&room_id=room1&from=Monolog$/', $content);
+ }
+
+ /**
+ * @depends testWriteCustomHostHeader
+ */
+ public function testWriteContentNotify($content)
+ {
+ $this->assertRegexp('/notify=1&message=test1&message_format=text&color=red&room_id=room1&from=Monolog$/', $content);
+ }
+
+ /**
+ * @depends testWriteV2
+ */
+ public function testWriteContentV2($content)
+ {
+ $this->assertRegexp('/notify=false&message=test1&message_format=text&color=red$/', $content);
+ }
+
+ /**
+ * @depends testWriteV2Notify
+ */
+ public function testWriteContentV2Notify($content)
+ {
+ $this->assertRegexp('/notify=true&message=test1&message_format=text&color=red$/', $content);
}
public function testWriteWithComplexMessage()
@@ -129,9 +198,9 @@ class HipChatHandlerTest extends TestCase
);
}
- private function createHandler($token = 'myToken', $room = 'room1', $name = 'Monolog', $notify = false)
+ private function createHandler($token = 'myToken', $room = 'room1', $name = 'Monolog', $notify = false, $host = 'api.hipchat.com', $version = 'v1')
{
- $constructorArgs = array($token, $room, $name, $notify, Logger::DEBUG);
+ $constructorArgs = array($token, $room, $name, $notify, Logger::DEBUG, true, true, 'text', $host, $version);
$this->res = fopen('php://memory', 'a');
$this->handler = $this->getMock(
'\Monolog\Handler\HipChatHandler',
@@ -163,4 +232,9 @@ class HipChatHandlerTest extends TestCase
{
$hipChatHandler = new \Monolog\Handler\HipChatHandler('token', 'room', 'SixteenCharsHere');
}
+
+ public function testCreateWithTooLongNameV2() {
+ // creating a handler with too long of a name but using the v2 api doesn't matter.
+ $hipChatHandler = new \Monolog\Handler\HipChatHandler('token', 'room', 'SixteenCharsHere', false, Logger::CRITICAL, true, true, 'test', 'api.hipchat.com', 'v2');
+ }
}
diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/MockRavenClient.php b/vendor/monolog/monolog/tests/Monolog/Handler/MockRavenClient.php
index fbaab9bc..a0833225 100644
--- a/vendor/monolog/monolog/tests/Monolog/Handler/MockRavenClient.php
+++ b/vendor/monolog/monolog/tests/Monolog/Handler/MockRavenClient.php
@@ -17,6 +17,7 @@ class MockRavenClient extends Raven_Client
{
public function capture($data, $stack, $vars = null)
{
+ $data = array_merge($this->get_user_data(), $data);
$this->lastData = $data;
$this->lastStack = $stack;
}
diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php
index 22014908..4eda6155 100644
--- a/vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php
+++ b/vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php
@@ -136,7 +136,7 @@ class NewRelicHandlerTest extends TestCase
$this->assertEquals(null, self::$transactionName);
}
- public function testTheTransactionNameCanBeInjectedFromtheConstructor()
+ public function testTheTransactionNameCanBeInjectedFromTheConstructor()
{
$handler = new StubNewRelicHandler(Logger::DEBUG, false, null, false, 'myTransaction');
$handler->handle($this->getRecord(Logger::ERROR, 'log message'));
diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/PHPConsoleHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/PHPConsoleHandlerTest.php
new file mode 100644
index 00000000..81684c5e
--- /dev/null
+++ b/vendor/monolog/monolog/tests/Monolog/Handler/PHPConsoleHandlerTest.php
@@ -0,0 +1,271 @@
+<?php
+
+/*
+ * This file is part of the Monolog package.
+ *
+ * (c) Jordi Boggiano <j.boggiano@seld.be>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Monolog\Handler;
+
+use Exception;
+use Monolog\ErrorHandler;
+use Monolog\Logger;
+use Monolog\TestCase;
+use PhpConsole\Connector;
+use PhpConsole\Dispatcher\Debug as DebugDispatcher;
+use PhpConsole\Dispatcher\Errors as ErrorDispatcher;
+use PhpConsole\Handler;
+use PHPUnit_Framework_MockObject_MockObject;
+
+/**
+ * @covers Monolog\Handler\PHPConsoleHandler
+ * @author Sergey Barbushin https://www.linkedin.com/in/barbushin
+ */
+class PHPConsoleHandlerTest extends TestCase
+{
+
+ /** @var Connector|PHPUnit_Framework_MockObject_MockObject */
+ protected $connector;
+ /** @var DebugDispatcher|PHPUnit_Framework_MockObject_MockObject */
+ protected $debugDispatcher;
+ /** @var ErrorDispatcher|PHPUnit_Framework_MockObject_MockObject */
+ protected $errorDispatcher;
+
+ protected function setUp()
+ {
+ if (!class_exists('PhpConsole\Connector')) {
+ $this->markTestSkipped('PHP Console library not found. See https://github.com/barbushin/php-console#installation');
+ }
+ $this->connector = $this->initConnectorMock();
+
+ $this->debugDispatcher = $this->initDebugDispatcherMock($this->connector);
+ $this->connector->setDebugDispatcher($this->debugDispatcher);
+
+ $this->errorDispatcher = $this->initErrorDispatcherMock($this->connector);
+ $this->connector->setErrorsDispatcher($this->errorDispatcher);
+ }
+
+ protected function initDebugDispatcherMock(Connector $connector)
+ {
+ return $this->getMockBuilder('PhpConsole\Dispatcher\Debug')
+ ->disableOriginalConstructor()
+ ->setMethods(array('dispatchDebug'))
+ ->setConstructorArgs(array($connector, $connector->getDumper()))
+ ->getMock();
+ }
+
+ protected function initErrorDispatcherMock(Connector $connector)
+ {
+ return $this->getMockBuilder('PhpConsole\Dispatcher\Errors')
+ ->disableOriginalConstructor()
+ ->setMethods(array('dispatchError', 'dispatchException'))
+ ->setConstructorArgs(array($connector, $connector->getDumper()))
+ ->getMock();
+ }
+
+ protected function initConnectorMock()
+ {
+ $connector = $this->getMockBuilder('PhpConsole\Connector')
+ ->disableOriginalConstructor()
+ ->setMethods(array(
+ 'sendMessage',
+ 'onShutDown',
+ 'isActiveClient',
+ 'setSourcesBasePath',
+ 'setServerEncoding',
+ 'setPassword',
+ 'enableSslOnlyMode',
+ 'setAllowedIpMasks',
+ 'setHeadersLimit',
+ 'startEvalRequestsListener',
+ ))
+ ->getMock();
+
+ $connector->expects($this->any())
+ ->method('isActiveClient')
+ ->will($this->returnValue(true));
+
+ return $connector;
+ }
+
+ protected function getHandlerDefaultOption($name)
+ {
+ $handler = new PHPConsoleHandler(array(), $this->connector);
+ $options = $handler->getOptions();
+
+ return $options[$name];
+ }
+
+ protected function initLogger($handlerOptions = array(), $level = Logger::DEBUG)
+ {
+ return new Logger('test', array(
+ new PHPConsoleHandler($handlerOptions, $this->connector, $level)
+ ));
+ }
+
+ public function testInitWithDefaultConnector()
+ {
+ $handler = new PHPConsoleHandler();
+ $this->assertEquals(spl_object_hash(Connector::getInstance()), spl_object_hash($handler->getConnector()));
+ }
+
+ public function testInitWithCustomConnector()
+ {
+ $handler = new PHPConsoleHandler(array(), $this->connector);
+ $this->assertEquals(spl_object_hash($this->connector), spl_object_hash($handler->getConnector()));
+ }
+
+ public function testDebug()
+ {
+ $this->debugDispatcher->expects($this->once())->method('dispatchDebug')->with($this->equalTo('test'));
+ $this->initLogger()->addDebug('test');
+ }
+
+ public function testDebugContextInMessage()
+ {
+ $message = 'test';
+ $tag = 'tag';
+ $context = array($tag, 'custom' => mt_rand());
+ $expectedMessage = $message . ' ' . json_encode(array_slice($context, 1));
+ $this->debugDispatcher->expects($this->once())->method('dispatchDebug')->with(
+ $this->equalTo($expectedMessage),
+ $this->equalTo($tag)
+ );
+ $this->initLogger()->addDebug($message, $context);
+ }
+
+ public function testDebugTags($tagsContextKeys = null)
+ {
+ $expectedTags = mt_rand();
+ $logger = $this->initLogger($tagsContextKeys ? array('debugTagsKeysInContext' => $tagsContextKeys) : array());
+ if (!$tagsContextKeys) {
+ $tagsContextKeys = $this->getHandlerDefaultOption('debugTagsKeysInContext');
+ }
+ foreach ($tagsContextKeys as $key) {
+ $debugDispatcher = $this->initDebugDispatcherMock($this->connector);
+ $debugDispatcher->expects($this->once())->method('dispatchDebug')->with(
+ $this->anything(),
+ $this->equalTo($expectedTags)
+ );
+ $this->connector->setDebugDispatcher($debugDispatcher);
+ $logger->addDebug('test', array($key => $expectedTags));
+ }
+ }
+
+ public function testError($classesPartialsTraceIgnore = null)
+ {
+ $code = E_USER_NOTICE;
+ $message = 'message';
+ $file = __FILE__;
+ $line = __LINE__;
+ $this->errorDispatcher->expects($this->once())->method('dispatchError')->with(
+ $this->equalTo($code),
+ $this->equalTo($message),
+ $this->equalTo($file),
+ $this->equalTo($line),
+ $classesPartialsTraceIgnore ?: $this->equalTo($this->getHandlerDefaultOption('classesPartialsTraceIgnore'))
+ );
+ $errorHandler = ErrorHandler::register($this->initLogger($classesPartialsTraceIgnore ? array('classesPartialsTraceIgnore' => $classesPartialsTraceIgnore) : array()), false);
+ $errorHandler->registerErrorHandler(array(), false, E_USER_WARNING);
+ $errorHandler->handleError($code, $message, $file, $line);
+ }
+
+ public function testException()
+ {
+ $exception = new Exception();
+ $this->errorDispatcher->expects($this->once())->method('dispatchException')->with(
+ $this->equalTo($exception)
+ );
+ $errorHandler = ErrorHandler::register($this->initLogger(), false, false);
+ $errorHandler->registerExceptionHandler(null, false);
+ $errorHandler->handleException($exception);
+ }
+
+ /**
+ * @expectedException Exception
+ */
+ public function testWrongOptionsThrowsException()
+ {
+ new PHPConsoleHandler(array('xxx' => 1));
+ }
+
+ public function testOptionEnabled()
+ {
+ $this->debugDispatcher->expects($this->never())->method('dispatchDebug');
+ $this->initLogger(array('enabled' => false))->addDebug('test');
+ }
+
+ public function testOptionClassesPartialsTraceIgnore()
+ {
+ $this->testError(array('Class', 'Namespace\\'));
+ }
+
+ public function testOptionDebugTagsKeysInContext()
+ {
+ $this->testDebugTags(array('key1', 'key2'));
+ }
+
+ public function testOptionUseOwnErrorsAndExceptionsHandler()
+ {
+ $this->initLogger(array('useOwnErrorsHandler' => true, 'useOwnExceptionsHandler' => true));
+ $this->assertEquals(array(Handler::getInstance(), 'handleError'), set_error_handler(function () {
+ }));
+ $this->assertEquals(array(Handler::getInstance(), 'handleException'), set_exception_handler(function () {
+ }));
+ }
+
+ public static function provideConnectorMethodsOptionsSets()
+ {
+ return array(
+ array('sourcesBasePath', 'setSourcesBasePath', __DIR__),
+ array('serverEncoding', 'setServerEncoding', 'cp1251'),
+ array('password', 'setPassword', '******'),
+ array('enableSslOnlyMode', 'enableSslOnlyMode', true, false),
+ array('ipMasks', 'setAllowedIpMasks', array('127.0.0.*')),
+ array('headersLimit', 'setHeadersLimit', 2500),
+ array('enableEvalListener', 'startEvalRequestsListener', true, false),
+ );
+ }
+
+ /**
+ * @dataProvider provideConnectorMethodsOptionsSets
+ */
+ public function testOptionCallsConnectorMethod($option, $method, $value, $isArgument = true)
+ {
+ $expectCall = $this->connector->expects($this->once())->method($method);
+ if ($isArgument) {
+ $expectCall->with($value);
+ }
+ new PHPConsoleHandler(array($option => $value), $this->connector);
+ }
+
+ public function testOptionDetectDumpTraceAndSource()
+ {
+ new PHPConsoleHandler(array('detectDumpTraceAndSource' => true), $this->connector);
+ $this->assertTrue($this->connector->getDebugDispatcher()->detectTraceAndSource);
+ }
+
+ public static function provideDumperOptionsValues()
+ {
+ return array(
+ array('dumperLevelLimit', 'levelLimit', 1001),
+ array('dumperItemsCountLimit', 'itemsCountLimit', 1002),
+ array('dumperItemSizeLimit', 'itemSizeLimit', 1003),
+ array('dumperDumpSizeLimit', 'dumpSizeLimit', 1004),
+ array('dumperDetectCallbacks', 'detectCallbacks', true),
+ );
+ }
+
+ /**
+ * @dataProvider provideDumperOptionsValues
+ */
+ public function testDumperOptions($option, $dumperProperty, $value)
+ {
+ new PHPConsoleHandler(array($option => $value), $this->connector);
+ $this->assertEquals($value, $this->connector->getDumper()->$dumperProperty);
+ }
+}
diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/RavenHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/RavenHandlerTest.php
index 8fe86961..9a9d1006 100644
--- a/vendor/monolog/monolog/tests/Monolog/Handler/RavenHandlerTest.php
+++ b/vendor/monolog/monolog/tests/Monolog/Handler/RavenHandlerTest.php
@@ -19,8 +19,8 @@ class RavenHandlerTest extends TestCase
{
public function setUp()
{
- if (!class_exists("Raven_Client")) {
- $this->markTestSkipped("raven/raven not installed");
+ if (!class_exists('Raven_Client')) {
+ $this->markTestSkipped('raven/raven not installed');
}
require_once __DIR__ . '/MockRavenClient.php';
@@ -54,7 +54,7 @@ class RavenHandlerTest extends TestCase
$ravenClient = $this->getRavenClient();
$handler = $this->getHandler($ravenClient);
- $record = $this->getRecord(Logger::DEBUG, "A test debug message");
+ $record = $this->getRecord(Logger::DEBUG, 'A test debug message');
$handler->handle($record);
$this->assertEquals($ravenClient::DEBUG, $ravenClient->lastData['level']);
@@ -66,7 +66,7 @@ class RavenHandlerTest extends TestCase
$ravenClient = $this->getRavenClient();
$handler = $this->getHandler($ravenClient);
- $record = $this->getRecord(Logger::WARNING, "A test warning message");
+ $record = $this->getRecord(Logger::WARNING, 'A test warning message');
$handler->handle($record);
$this->assertEquals($ravenClient::WARNING, $ravenClient->lastData['level']);
@@ -79,12 +79,47 @@ class RavenHandlerTest extends TestCase
$handler = $this->getHandler($ravenClient);
$tags = array(1, 2, 'foo');
- $record = $this->getRecord(Logger::INFO, "test", array('tags' => $tags));
+ $record = $this->getRecord(Logger::INFO, 'test', array('tags' => $tags));
$handler->handle($record);
$this->assertEquals($tags, $ravenClient->lastData['tags']);
}
+ public function testUserContext()
+ {
+ $ravenClient = $this->getRavenClient();
+ $handler = $this->getHandler($ravenClient);
+
+ $recordWithNoContext = $this->getRecord(Logger::INFO, 'test with default user context');
+ // set user context 'externally'
+
+ $user = array(
+ 'id' => '123',
+ 'email' => 'test@test.com'
+ );
+
+ $recordWithContext = $this->getRecord(Logger::INFO, 'test', array('user' => $user));
+
+ $ravenClient->user_context(array('id' => 'test_user_id'));
+ // handle context
+ $handler->handle($recordWithContext);
+ $this->assertEquals($user, $ravenClient->lastData['sentry.interfaces.User']);
+
+ // check to see if its reset
+ $handler->handle($recordWithNoContext);
+ $this->assertInternalType('array', $ravenClient->context->user);
+ $this->assertSame('test_user_id', $ravenClient->context->user['id']);
+
+ // handle with null context
+ $ravenClient->user_context(null);
+ $handler->handle($recordWithContext);
+ $this->assertEquals($user, $ravenClient->lastData['sentry.interfaces.User']);
+
+ // check to see if its reset
+ $handler->handle($recordWithNoContext);
+ $this->assertNull($ravenClient->context->user);
+ }
+
public function testException()
{
$ravenClient = $this->getRavenClient();
diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/SwiftMailerHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/SwiftMailerHandlerTest.php
new file mode 100644
index 00000000..ac885220
--- /dev/null
+++ b/vendor/monolog/monolog/tests/Monolog/Handler/SwiftMailerHandlerTest.php
@@ -0,0 +1,65 @@
+<?php
+
+namespace Monolog\Handler;
+
+use Monolog\Logger;
+use Monolog\TestCase;
+
+class SwiftMailerHandlerTest extends TestCase
+{
+ /** @var \Swift_Mailer|\PHPUnit_Framework_MockObject_MockObject */
+ private $mailer;
+
+ public function setUp()
+ {
+ $this->mailer = $this
+ ->getMockBuilder('Swift_Mailer')
+ ->disableOriginalConstructor()
+ ->getMock();
+ }
+
+ public function testMessageCreationIsLazyWhenUsingCallback()
+ {
+ $this->mailer->expects($this->never())
+ ->method('send');
+
+ $callback = function () {
+ throw new \RuntimeException('Swift_Message creation callback should not have been called in this test');
+ };
+ $handler = new SwiftMailerHandler($this->mailer, $callback);
+
+ $records = array(
+ $this->getRecord(Logger::DEBUG),
+ $this->getRecord(Logger::INFO),
+ );
+ $handler->handleBatch($records);
+ }
+
+ public function testMessageCanBeCustomizedGivenLoggedData()
+ {
+ // Wire Mailer to expect a specific Swift_Message with a customized Subject
+ $expectedMessage = new \Swift_Message();
+ $this->mailer->expects($this->once())
+ ->method('send')
+ ->with($this->callback(function ($value) use ($expectedMessage) {
+ return $value instanceof \Swift_Message
+ && $value->getSubject() === 'Emergency'
+ && $value === $expectedMessage;
+ }));
+
+ // Callback dynamically changes subject based on number of logged records
+ $callback = function ($content, array $records) use ($expectedMessage) {
+ $subject = count($records) > 0 ? 'Emergency' : 'Normal';
+ $expectedMessage->setSubject($subject);
+
+ return $expectedMessage;
+ };
+ $handler = new SwiftMailerHandler($this->mailer, $callback);
+
+ // Logging 1 record makes this an Emergency
+ $records = array(
+ $this->getRecord(Logger::EMERGENCY),
+ );
+ $handler->handleBatch($records);
+ }
+}
diff --git a/vendor/monolog/monolog/tests/Monolog/Handler/TestHandlerTest.php b/vendor/monolog/monolog/tests/Monolog/Handler/TestHandlerTest.php
index 801d80a9..2a79fdc6 100644
--- a/vendor/monolog/monolog/tests/Monolog/Handler/TestHandlerTest.php
+++ b/vendor/monolog/monolog/tests/Monolog/Handler/TestHandlerTest.php
@@ -27,12 +27,14 @@ class TestHandlerTest extends TestCase
$handler = new TestHandler;
$record = $this->getRecord($level, 'test'.$method);
$this->assertFalse($handler->{'has'.$method}($record));
+ $this->assertFalse($handler->{'has'.$method.'ThatContains'}('test'));
$this->assertFalse($handler->{'has'.$method.'Records'}());
$handler->handle($record);
$this->assertFalse($handler->{'has'.$method}('bar'));
$this->assertTrue($handler->{'has'.$method}($record));
$this->assertTrue($handler->{'has'.$method}('test'.$method));
+ $this->assertTrue($handler->{'has'.$method.'ThatContains'}('test'));
$this->assertTrue($handler->{'has'.$method.'Records'}());
$records = $handler->getRecords();
diff --git a/vendor/monolog/monolog/tests/Monolog/LoggerTest.php b/vendor/monolog/monolog/tests/Monolog/LoggerTest.php
index 7a19c0b4..146b6f1b 100644
--- a/vendor/monolog/monolog/tests/Monolog/LoggerTest.php
+++ b/vendor/monolog/monolog/tests/Monolog/LoggerTest.php
@@ -34,6 +34,21 @@ class LoggerTest extends \PHPUnit_Framework_TestCase
}
/**
+ * @covers Monolog\Logger::toMonologLevel
+ */
+ public function testConvertPSR3ToMonologLevel()
+ {
+ $this->assertEquals(Logger::toMonologLevel('debug'), 100);
+ $this->assertEquals(Logger::toMonologLevel('info'), 200);
+ $this->assertEquals(Logger::toMonologLevel('notice'), 250);
+ $this->assertEquals(Logger::toMonologLevel('warning'), 300);
+ $this->assertEquals(Logger::toMonologLevel('error'), 400);
+ $this->assertEquals(Logger::toMonologLevel('critical'), 500);
+ $this->assertEquals(Logger::toMonologLevel('alert'), 550);
+ $this->assertEquals(Logger::toMonologLevel('emergency'), 600);
+ }
+
+ /**
* @covers Monolog\Logger::getLevelName
* @expectedException InvalidArgumentException
*/
@@ -406,4 +421,27 @@ class LoggerTest extends \PHPUnit_Framework_TestCase
array('emerg', Logger::EMERGENCY),
);
}
+
+ /**
+ * @dataProvider setTimezoneProvider
+ * @covers Monolog\Logger::setTimezone
+ */
+ public function testSetTimezone($tz)
+ {
+ Logger::setTimezone($tz);
+ $logger = new Logger('foo');
+ $handler = new TestHandler;
+ $logger->pushHandler($handler);
+ $logger->info('test');
+ list($record) = $handler->getRecords();
+ $this->assertEquals($tz, $record['datetime']->getTimezone());
+ }
+
+ public function setTimezoneProvider()
+ {
+ return array_map(
+ function ($tz) { return array(new \DateTimeZone($tz)); },
+ \DateTimeZone::listIdentifiers()
+ );
+ }
}
diff --git a/vendor/monolog/monolog/tests/Monolog/RegistryTest.php b/vendor/monolog/monolog/tests/Monolog/RegistryTest.php
new file mode 100644
index 00000000..29925f8a
--- /dev/null
+++ b/vendor/monolog/monolog/tests/Monolog/RegistryTest.php
@@ -0,0 +1,63 @@
+<?php
+
+/*
+ * This file is part of the Monolog package.
+ *
+ * (c) Jordi Boggiano <j.boggiano@seld.be>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Monolog;
+
+
+class RegistryTest extends \PHPUnit_Framework_TestCase
+{
+ protected function setUp()
+ {
+ Registry::clear();
+ }
+
+ /**
+ * @dataProvider hasLoggerProvider
+ * @covers Monolog\Registry::hasLogger
+ */
+ public function testHasLogger(array $loggersToAdd, array $loggersToCheck, array $expectedResult)
+ {
+ foreach ($loggersToAdd as $loggerToAdd) {
+ Registry::addLogger($loggerToAdd);
+ }
+ foreach ($loggersToCheck as $index => $loggerToCheck) {
+ $this->assertSame($expectedResult[$index], Registry::hasLogger($loggerToCheck));
+ }
+ }
+
+ public function hasLoggerProvider()
+ {
+ $logger1 = new Logger('test1');
+ $logger2 = new Logger('test2');
+ $logger3 = new Logger('test3');
+
+ return array(
+ // only instances
+ array(
+ array($logger1),
+ array($logger1, $logger2),
+ array(true, false),
+ ),
+ // only names
+ array(
+ array($logger1),
+ array('test1', 'test2'),
+ array(true, false),
+ ),
+ // mixed case
+ array(
+ array($logger1, $logger2),
+ array('test1', $logger2, 'test3', $logger3),
+ array(true, true, false, false),
+ ),
+ );
+ }
+}
diff --git a/vendor/monolog/monolog/tests/bootstrap.php b/vendor/monolog/monolog/tests/bootstrap.php
deleted file mode 100644
index b78740e2..00000000
--- a/vendor/monolog/monolog/tests/bootstrap.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/*
- * This file is part of the Monolog package.
- *
- * (c) Jordi Boggiano <j.boggiano@seld.be>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-$loader = require __DIR__ . "/../vendor/autoload.php";
-$loader->addPsr4('Monolog\\', __DIR__.'/Monolog');
-
-date_default_timezone_set('UTC');