CookieClearingLogoutHandlerTest.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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->has('Set-Cookie'));
  21. $handler->logout($request, $response, $token);
  22. $headers = $response->headers->all();
  23. $cookies = $headers['set-cookie'];
  24. $this->assertEquals(2, count($cookies));
  25. $cookie = $cookies[0];
  26. $this->assertStringStartsWith('foo=;', $cookie);
  27. $cookie = $cookies[1];
  28. $this->assertStringStartsWith('foo2=;', $cookie);
  29. }
  30. }