public function ErrorHandlerTest::testHandle

File

drupal/core/vendor/symfony/debug/Symfony/Component/Debug/Tests/ErrorHandlerTest.php, line 36

Class

ErrorHandlerTest
ErrorHandlerTest

Namespace

Symfony\Component\Debug\Tests

Code

public function testHandle() {
  $handler = ErrorHandler::register(0);
  $this
    ->assertFalse($handler
    ->handle(0, 'foo', 'foo.php', 12, 'foo'));
  restore_error_handler();
  $handler = ErrorHandler::register(3);
  $this
    ->assertFalse($handler
    ->handle(4, 'foo', 'foo.php', 12, 'foo'));
  restore_error_handler();
  $handler = ErrorHandler::register(3);
  try {
    $handler
      ->handle(111, 'foo', 'foo.php', 12, 'foo');
  } catch (\ErrorException $e) {
    $this
      ->assertSame('111: foo in foo.php line 12', $e
      ->getMessage());
    $this
      ->assertSame(111, $e
      ->getSeverity());
    $this
      ->assertSame('foo.php', $e
      ->getFile());
    $this
      ->assertSame(12, $e
      ->getLine());
  }
  restore_error_handler();
  $handler = ErrorHandler::register(E_USER_DEPRECATED);
  $this
    ->assertTrue($handler
    ->handle(E_USER_DEPRECATED, 'foo', 'foo.php', 12, 'foo'));
  restore_error_handler();
  $handler = ErrorHandler::register(E_DEPRECATED);
  $this
    ->assertTrue($handler
    ->handle(E_DEPRECATED, 'foo', 'foo.php', 12, 'foo'));
  restore_error_handler();
  $logger = $this
    ->getMock('Psr\\Log\\LoggerInterface');
  $that = $this;
  $warnArgCheck = function ($message, $context) use ($that) {
    $that
      ->assertEquals('foo', $message);
    $that
      ->assertArrayHasKey('type', $context);
    $that
      ->assertEquals($context['type'], ErrorHandler::TYPE_DEPRECATION);
    $that
      ->assertArrayHasKey('stack', $context);
    $that
      ->assertInternalType('array', $context['stack']);
  };
  $logger
    ->expects($this
    ->once())
    ->method('warning')
    ->will($this
    ->returnCallback($warnArgCheck));
  $handler = ErrorHandler::register(E_USER_DEPRECATED);
  $handler
    ->setLogger($logger);
  $handler
    ->handle(E_USER_DEPRECATED, 'foo', 'foo.php', 12, 'foo');
  restore_error_handler();
}