use PHPUnit\Framework\TestCase;
use Symfony\Component\EventDispatcher\EventDispatcher;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
-use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
use Symfony\Component\HttpKernel\EventListener\ExceptionListener;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\HttpKernel\Log\DebugLoggerInterface;
-use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Tests\Logger;
/**
$logger = new TestLogger();
$l = new ExceptionListener('foo', $logger);
- $_logger = new \ReflectionProperty(get_class($l), 'logger');
+ $_logger = new \ReflectionProperty(\get_class($l), 'logger');
$_logger->setAccessible(true);
- $_controller = new \ReflectionProperty(get_class($l), 'controller');
+ $_controller = new \ReflectionProperty(\get_class($l), 'controller');
$_controller->setAccessible(true);
$this->assertSame($logger, $_logger->getValue($l));
$this->assertFalse($response->headers->has('content-security-policy'), 'CSP header has been removed');
$this->assertFalse($dispatcher->hasListeners(KernelEvents::RESPONSE), 'CSP removal listener has been removed');
}
-
- public function testNullController()
- {
- $listener = new ExceptionListener(null);
- $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\HttpKernelInterface')->getMock();
- $kernel->expects($this->once())->method('handle')->will($this->returnCallback(function (Request $request) {
- $controller = $request->attributes->get('_controller');
-
- return $controller();
- }));
- $request = Request::create('/');
- $event = new GetResponseForExceptionEvent($kernel, $request, HttpKernelInterface::MASTER_REQUEST, new \Exception('foo'));
-
- $listener->onKernelException($event);
-
- $this->assertContains('Whoops, looks like something went wrong.', $event->getResponse()->getContent());
- }
}
class TestLogger extends Logger implements DebugLoggerInterface
{
public function countErrors()
{
- return count($this->logs['critical']);
+ return \count($this->logs['critical']);
}
}