summaryrefslogtreecommitdiff
path: root/vendor/symfony/debug/Tests/ErrorHandlerTest.php
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@webtrees.net>2019-02-03 13:44:03 +0000
committerGreg Roach <fisharebest@webtrees.net>2019-02-04 11:17:33 +0000
commit7def76c7d817a9ec81e9ae4a03a850514b1a2e1c (patch)
tree3fcf7e8236356daac44f7c17b8c0c5bc736a0926 /vendor/symfony/debug/Tests/ErrorHandlerTest.php
parentadfb3656b8dac8505590490f4f8aaf4bea27881b (diff)
downloadwebtrees-7def76c7d817a9ec81e9ae4a03a850514b1a2e1c.tar.gz
webtrees-7def76c7d817a9ec81e9ae4a03a850514b1a2e1c.tar.bz2
webtrees-7def76c7d817a9ec81e9ae4a03a850514b1a2e1c.zip
Working on upgrade wizard and testing
Diffstat (limited to 'vendor/symfony/debug/Tests/ErrorHandlerTest.php')
-rw-r--r--vendor/symfony/debug/Tests/ErrorHandlerTest.php154
1 files changed, 99 insertions, 55 deletions
diff --git a/vendor/symfony/debug/Tests/ErrorHandlerTest.php b/vendor/symfony/debug/Tests/ErrorHandlerTest.php
index 15e476381a..f320584055 100644
--- a/vendor/symfony/debug/Tests/ErrorHandlerTest.php
+++ b/vendor/symfony/debug/Tests/ErrorHandlerTest.php
@@ -12,10 +12,13 @@
namespace Symfony\Component\Debug\Tests;
use PHPUnit\Framework\TestCase;
+use Psr\Log\LoggerInterface;
use Psr\Log\LogLevel;
+use Psr\Log\NullLogger;
use Symfony\Component\Debug\BufferingLogger;
use Symfony\Component\Debug\ErrorHandler;
use Symfony\Component\Debug\Exception\SilencedErrorContext;
+use Symfony\Component\Debug\Tests\Fixtures\LoggerThatSetAnErrorHandler;
/**
* ErrorHandlerTest.
@@ -38,13 +41,13 @@ class ErrorHandlerTest extends TestCase
$this->assertSame($handler, ErrorHandler::register($newHandler, false));
$h = set_error_handler('var_dump');
restore_error_handler();
- $this->assertSame(array($handler, 'handleError'), $h);
+ $this->assertSame([$handler, 'handleError'], $h);
try {
$this->assertSame($newHandler, ErrorHandler::register($newHandler, true));
$h = set_error_handler('var_dump');
restore_error_handler();
- $this->assertSame(array($newHandler, 'handleError'), $h);
+ $this->assertSame([$newHandler, 'handleError'], $h);
} catch (\Exception $e) {
}
@@ -74,12 +77,12 @@ class ErrorHandlerTest extends TestCase
try {
@trigger_error('Hello', E_USER_WARNING);
- $expected = array(
+ $expected = [
'type' => E_USER_WARNING,
'message' => 'Hello',
'file' => __FILE__,
'line' => __LINE__ - 5,
- );
+ ];
$this->assertSame($expected, error_get_last());
} catch (\Exception $e) {
restore_error_handler();
@@ -145,26 +148,26 @@ class ErrorHandlerTest extends TestCase
$logger = $this->getMockBuilder('Psr\Log\LoggerInterface')->getMock();
$handler->setDefaultLogger($logger, E_NOTICE);
- $handler->setDefaultLogger($logger, array(E_USER_NOTICE => LogLevel::CRITICAL));
+ $handler->setDefaultLogger($logger, [E_USER_NOTICE => LogLevel::CRITICAL]);
- $loggers = array(
- E_DEPRECATED => array(null, LogLevel::INFO),
- E_USER_DEPRECATED => array(null, LogLevel::INFO),
- E_NOTICE => array($logger, LogLevel::WARNING),
- E_USER_NOTICE => array($logger, LogLevel::CRITICAL),
- E_STRICT => array(null, LogLevel::WARNING),
- E_WARNING => array(null, LogLevel::WARNING),
- E_USER_WARNING => array(null, LogLevel::WARNING),
- E_COMPILE_WARNING => array(null, LogLevel::WARNING),
- E_CORE_WARNING => array(null, LogLevel::WARNING),
- E_USER_ERROR => array(null, LogLevel::CRITICAL),
- E_RECOVERABLE_ERROR => array(null, LogLevel::CRITICAL),
- E_COMPILE_ERROR => array(null, LogLevel::CRITICAL),
- E_PARSE => array(null, LogLevel::CRITICAL),
- E_ERROR => array(null, LogLevel::CRITICAL),
- E_CORE_ERROR => array(null, LogLevel::CRITICAL),
- );
- $this->assertSame($loggers, $handler->setLoggers(array()));
+ $loggers = [
+ E_DEPRECATED => [null, LogLevel::INFO],
+ E_USER_DEPRECATED => [null, LogLevel::INFO],
+ E_NOTICE => [$logger, LogLevel::WARNING],
+ E_USER_NOTICE => [$logger, LogLevel::CRITICAL],
+ E_STRICT => [null, LogLevel::WARNING],
+ E_WARNING => [null, LogLevel::WARNING],
+ E_USER_WARNING => [null, LogLevel::WARNING],
+ E_COMPILE_WARNING => [null, LogLevel::WARNING],
+ E_CORE_WARNING => [null, LogLevel::WARNING],
+ E_USER_ERROR => [null, LogLevel::CRITICAL],
+ E_RECOVERABLE_ERROR => [null, LogLevel::CRITICAL],
+ E_COMPILE_ERROR => [null, LogLevel::CRITICAL],
+ E_PARSE => [null, LogLevel::CRITICAL],
+ E_ERROR => [null, LogLevel::CRITICAL],
+ E_CORE_ERROR => [null, LogLevel::CRITICAL],
+ ];
+ $this->assertSame($loggers, $handler->setLoggers([]));
} finally {
restore_error_handler();
restore_exception_handler();
@@ -176,14 +179,14 @@ class ErrorHandlerTest extends TestCase
try {
$handler = ErrorHandler::register();
$handler->throwAt(0, true);
- $this->assertFalse($handler->handleError(0, 'foo', 'foo.php', 12, array()));
+ $this->assertFalse($handler->handleError(0, 'foo', 'foo.php', 12, []));
restore_error_handler();
restore_exception_handler();
$handler = ErrorHandler::register();
$handler->throwAt(3, true);
- $this->assertFalse($handler->handleError(4, 'foo', 'foo.php', 12, array()));
+ $this->assertFalse($handler->handleError(4, 'foo', 'foo.php', 12, []));
restore_error_handler();
restore_exception_handler();
@@ -191,7 +194,7 @@ class ErrorHandlerTest extends TestCase
$handler = ErrorHandler::register();
$handler->throwAt(3, true);
try {
- $handler->handleError(4, 'foo', 'foo.php', 12, array());
+ $handler->handleError(4, 'foo', 'foo.php', 12, []);
} catch (\ErrorException $e) {
$this->assertSame('Parse Error: foo', $e->getMessage());
$this->assertSame(4, $e->getSeverity());
@@ -204,14 +207,14 @@ class ErrorHandlerTest extends TestCase
$handler = ErrorHandler::register();
$handler->throwAt(E_USER_DEPRECATED, true);
- $this->assertFalse($handler->handleError(E_USER_DEPRECATED, 'foo', 'foo.php', 12, array()));
+ $this->assertFalse($handler->handleError(E_USER_DEPRECATED, 'foo', 'foo.php', 12, []));
restore_error_handler();
restore_exception_handler();
$handler = ErrorHandler::register();
$handler->throwAt(E_DEPRECATED, true);
- $this->assertFalse($handler->handleError(E_DEPRECATED, 'foo', 'foo.php', 12, array()));
+ $this->assertFalse($handler->handleError(E_DEPRECATED, 'foo', 'foo.php', 12, []));
restore_error_handler();
restore_exception_handler();
@@ -236,7 +239,7 @@ class ErrorHandlerTest extends TestCase
$handler = ErrorHandler::register();
$handler->setDefaultLogger($logger, E_USER_DEPRECATED);
- $this->assertTrue($handler->handleError(E_USER_DEPRECATED, 'foo', 'foo.php', 12, array()));
+ $this->assertTrue($handler->handleError(E_USER_DEPRECATED, 'foo', 'foo.php', 12, []));
restore_error_handler();
restore_exception_handler();
@@ -320,7 +323,9 @@ class ErrorHandlerTest extends TestCase
$handler = new ErrorHandler();
$handler->setDefaultLogger($logger);
- @$handler->handleError(E_USER_DEPRECATED, 'Foo deprecation', __FILE__, __LINE__, array());
+ @$handler->handleError(E_USER_DEPRECATED, 'Foo deprecation', __FILE__, __LINE__, []);
+
+ restore_error_handler();
}
public function testHandleException()
@@ -369,27 +374,27 @@ class ErrorHandlerTest extends TestCase
$bootLogger = new BufferingLogger();
$handler = new ErrorHandler($bootLogger);
- $loggers = array(
- E_DEPRECATED => array($bootLogger, LogLevel::INFO),
- E_USER_DEPRECATED => array($bootLogger, LogLevel::INFO),
- E_NOTICE => array($bootLogger, LogLevel::WARNING),
- E_USER_NOTICE => array($bootLogger, LogLevel::WARNING),
- E_STRICT => array($bootLogger, LogLevel::WARNING),
- E_WARNING => array($bootLogger, LogLevel::WARNING),
- E_USER_WARNING => array($bootLogger, LogLevel::WARNING),
- E_COMPILE_WARNING => array($bootLogger, LogLevel::WARNING),
- E_CORE_WARNING => array($bootLogger, LogLevel::WARNING),
- E_USER_ERROR => array($bootLogger, LogLevel::CRITICAL),
- E_RECOVERABLE_ERROR => array($bootLogger, LogLevel::CRITICAL),
- E_COMPILE_ERROR => array($bootLogger, LogLevel::CRITICAL),
- E_PARSE => array($bootLogger, LogLevel::CRITICAL),
- E_ERROR => array($bootLogger, LogLevel::CRITICAL),
- E_CORE_ERROR => array($bootLogger, LogLevel::CRITICAL),
- );
+ $loggers = [
+ E_DEPRECATED => [$bootLogger, LogLevel::INFO],
+ E_USER_DEPRECATED => [$bootLogger, LogLevel::INFO],
+ E_NOTICE => [$bootLogger, LogLevel::WARNING],
+ E_USER_NOTICE => [$bootLogger, LogLevel::WARNING],
+ E_STRICT => [$bootLogger, LogLevel::WARNING],
+ E_WARNING => [$bootLogger, LogLevel::WARNING],
+ E_USER_WARNING => [$bootLogger, LogLevel::WARNING],
+ E_COMPILE_WARNING => [$bootLogger, LogLevel::WARNING],
+ E_CORE_WARNING => [$bootLogger, LogLevel::WARNING],
+ E_USER_ERROR => [$bootLogger, LogLevel::CRITICAL],
+ E_RECOVERABLE_ERROR => [$bootLogger, LogLevel::CRITICAL],
+ E_COMPILE_ERROR => [$bootLogger, LogLevel::CRITICAL],
+ E_PARSE => [$bootLogger, LogLevel::CRITICAL],
+ E_ERROR => [$bootLogger, LogLevel::CRITICAL],
+ E_CORE_ERROR => [$bootLogger, LogLevel::CRITICAL],
+ ];
- $this->assertSame($loggers, $handler->setLoggers(array()));
+ $this->assertSame($loggers, $handler->setLoggers([]));
- $handler->handleError(E_DEPRECATED, 'Foo message', __FILE__, 123, array());
+ $handler->handleError(E_DEPRECATED, 'Foo message', __FILE__, 123, []);
$logs = $bootLogger->cleanLogs();
@@ -405,14 +410,14 @@ class ErrorHandlerTest extends TestCase
$this->assertSame(123, $exception->getLine());
$this->assertSame(E_DEPRECATED, $exception->getSeverity());
- $bootLogger->log(LogLevel::WARNING, 'Foo message', array('exception' => $exception));
+ $bootLogger->log(LogLevel::WARNING, 'Foo message', ['exception' => $exception]);
$mockLogger = $this->getMockBuilder('Psr\Log\LoggerInterface')->getMock();
$mockLogger->expects($this->once())
->method('log')
- ->with(LogLevel::WARNING, 'Foo message', array('exception' => $exception));
+ ->with(LogLevel::WARNING, 'Foo message', ['exception' => $exception]);
- $handler->setLoggers(array(E_DEPRECATED => array($mockLogger, LogLevel::WARNING)));
+ $handler->setLoggers([E_DEPRECATED => [$mockLogger, LogLevel::WARNING]]);
}
public function testSettingLoggerWhenExceptionIsBuffered()
@@ -425,7 +430,7 @@ class ErrorHandlerTest extends TestCase
$mockLogger = $this->getMockBuilder('Psr\Log\LoggerInterface')->getMock();
$mockLogger->expects($this->once())
->method('log')
- ->with(LogLevel::CRITICAL, 'Uncaught Exception: Foo message', array('exception' => $exception));
+ ->with(LogLevel::CRITICAL, 'Uncaught Exception: Foo message', ['exception' => $exception]);
$handler->setExceptionHandler(function () use ($handler, $mockLogger) {
$handler->setDefaultLogger($mockLogger);
@@ -439,12 +444,12 @@ class ErrorHandlerTest extends TestCase
try {
$handler = ErrorHandler::register();
- $error = array(
+ $error = [
'type' => E_PARSE,
'message' => 'foo',
'file' => 'bar',
'line' => 123,
- );
+ ];
$logger = $this->getMockBuilder('Psr\Log\LoggerInterface')->getMock();
@@ -501,4 +506,43 @@ class ErrorHandlerTest extends TestCase
$handler->handleException(new \Exception());
}
+
+ /**
+ * @dataProvider errorHandlerIsNotLostWhenLoggingProvider
+ */
+ public function testErrorHandlerIsNotLostWhenLogging($customErrorHandlerHasBeenPreviouslyDefined, LoggerInterface $logger)
+ {
+ try {
+ if ($customErrorHandlerHasBeenPreviouslyDefined) {
+ set_error_handler('count');
+ }
+
+ $handler = ErrorHandler::register();
+ $handler->setDefaultLogger($logger);
+
+ @trigger_error('foo', E_USER_DEPRECATED);
+ @trigger_error('bar', E_USER_DEPRECATED);
+
+ $this->assertSame([$handler, 'handleError'], set_error_handler('var_dump'));
+
+ restore_error_handler();
+
+ if ($customErrorHandlerHasBeenPreviouslyDefined) {
+ restore_error_handler();
+ }
+ } finally {
+ restore_error_handler();
+ restore_exception_handler();
+ }
+ }
+
+ public function errorHandlerIsNotLostWhenLoggingProvider()
+ {
+ return [
+ [false, new NullLogger()],
+ [true, new NullLogger()],
+ [false, new LoggerThatSetAnErrorHandler()],
+ [true, new LoggerThatSetAnErrorHandler()],
+ ];
+ }
}