* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\HttpKernel\Tests\EventListener; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Session\SessionInterface; use Symfony\Component\HttpKernel\Event\FilterResponseEvent; use Symfony\Component\HttpKernel\EventListener\SaveSessionListener; use Symfony\Component\HttpKernel\HttpKernelInterface; class SaveSessionListenerTest extends TestCase { public function testOnlyTriggeredOnMasterRequest() { $listener = new SaveSessionListener(); $event = $this->getMockBuilder(FilterResponseEvent::class)->disableOriginalConstructor()->getMock(); $event->expects($this->once())->method('isMasterRequest')->willReturn(false); $event->expects($this->never())->method('getRequest'); // sub request $listener->onKernelResponse($event); } public function testSessionSaved() { $listener = new SaveSessionListener(); $kernel = $this->getMockBuilder(HttpKernelInterface::class)->disableOriginalConstructor()->getMock(); $session = $this->getMockBuilder(SessionInterface::class)->disableOriginalConstructor()->getMock(); $session->expects($this->once())->method('isStarted')->willReturn(true); $session->expects($this->once())->method('save'); $request = new Request(); $request->setSession($session); $response = new Response(); $listener->onKernelResponse(new FilterResponseEvent($kernel, $request, HttpKernelInterface::MASTER_REQUEST, $response)); } } __halt_compiler();----SIGNATURE:----YIDS+oRHHQ49FHEuqNUKi26NokREQqSCIogJZI2qE4R1s0XhKFQLazyAl0TRM/O91B8VPj7AqEXXKIovjevZpuTCGdUzuQx6cQHBhLQ7dEgpEDlqBOSAaRxFrf3w/J2FHBOgRLdASN5uP7E7+d9cr6w5l0qyqhUz5v+Ihc997+R6OydEqcvVy5RtqcfewxKFaf1vHqGLGXSyvfnbhZx+Onw4sqDqx1OGuwr9Iu0YNHZ9g1RaGRdn0lD7cQDMczS7tZtDkG3GzKgdv8xsgH2kKDSXWVl89CzUgGnpCIcp4fXdrCjFuEtVp8r6t36PuP8Z7rdAaSFfpm55T9w/fyfmFZTMMWiaqxcw909x2zkwlqKa/2Ac+tdWnGmFp66vH6Bdhb47A7EqqAGhRKFdx0phZqOnV5+9hY3ws9ZLPdrlYMQVIVE5vX6tyOzZr3/3LaCqyjy7H4ZxzFTa+DzTTKOLxn7Bi9p/i1pcWNcvh5RNuKGw2jHE1Veq+wcPSkByoSSK+cllGt7zsITZ5bxcyHZAD5cnsXptOCe+enrfQFou7C3bTmwxZ4XmdM/mzPMN/1FoUA9vO6pqe0WRb8TqWPhry0Hx1l/lHWExa1x/MOdQrlj/daL61s6YmKNvfmK9XpVmvPAvnd2nqQ8arT7kLO02RQq1RzsWJfpP3zTGkqiOGWw=----ATTACHMENT:----MjIxNzY1MDM4OTAzODA1NCA3MTc5MjA1NDUwMzk2NzExIDgzMDE1MDQwNDA5ODY5MTY=