summaryrefslogtreecommitdiffstats
path: root/Http/Tests/RememberMe/AbstractRememberMeServicesTest.php
diff options
context:
space:
mode:
authorFabien Potencier <fabien.potencier@gmail.com>2015-10-05 17:19:10 +0200
committerFabien Potencier <fabien.potencier@gmail.com>2015-10-05 17:19:10 +0200
commit99d73ecb12dedf5c772aab7f00e7d39b60c5f4ed (patch)
tree1173b67020a5f5cee99d930f43ad6a593fb4d0f4 /Http/Tests/RememberMe/AbstractRememberMeServicesTest.php
parent88ef04f5d4cc2f895c7d74f6e5ba89255df9dc01 (diff)
parent427c50c174f7ae307d61a722da4ab53e87819041 (diff)
downloadsymfony-security-99d73ecb12dedf5c772aab7f00e7d39b60c5f4ed.zip
symfony-security-99d73ecb12dedf5c772aab7f00e7d39b60c5f4ed.tar.gz
symfony-security-99d73ecb12dedf5c772aab7f00e7d39b60c5f4ed.tar.bz2
Merge branch '2.7' into 2.8
* 2.7: [Security][bugfix] "Remember me" cookie cleared on logout with custom "secure"/"httponly" config options [1] [ci] Use current PHP_BINARY when running ./phpunit Fixed typos [UPGRADE-3.0] fix bullet indentation Fix PropertyAccessor modifying array in object when array key does not exist [Security] InMemoryUserProvider now concerns whether user's password is changed when refreshing
Diffstat (limited to 'Http/Tests/RememberMe/AbstractRememberMeServicesTest.php')
-rw-r--r--Http/Tests/RememberMe/AbstractRememberMeServicesTest.php32
1 files changed, 29 insertions, 3 deletions
diff --git a/Http/Tests/RememberMe/AbstractRememberMeServicesTest.php b/Http/Tests/RememberMe/AbstractRememberMeServicesTest.php
index d3daa35..4ea4f5d 100644
--- a/Http/Tests/RememberMe/AbstractRememberMeServicesTest.php
+++ b/Http/Tests/RememberMe/AbstractRememberMeServicesTest.php
@@ -82,16 +82,35 @@ class AbstractRememberMeServicesTest extends \PHPUnit_Framework_TestCase
$this->assertSame('fookey', $returnedToken->getProviderKey());
}
- public function testLogout()
+ /**
+ * @dataProvider provideOptionsForLogout
+ */
+ public function testLogout(array $options)
{
- $service = $this->getService(null, array('name' => 'foo', 'path' => null, 'domain' => null));
+ $service = $this->getService(null, $options);
$request = new Request();
$response = new Response();
$token = $this->getMock('Symfony\Component\Security\Core\Authentication\Token\TokenInterface');
$service->logout($request, $response, $token);
- $this->assertTrue($request->attributes->get(RememberMeServicesInterface::COOKIE_ATTR_NAME)->isCleared());
+ $cookie = $request->attributes->get(RememberMeServicesInterface::COOKIE_ATTR_NAME);
+
+ $this->assertInstanceOf('Symfony\Component\HttpFoundation\Cookie', $cookie);
+ $this->assertTrue($cookie->isCleared());
+ $this->assertSame($options['name'], $cookie->getName());
+ $this->assertSame($options['path'], $cookie->getPath());
+ $this->assertSame($options['domain'], $cookie->getDomain());
+ $this->assertSame($options['secure'], $cookie->isSecure());
+ $this->assertSame($options['httponly'], $cookie->isHttpOnly());
+ }
+
+ public function provideOptionsForLogout()
+ {
+ return array(
+ array(array('name' => 'foo', 'path' => '/', 'domain' => null, 'secure' => false, 'httponly' => true)),
+ array(array('name' => 'foo', 'path' => '/bar', 'domain' => 'baz.com', 'secure' => true, 'httponly' => false)),
+ );
}
public function testLoginFail()
@@ -267,6 +286,13 @@ class AbstractRememberMeServicesTest extends \PHPUnit_Framework_TestCase
$userProvider = $this->getProvider();
}
+ if (!isset($options['secure'])) {
+ $options['secure'] = false;
+ }
+ if (!isset($options['httponly'])) {
+ $options['httponly'] = true;
+ }
+
return $this->getMockForAbstractClass('Symfony\Component\Security\Http\RememberMe\AbstractRememberMeServices', array(
array($userProvider), 'foosecret', 'fookey', $options, $logger,
));