CookieClearingLogoutHandlerTest.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace Symfony\Tests\Component\HttpKernel\Security\Logout;
  3. use Symfony\Component\HttpFoundation\Response;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\HttpKernel\Security\Logout\CookieClearingLogoutHandler;
  6. class CookieClearingLogoutHandlerTest extends \PHPUnit_Framework_TestCase
  7. {
  8. public function testConstructor()
  9. {
  10. $cookieNames = array('foo', 'foo2', 'foo3');
  11. $handler = new CookieClearingLogoutHandler($cookieNames);
  12. $this->assertEquals($cookieNames, $handler->getCookieNames());
  13. }
  14. public function testLogout()
  15. {
  16. $request = new Request();
  17. $response = new Response();
  18. $token = $this->getMock('Symfony\Component\Security\Authentication\Token\TokenInterface');
  19. $handler = new CookieClearingLogoutHandler(array('foo', 'foo2'));
  20. $this->assertFalse($response->headers->hasCookie('foo'));
  21. $handler->logout($request, $response, $token);
  22. $cookies = $response->headers->getCookies();
  23. $this->assertEquals(2, count($cookies));
  24. $cookie = $cookies['foo'];
  25. $this->assertEquals('foo', $cookie->getName());
  26. $this->assertTrue($cookie->isCleared());
  27. $cookie = $cookies['foo2'];
  28. $this->assertStringStartsWith('foo2', $cookie->getName());
  29. $this->assertTrue($cookie->isCleared());
  30. }
  31. }