You are here

class DebugHandlersListenerTest in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/http-kernel/Tests/EventListener/DebugHandlersListenerTest.php \Symfony\Component\HttpKernel\Tests\EventListener\DebugHandlersListenerTest

DebugHandlersListenerTest.

@author Nicolas Grekas <p@tchwork.com>

Hierarchy

  • class \Symfony\Component\HttpKernel\Tests\EventListener\DebugHandlersListenerTest extends \Symfony\Component\HttpKernel\Tests\EventListener\PHPUnit_Framework_TestCase

Expanded class hierarchy of DebugHandlersListenerTest

File

vendor/symfony/http-kernel/Tests/EventListener/DebugHandlersListenerTest.php, line 32

Namespace

Symfony\Component\HttpKernel\Tests\EventListener
View source
class DebugHandlersListenerTest extends \PHPUnit_Framework_TestCase {
  public function testConfigure() {
    $logger = $this
      ->getMock('Psr\\Log\\LoggerInterface');
    $userHandler = function () {
    };
    $listener = new DebugHandlersListener($userHandler, $logger);
    $xHandler = new ExceptionHandler();
    $eHandler = new ErrorHandler();
    $eHandler
      ->setExceptionHandler(array(
      $xHandler,
      'handle',
    ));
    $exception = null;
    set_error_handler(array(
      $eHandler,
      'handleError',
    ));
    set_exception_handler(array(
      $eHandler,
      'handleException',
    ));
    try {
      $listener
        ->configure();
    } catch (\Exception $exception) {
    }
    restore_exception_handler();
    restore_error_handler();
    if (null !== $exception) {
      throw $exception;
    }
    $this
      ->assertSame($userHandler, $xHandler
      ->setHandler('var_dump'));
    $loggers = $eHandler
      ->setLoggers(array());
    $this
      ->assertArrayHasKey(E_DEPRECATED, $loggers);
    $this
      ->assertSame(array(
      $logger,
      LogLevel::INFO,
    ), $loggers[E_DEPRECATED]);
  }
  public function testConsoleEvent() {
    $dispatcher = new EventDispatcher();
    $listener = new DebugHandlersListener(null);
    $app = $this
      ->getMock('Symfony\\Component\\Console\\Application');
    $app
      ->expects($this
      ->once())
      ->method('getHelperSet')
      ->will($this
      ->returnValue(new HelperSet()));
    $command = new Command(__FUNCTION__);
    $command
      ->setApplication($app);
    $event = new ConsoleEvent($command, new ArgvInput(), new ConsoleOutput());
    $dispatcher
      ->addSubscriber($listener);
    $xListeners = array(
      KernelEvents::REQUEST => array(
        array(
          $listener,
          'configure',
        ),
      ),
      ConsoleEvents::COMMAND => array(
        array(
          $listener,
          'configure',
        ),
      ),
    );
    $this
      ->assertSame($xListeners, $dispatcher
      ->getListeners());
    $exception = null;
    $eHandler = new ErrorHandler();
    set_error_handler(array(
      $eHandler,
      'handleError',
    ));
    set_exception_handler(array(
      $eHandler,
      'handleException',
    ));
    try {
      $dispatcher
        ->dispatch(ConsoleEvents::COMMAND, $event);
    } catch (\Exception $exception) {
    }
    restore_exception_handler();
    restore_error_handler();
    if (null !== $exception) {
      throw $exception;
    }
    $xHandler = $eHandler
      ->setExceptionHandler('var_dump');
    $this
      ->assertInstanceOf('Closure', $xHandler);
    $app
      ->expects($this
      ->once())
      ->method('renderException');
    $xHandler(new \Exception());
  }

}

Members