summaryrefslogtreecommitdiffstats
path: root/Http/Tests
diff options
context:
space:
mode:
authorFabien Potencier <fabien.potencier@gmail.com>2016-04-05 18:36:43 +0200
committerFabien Potencier <fabien.potencier@gmail.com>2016-04-05 18:36:43 +0200
commit5176f267ee3c8ae80e9b2e45c7b681855e3ac56c (patch)
tree73476e6208589ce85df864bf4f5c85c29342430e /Http/Tests
parentd41391616712f23df16277d674280cea6cb5f139 (diff)
parent8930c053da78b96618182f855d8b5f0de5de4e14 (diff)
downloadsymfony-security-5176f267ee3c8ae80e9b2e45c7b681855e3ac56c.zip
symfony-security-5176f267ee3c8ae80e9b2e45c7b681855e3ac56c.tar.gz
symfony-security-5176f267ee3c8ae80e9b2e45c7b681855e3ac56c.tar.bz2
Merge branch '2.3' into 2.7
* 2.3: [HttpFoundation] Improve phpdoc [Logging] Add support for firefox in ChromePhpHandler [Security] Fixed SwitchUserListener when exiting an impersonication with AnonymousToken [Form] fix "prototype" not required when parent form is not required
Diffstat (limited to 'Http/Tests')
-rw-r--r--Http/Tests/Firewall/SwitchUserListenerTest.php48
1 files changed, 48 insertions, 0 deletions
diff --git a/Http/Tests/Firewall/SwitchUserListenerTest.php b/Http/Tests/Firewall/SwitchUserListenerTest.php
index f43b564..bca2c4a 100644
--- a/Http/Tests/Firewall/SwitchUserListenerTest.php
+++ b/Http/Tests/Firewall/SwitchUserListenerTest.php
@@ -158,6 +158,54 @@ class SwitchUserListenerTest extends \PHPUnit_Framework_TestCase
$listener->handle($this->event);
}
+ public function testExitUserDoesNotDispatchEventWithStringUser()
+ {
+ $originalUser = 'anon.';
+ $refreshedUser = $this->getMock('Symfony\Component\Security\Core\User\UserInterface');
+ $this
+ ->userProvider
+ ->expects($this->never())
+ ->method('refreshUser');
+ $originalToken = $this->getToken();
+ $originalToken
+ ->expects($this->any())
+ ->method('getUser')
+ ->willReturn($originalUser);
+ $role = $this
+ ->getMockBuilder('Symfony\Component\Security\Core\Role\SwitchUserRole')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $role
+ ->expects($this->any())
+ ->method('getSource')
+ ->willReturn($originalToken);
+ $this
+ ->tokenStorage
+ ->expects($this->any())
+ ->method('getToken')
+ ->willReturn($this->getToken(array($role)));
+ $this
+ ->request
+ ->expects($this->any())
+ ->method('all')
+ ->with('_switch_user')
+ ->willReturn('_exit');
+ $this
+ ->request
+ ->expects($this->any())
+ ->method('getUri')
+ ->willReturn('/');
+
+ $dispatcher = $this->getMock('Symfony\Component\EventDispatcher\EventDispatcherInterface');
+ $dispatcher
+ ->expects($this->never())
+ ->method('dispatch')
+ ;
+
+ $listener = new SwitchUserListener($this->tokenStorage, $this->userProvider, $this->userChecker, 'provider123', $this->accessDecisionManager, null, '_switch_user', 'ROLE_ALLOWED_TO_SWITCH', $dispatcher);
+ $listener->handle($this->event);
+ }
+
/**
* @expectedException \Symfony\Component\Security\Core\Exception\AccessDeniedException
*/