TestSessionListenerTest.php in Zircon Profile 8
File
vendor/symfony/http-kernel/Tests/EventListener/TestSessionListenerTest.php
View source
<?php
namespace Symfony\Component\HttpKernel\Tests\EventListener;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
class TestSessionListenerTest extends \PHPUnit_Framework_TestCase {
private $listener;
private $session;
protected function setUp() {
$this->listener = $this
->getMockForAbstractClass('Symfony\\Component\\HttpKernel\\EventListener\\TestSessionListener');
$this->session = $this
->getSession();
}
public function testShouldSaveMasterRequestSession() {
$this
->sessionHasBeenStarted();
$this
->sessionMustBeSaved();
$this
->filterResponse(new Request());
}
public function testShouldNotSaveSubRequestSession() {
$this
->sessionMustNotBeSaved();
$this
->filterResponse(new Request(), HttpKernelInterface::SUB_REQUEST);
}
public function testDoesNotDeleteCookieIfUsingSessionLifetime() {
$this
->sessionHasBeenStarted();
$params = session_get_cookie_params();
session_set_cookie_params(0, $params['path'], $params['domain'], $params['secure'], $params['httponly']);
$response = $this
->filterResponse(new Request(), HttpKernelInterface::MASTER_REQUEST);
$cookies = $response->headers
->getCookies();
$this
->assertEquals(0, reset($cookies)
->getExpiresTime());
}
public function testUnstartedSessionIsNotSave() {
$this
->sessionHasNotBeenStarted();
$this
->sessionMustNotBeSaved();
$this
->filterResponse(new Request());
}
private function filterResponse(Request $request, $type = HttpKernelInterface::MASTER_REQUEST) {
$request
->setSession($this->session);
$response = new Response();
$kernel = $this
->getMock('Symfony\\Component\\HttpKernel\\HttpKernelInterface');
$event = new FilterResponseEvent($kernel, $request, $type, $response);
$this->listener
->onKernelResponse($event);
$this
->assertSame($response, $event
->getResponse());
return $response;
}
private function sessionMustNotBeSaved() {
$this->session
->expects($this
->never())
->method('save');
}
private function sessionMustBeSaved() {
$this->session
->expects($this
->once())
->method('save');
}
private function sessionHasBeenStarted() {
$this->session
->expects($this
->once())
->method('isStarted')
->will($this
->returnValue(true));
}
private function sessionHasNotBeenStarted() {
$this->session
->expects($this
->once())
->method('isStarted')
->will($this
->returnValue(false));
}
private function getSession() {
$mock = $this
->getMockBuilder('Symfony\\Component\\HttpFoundation\\Session\\Session')
->disableOriginalConstructor()
->getMock();
$mock
->expects($this
->any())
->method('getName')
->will($this
->returnValue('MOCKSESSID'));
return $mock;
}
}