Вход Регистрация
Файл: gapps/vendor/symfony/http-kernel/Tests/EventListener/DebugHandlersListenerTest.php
Строк: 276
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace SymfonyComponentHttpKernelTestsEventListener;

use 
PsrLogLogLevel;
use 
SymfonyComponentConsoleEventConsoleEvent;
use 
SymfonyComponentConsoleCommandCommand;
use 
SymfonyComponentConsoleConsoleEvents;
use 
SymfonyComponentConsoleHelperHelperSet;
use 
SymfonyComponentConsoleInputArgvInput;
use 
SymfonyComponentConsoleOutputConsoleOutput;
use 
SymfonyComponentDebugErrorHandler;
use 
SymfonyComponentDebugExceptionHandler;
use 
SymfonyComponentEventDispatcherEventDispatcher;
use 
SymfonyComponentHttpFoundationRequest;
use 
SymfonyComponentHttpKernelEventKernelEvent;
use 
SymfonyComponentHttpKernelEventListenerDebugHandlersListener;
use 
SymfonyComponentHttpKernelHttpKernelInterface;
use 
SymfonyComponentHttpKernelKernelEvents;

/**
 * DebugHandlersListenerTest.
 *
 * @author Nicolas Grekas <p@tchwork.com>
 */
class DebugHandlersListenerTest extends PHPUnit_Framework_TestCase
{
    public function 
testConfigure()
    {
        
$logger $this->getMock('PsrLogLoggerInterface');
        
$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($loggerLogLevel::INFO), $loggers[E_DEPRECATED]);
    }

    public function 
testConfigureForHttpKernelWithNoTerminateWithException()
    {
        
$listener = new DebugHandlersListener(null);
        
$eHandler = new ErrorHandler();
        
$event = new KernelEvent(
            
$this->getMock('SymfonyComponentHttpKernelHttpKernelInterface'),
            
Request::create('/'),
            
HttpKernelInterface::MASTER_REQUEST
        
);

        
$exception null;
        
$h set_exception_handler(array($eHandler'handleException'));
        try {
            
$listener->configure($event);
        } catch (
Exception $exception) {
        }
        
restore_exception_handler();

        if (
null !== $exception) {
            throw 
$exception;
        }

        
$this->assertNull($h);
    }

    public function 
testConsoleEvent()
    {
        
$dispatcher = new EventDispatcher();
        
$listener = new DebugHandlersListener(null);
        
$app $this->getMock('SymfonyComponentConsoleApplication');
        
$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());
    }
}
Онлайн: 4
Реклама