OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
firebase
/
vendor
/
monolog
/
monolog
/
tests
/
Monolog
/
Handler
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
08/12/2024 10:36:02 AM
rwxr-xr-x
📄
AbstractHandlerTest.php
2.53 KB
08/12/2024 10:35:59 AM
rw-r--r--
📄
AbstractProcessingHandlerTest.php
4.88 KB
08/12/2024 10:35:59 AM
rw-r--r--
📄
AmqpHandlerTest.php
4.3 KB
08/12/2024 10:35:59 AM
rw-r--r--
📄
BrowserConsoleHandlerTest.php
4.88 KB
08/12/2024 10:35:59 AM
rw-r--r--
📄
BufferHandlerTest.php
5.39 KB
08/12/2024 10:35:59 AM
rw-r--r--
📄
ChromePHPHandlerTest.php
4.9 KB
08/12/2024 10:35:59 AM
rw-r--r--
📄
CouchDBHandlerTest.php
805 bytes
08/12/2024 10:35:59 AM
rw-r--r--
📄
DeduplicationHandlerTest.php
6.2 KB
08/12/2024 10:35:59 AM
rw-r--r--
📄
DoctrineCouchDBHandlerTest.php
1.49 KB
08/12/2024 10:35:59 AM
rw-r--r--
📄
DynamoDbHandlerTest.php
2.31 KB
08/12/2024 10:35:59 AM
rw-r--r--
📄
ElasticaHandlerTest.php
7.74 KB
08/12/2024 10:36:00 AM
rw-r--r--
📄
ElasticsearchHandlerTest.php
7.78 KB
08/12/2024 10:36:00 AM
rw-r--r--
📄
ErrorLogHandlerTest.php
2.22 KB
08/12/2024 10:36:00 AM
rw-r--r--
📄
ExceptionTestHandler.php
567 bytes
08/12/2024 10:36:00 AM
rw-r--r--
📄
FallbackGroupHandlerTest.php
6.17 KB
08/12/2024 10:36:00 AM
rw-r--r--
📄
FilterHandlerTest.php
7.43 KB
08/12/2024 10:36:00 AM
rw-r--r--
📄
FingersCrossedHandlerTest.php
11.28 KB
08/12/2024 10:36:00 AM
rw-r--r--
📄
FirePHPHandlerTest.php
3.12 KB
08/12/2024 10:36:00 AM
rw-r--r--
📁
Fixtures
-
08/12/2024 10:36:32 AM
rwxr-xr-x
📄
FleepHookHandlerTest.php
1.99 KB
08/12/2024 10:36:00 AM
rw-r--r--
📄
FlowdockHandlerTest.php
2.74 KB
08/12/2024 10:36:00 AM
rw-r--r--
📄
GelfHandlerTest.php
3.59 KB
08/12/2024 10:36:00 AM
rw-r--r--
📄
GroupHandlerTest.php
4.97 KB
08/12/2024 10:36:00 AM
rw-r--r--
📄
HandlerWrapperTest.php
2.12 KB
08/12/2024 10:36:00 AM
rw-r--r--
📄
InsightOpsHandlerTest.php
2.58 KB
08/12/2024 10:36:00 AM
rw-r--r--
📄
LogEntriesHandlerTest.php
2.6 KB
08/12/2024 10:36:00 AM
rw-r--r--
📄
LogmaticHandlerTest.php
2.87 KB
08/12/2024 10:36:00 AM
rw-r--r--
📄
MailHandlerTest.php
2.29 KB
08/12/2024 10:36:00 AM
rw-r--r--
📄
MongoDBHandlerTest.php
2.27 KB
08/12/2024 10:36:00 AM
rw-r--r--
📄
NativeMailerHandlerTest.php
3.78 KB
08/12/2024 10:36:00 AM
rw-r--r--
📄
NewRelicHandlerTest.php
6.04 KB
08/12/2024 10:36:00 AM
rw-r--r--
📄
NoopHandlerTest.php
1.08 KB
08/12/2024 10:36:01 AM
rw-r--r--
📄
NullHandlerTest.php
1.27 KB
08/12/2024 10:36:01 AM
rw-r--r--
📄
OverflowHandlerTest.php
3.62 KB
08/12/2024 10:36:01 AM
rw-r--r--
📄
PHPConsoleHandlerTest.php
10.37 KB
08/12/2024 10:36:01 AM
rw-r--r--
📄
ProcessHandlerTest.php
6.91 KB
08/12/2024 10:36:01 AM
rw-r--r--
📄
PsrHandlerTest.php
2.47 KB
08/12/2024 10:36:01 AM
rw-r--r--
📄
PushoverHandlerTest.php
5.59 KB
08/12/2024 10:36:01 AM
rw-r--r--
📄
RedisHandlerTest.php
4.29 KB
08/12/2024 10:36:01 AM
rw-r--r--
📄
RedisPubSubHandlerTest.php
2.18 KB
08/12/2024 10:36:01 AM
rw-r--r--
📄
RollbarHandlerTest.php
2.52 KB
08/12/2024 10:36:01 AM
rw-r--r--
📄
RotatingFileHandlerTest.php
12.63 KB
08/12/2024 10:36:01 AM
rw-r--r--
📄
SamplingHandlerTest.php
909 bytes
08/12/2024 10:36:01 AM
rw-r--r--
📁
Slack
-
08/12/2024 10:36:32 AM
rwxr-xr-x
📄
SlackHandlerTest.php
5.68 KB
08/12/2024 10:36:01 AM
rw-r--r--
📄
SlackWebhookHandlerTest.php
5 KB
08/12/2024 10:36:01 AM
rw-r--r--
📄
SocketHandlerTest.php
9.69 KB
08/12/2024 10:36:01 AM
rw-r--r--
📄
StreamHandlerTest.php
9.85 KB
08/12/2024 10:36:01 AM
rw-r--r--
📄
SymfonyMailerHandlerTest.php
3.34 KB
08/12/2024 10:36:01 AM
rw-r--r--
📄
SyslogHandlerTest.php
1.32 KB
08/12/2024 10:36:01 AM
rw-r--r--
📄
SyslogUdpHandlerTest.php
3.97 KB
08/12/2024 10:36:01 AM
rw-r--r--
📄
TelegramBotHandlerTest.php
1.87 KB
08/12/2024 10:36:01 AM
rw-r--r--
📄
TestHandlerTest.php
4.05 KB
08/12/2024 10:36:02 AM
rw-r--r--
📄
UdpSocketTest.php
1.79 KB
08/12/2024 10:36:02 AM
rw-r--r--
📄
WhatFailureGroupHandlerTest.php
5.8 KB
08/12/2024 10:36:02 AM
rw-r--r--
📄
ZendMonitorHandlerTest.php
2.21 KB
08/12/2024 10:36:02 AM
rw-r--r--
Editing: PHPConsoleHandlerTest.php
Close
<?php declare(strict_types=1); /* * 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\Level; use Monolog\Logger; use Monolog\Test\TestCase; use PhpConsole\Connector; use PhpConsole\Dispatcher\Debug as DebugDispatcher; use PhpConsole\Dispatcher\Errors as ErrorDispatcher; use PhpConsole\Handler as VendorPhpConsoleHandler; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\MockObject; /** * @covers Monolog\Handler\PHPConsoleHandler * @author Sergey Barbushin https://www.linkedin.com/in/barbushin */ class PHPConsoleHandlerTest extends TestCase { protected Connector&MockObject $connector; protected DebugDispatcher&MockObject $debugDispatcher; protected ErrorDispatcher&MockObject $errorDispatcher; protected function setUp(): void { // suppress warnings until https://github.com/barbushin/php-console/pull/173 is merged $previous = error_reporting(0); if (!class_exists('PhpConsole\Connector')) { error_reporting($previous); $this->markTestSkipped('PHP Console library not found. See https://github.com/barbushin/php-console#installation'); } if (!class_exists('PhpConsole\Handler')) { error_reporting($previous); $this->markTestSkipped('PHP Console library not found. See https://github.com/barbushin/php-console#installation'); } error_reporting($previous); $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); } public function tearDown(): void { parent::tearDown(); unset($this->connector, $this->debugDispatcher, $this->errorDispatcher); } protected function initDebugDispatcherMock(Connector $connector) { return $this->getMockBuilder('PhpConsole\Dispatcher\Debug') ->disableOriginalConstructor() ->onlyMethods(['dispatchDebug']) ->setConstructorArgs([$connector, $connector->getDumper()]) ->getMock(); } protected function initErrorDispatcherMock(Connector $connector) { return $this->getMockBuilder('PhpConsole\Dispatcher\Errors') ->disableOriginalConstructor() ->onlyMethods(['dispatchError', 'dispatchException']) ->setConstructorArgs([$connector, $connector->getDumper()]) ->getMock(); } protected function initConnectorMock() { $connector = $this->getMockBuilder('PhpConsole\Connector') ->disableOriginalConstructor() ->onlyMethods([ 'sendMessage', 'onShutDown', 'isActiveClient', 'setSourcesBasePath', 'setServerEncoding', 'setPassword', 'enableSslOnlyMode', 'setAllowedIpMasks', 'setHeadersLimit', 'startEvalRequestsListener', ]) ->getMock(); $connector->expects($this->any()) ->method('isActiveClient') ->willReturn(true); return $connector; } protected function getHandlerDefaultOption($name) { $handler = new PHPConsoleHandler([], $this->connector); $options = $handler->getOptions(); return $options[$name]; } protected function initLogger($handlerOptions = [], $level = Level::Debug) { return new Logger('test', [ 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([], $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()->debug('test'); } public function testDebugContextInMessage() { $message = 'test'; $tag = 'tag'; $context = [$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()->debug($message, $context); } public function testDebugTags($tagsContextKeys = null) { $expectedTags = mt_rand(); $logger = $this->initLogger($tagsContextKeys ? ['debugTagsKeysInContext' => $tagsContextKeys] : []); 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->debug('test', [$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 ? ['classesPartialsTraceIgnore' => $classesPartialsTraceIgnore] : []), false); $errorHandler->registerErrorHandler([], false, E_USER_WARNING); $reflMethod = new \ReflectionMethod($errorHandler, 'handleError'); $reflMethod->invoke($errorHandler, $code, $message, $file, $line); } public function testException() { $e = new Exception(); $this->errorDispatcher->expects($this->once())->method('dispatchException')->with( $this->equalTo($e) ); $handler = $this->initLogger(); $handler->log( \Psr\Log\LogLevel::ERROR, sprintf('Uncaught Exception %s: "%s" at %s line %s', \get_class($e), $e->getMessage(), $e->getFile(), $e->getLine()), ['exception' => $e] ); } public function testWrongOptionsThrowsException() { $this->expectException(\Exception::class); new PHPConsoleHandler(['xxx' => 1]); } public function testOptionEnabled() { $this->debugDispatcher->expects($this->never())->method('dispatchDebug'); $this->initLogger(['enabled' => false])->debug('test'); } public function testOptionClassesPartialsTraceIgnore() { $this->testError(['Class', 'Namespace\\']); } public function testOptionDebugTagsKeysInContext() { $this->testDebugTags(['key1', 'key2']); } public function testOptionUseOwnErrorsAndExceptionsHandler() { $this->initLogger(['useOwnErrorsHandler' => true, 'useOwnExceptionsHandler' => true]); $this->assertEquals([VendorPhpConsoleHandler::getInstance(), 'handleError'], set_error_handler(function () { })); $this->assertEquals([VendorPhpConsoleHandler::getInstance(), 'handleException'], set_exception_handler(function () { })); } public static function provideConnectorMethodsOptionsSets() { return [ ['sourcesBasePath', 'setSourcesBasePath', __DIR__], ['serverEncoding', 'setServerEncoding', 'cp1251'], ['password', 'setPassword', '******'], ['enableSslOnlyMode', 'enableSslOnlyMode', true, false], ['ipMasks', 'setAllowedIpMasks', ['127.0.0.*']], ['headersLimit', 'setHeadersLimit', 2500], ['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([$option => $value], $this->connector); } public function testOptionDetectDumpTraceAndSource() { new PHPConsoleHandler(['detectDumpTraceAndSource' => true], $this->connector); $this->assertTrue($this->connector->getDebugDispatcher()->detectTraceAndSource); } public static function provideDumperOptionsValues() { return [ ['dumperLevelLimit', 'levelLimit', 1001], ['dumperItemsCountLimit', 'itemsCountLimit', 1002], ['dumperItemSizeLimit', 'itemSizeLimit', 1003], ['dumperDumpSizeLimit', 'dumpSizeLimit', 1004], ['dumperDetectCallbacks', 'detectCallbacks', true], ]; } #[DataProvider('provideDumperOptionsValues')] public function testDumperOptions($option, $dumperProperty, $value) { new PHPConsoleHandler([$option => $value], $this->connector); $this->assertEquals($value, $this->connector->getDumper()->$dumperProperty); } }