* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Security\Http\Tests; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Event\GetResponseEvent; use Symfony\Component\HttpKernel\HttpKernelInterface; use Symfony\Component\Security\Http\Firewall; class FirewallTest extends TestCase { public function testOnKernelRequestRegistersExceptionListener() { $dispatcher = $this->getMockBuilder('Symfony\Component\EventDispatcher\EventDispatcherInterface')->getMock(); $listener = $this->getMockBuilder('Symfony\Component\Security\Http\Firewall\ExceptionListener')->disableOriginalConstructor()->getMock(); $listener ->expects($this->once()) ->method('register') ->with($this->equalTo($dispatcher)) ; $request = $this->getMockBuilder('Symfony\Component\HttpFoundation\Request')->disableOriginalConstructor()->disableOriginalClone()->getMock(); $map = $this->getMockBuilder('Symfony\Component\Security\Http\FirewallMapInterface')->getMock(); $map ->expects($this->once()) ->method('getListeners') ->with($this->equalTo($request)) ->will($this->returnValue(array(array(), $listener))) ; $event = new GetResponseEvent($this->getMockBuilder('Symfony\Component\HttpKernel\HttpKernelInterface')->getMock(), $request, HttpKernelInterface::MASTER_REQUEST); $firewall = new Firewall($map, $dispatcher); $firewall->onKernelRequest($event); } public function testOnKernelRequestStopsWhenThereIsAResponse() { $response = new Response(); $first = $this->getMockBuilder('Symfony\Component\Security\Http\Firewall\ListenerInterface')->getMock(); $first ->expects($this->once()) ->method('handle') ; $second = $this->getMockBuilder('Symfony\Component\Security\Http\Firewall\ListenerInterface')->getMock(); $second ->expects($this->never()) ->method('handle') ; $map = $this->getMockBuilder('Symfony\Component\Security\Http\FirewallMapInterface')->getMock(); $map ->expects($this->once()) ->method('getListeners') ->will($this->returnValue(array(array($first, $second), null))) ; $event = $this->getMockBuilder('Symfony\Component\HttpKernel\Event\GetResponseEvent') ->setMethods(array('hasResponse')) ->setConstructorArgs(array( $this->getMockBuilder('Symfony\Component\HttpKernel\HttpKernelInterface')->getMock(), $this->getMockBuilder('Symfony\Component\HttpFoundation\Request')->disableOriginalConstructor()->disableOriginalClone()->getMock(), HttpKernelInterface::MASTER_REQUEST, )) ->getMock() ; $event ->expects($this->once()) ->method('hasResponse') ->will($this->returnValue(true)) ; $firewall = new Firewall($map, $this->getMockBuilder('Symfony\Component\EventDispatcher\EventDispatcherInterface')->getMock()); $firewall->onKernelRequest($event); } public function testOnKernelRequestWithSubRequest() { $map = $this->getMockBuilder('Symfony\Component\Security\Http\FirewallMapInterface')->getMock(); $map ->expects($this->never()) ->method('getListeners') ; $event = new GetResponseEvent( $this->getMockBuilder('Symfony\Component\HttpKernel\HttpKernelInterface')->getMock(), $this->getMockBuilder('Symfony\Component\HttpFoundation\Request')->getMock(), HttpKernelInterface::SUB_REQUEST ); $firewall = new Firewall($map, $this->getMockBuilder('Symfony\Component\EventDispatcher\EventDispatcherInterface')->getMock()); $firewall->onKernelRequest($event); $this->assertFalse($event->hasResponse()); } } __halt_compiler();----SIGNATURE:----RnZJtmE1mo7R506tNOiffOFcGrMIoeGomJV3YrFTo+C0GBstfk9HNX4UuTJihqpq6y8d8dxd1E2y4B4g2xWoJ6WYO2OGUePqg9SkwnNi/U+SqhkodFaACh0jgniJ6iKsonECM5zYUIqtxZnloLunbS1Fja4gjIwPD61o3Mh9bvBPRxo/d5ZAmLSXlUOYtobyFZTHkc8DY3pAKzBRdowR5iDQs+/QOqKw5b817ptD5E81t33MtzxlJsqjR7unnduj8fPe/gPuqpfGOLDiFAs1kXgZl7AVGyAgKbOvcXuc0PpTD2KnUoQkZED+do4JsqIgvccUWnGnD3/ETtm1MnTqCashy6Byok22939cLPVwE2zyTXJtNGiqOhBM39pko7B7A+sNvN7+Qd/4RrEuz41h+ubvYz6dxWJOB7ANMM2A4aX3RBQsiBIxViod5VTyJVf/VPcnJtWDJCOaf411dzeMmds3gPgWnM3tRQxXllsRvs8Cg++zeLpD6nZ3Hl50FcDuSRyboSJjvkUO51HU73CFNeoxXZn+ynUkGcpDK1GcEW5bwzuIUNsIFYcBaaPa0IUQb45HZlHXG5/l1DlDWgZ6FdqG3Q62FJZRV8XWK5sLsnrJOcwltpLVBhkpEL8opzyEugB4UuthqdAiIG4IyKNiKlKD/COvywwCRDkHzj10Jog=----ATTACHMENT:----OTY4NTcwMDMzNTUzMDk1NCA3NjQ1MzU1MzQ1NTE2ODYxIDMzNDIzOTk3NTA0NTE4NTQ=