Server IP : 66.29.132.122 / Your IP : 3.137.213.94 Web Server : LiteSpeed System : Linux business142.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : admazpex ( 531) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/opt/alt/php53/usr/share/pear/test/Security/Symfony/Component/Security/Core/Tests/Authentication/Token/ |
Upload File : |
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Security\Core\Tests\Authentication\Token; use Symfony\Component\Security\Core\Authentication\Token\AbstractToken; use Symfony\Component\Security\Core\Role\Role; use Symfony\Component\Security\Core\Role\SwitchUserRole; class TestUser { protected $name; public function __construct($name) { $this->name = $name; } public function __toString() { return $this->name; } } class ConcreteToken extends AbstractToken { private $credentials = 'credentials_value'; public function __construct($user, array $roles = array()) { parent::__construct($roles); $this->setUser($user); } public function serialize() { return serialize(array($this->credentials, parent::serialize())); } public function unserialize($serialized) { list($this->credentials, $parentStr) = unserialize($serialized); parent::unserialize($parentStr); } public function getCredentials() {} } class AbstractTokenTest extends \PHPUnit_Framework_TestCase { public function testGetUsername() { $token = $this->getToken(array('ROLE_FOO')); $token->setUser('fabien'); $this->assertEquals('fabien', $token->getUsername()); $token->setUser(new TestUser('fabien')); $this->assertEquals('fabien', $token->getUsername()); $user = $this->getMock('Symfony\Component\Security\Core\User\UserInterface'); $user->expects($this->once())->method('getUsername')->will($this->returnValue('fabien')); $token->setUser($user); $this->assertEquals('fabien', $token->getUsername()); } public function testEraseCredentials() { $token = $this->getToken(array('ROLE_FOO')); $user = $this->getMock('Symfony\Component\Security\Core\User\UserInterface'); $user->expects($this->once())->method('eraseCredentials'); $token->setUser($user); $token->eraseCredentials(); } /** * @covers Symfony\Component\Security\Core\Authentication\Token\AbstractToken::serialize * @covers Symfony\Component\Security\Core\Authentication\Token\AbstractToken::unserialize */ public function testSerialize() { $token = $this->getToken(array('ROLE_FOO')); $token->setAttributes(array('foo' => 'bar')); $uToken = unserialize(serialize($token)); $this->assertEquals($token->getRoles(), $uToken->getRoles()); $this->assertEquals($token->getAttributes(), $uToken->getAttributes()); } public function testSerializeParent() { $user = new TestUser('fabien'); $token = new ConcreteToken($user, array('ROLE_FOO')); $parentToken = new ConcreteToken($user, array(new SwitchUserRole('ROLE_PREVIOUS', $token))); $uToken = unserialize(serialize($parentToken)); $this->assertEquals( current($parentToken->getRoles())->getSource()->getUser(), current($uToken->getRoles())->getSource()->getUser() ); } /** * @covers Symfony\Component\Security\Core\Authentication\Token\AbstractToken::__construct */ public function testConstructor() { $token = $this->getToken(array('ROLE_FOO')); $this->assertEquals(array(new Role('ROLE_FOO')), $token->getRoles()); $token = $this->getToken(array(new Role('ROLE_FOO'))); $this->assertEquals(array(new Role('ROLE_FOO')), $token->getRoles()); $token = $this->getToken(array(new Role('ROLE_FOO'), 'ROLE_BAR')); $this->assertEquals(array(new Role('ROLE_FOO'), new Role('ROLE_BAR')), $token->getRoles()); } /** * @covers Symfony\Component\Security\Core\Authentication\Token\AbstractToken::isAuthenticated * @covers Symfony\Component\Security\Core\Authentication\Token\AbstractToken::setAuthenticated */ public function testAuthenticatedFlag() { $token = $this->getToken(); $this->assertFalse($token->isAuthenticated()); $token->setAuthenticated(true); $this->assertTrue($token->isAuthenticated()); $token->setAuthenticated(false); $this->assertFalse($token->isAuthenticated()); } /** * @covers Symfony\Component\Security\Core\Authentication\Token\AbstractToken::getAttributes * @covers Symfony\Component\Security\Core\Authentication\Token\AbstractToken::setAttributes * @covers Symfony\Component\Security\Core\Authentication\Token\AbstractToken::hasAttribute * @covers Symfony\Component\Security\Core\Authentication\Token\AbstractToken::getAttribute * @covers Symfony\Component\Security\Core\Authentication\Token\AbstractToken::setAttribute */ public function testAttributes() { $attributes = array('foo' => 'bar'); $token = $this->getToken(); $token->setAttributes($attributes); $this->assertEquals($attributes, $token->getAttributes(), '->getAttributes() returns the token attributes'); $this->assertEquals('bar', $token->getAttribute('foo'), '->getAttribute() returns the value of an attribute'); $token->setAttribute('foo', 'foo'); $this->assertEquals('foo', $token->getAttribute('foo'), '->setAttribute() changes the value of an attribute'); $this->assertTrue($token->hasAttribute('foo'), '->hasAttribute() returns true if the attribute is defined'); $this->assertFalse($token->hasAttribute('oof'), '->hasAttribute() returns false if the attribute is not defined'); try { $token->getAttribute('foobar'); $this->fail('->getAttribute() throws an \InvalidArgumentException exception when the attribute does not exist'); } catch (\Exception $e) { $this->assertInstanceOf('\InvalidArgumentException', $e, '->getAttribute() throws an \InvalidArgumentException exception when the attribute does not exist'); $this->assertEquals('This token has no "foobar" attribute.', $e->getMessage(), '->getAttribute() throws an \InvalidArgumentException exception when the attribute does not exist'); } } /** * @dataProvider getUsers */ public function testSetUser($user) { $token = $this->getToken(); $token->setUser($user); $this->assertSame($user, $token->getUser()); } public function getUsers() { $user = $this->getMock('Symfony\Component\Security\Core\User\UserInterface'); $advancedUser = $this->getMock('Symfony\Component\Security\Core\User\AdvancedUserInterface'); return array( array($advancedUser), array($user), array(new TestUser('foo')), array('foo'), ); } /** * @dataProvider getUserChanges */ public function testSetUserSetsAuthenticatedToFalseWhenUserChanges($firstUser, $secondUser) { $token = $this->getToken(); $token->setAuthenticated(true); $this->assertTrue($token->isAuthenticated()); $token->setUser($firstUser); $this->assertTrue($token->isAuthenticated()); $token->setUser($secondUser); $this->assertFalse($token->isAuthenticated()); } public function getUserChanges() { $user = $this->getMock('Symfony\Component\Security\Core\User\UserInterface'); $advancedUser = $this->getMock('Symfony\Component\Security\Core\User\AdvancedUserInterface'); return array( array( 'foo', 'bar', ), array( 'foo', new TestUser('bar'), ), array( 'foo', $user, ), array( 'foo', $advancedUser ), array( $user, 'foo' ), array( $advancedUser, 'foo' ), array( $user, new TestUser('foo'), ), array( $advancedUser, new TestUser('foo'), ), array( new TestUser('foo'), new TestUser('bar'), ), array( new TestUser('foo'), 'bar', ), array( new TestUser('foo'), $user, ), array( new TestUser('foo'), $advancedUser, ), array( $user, $advancedUser ), array( $advancedUser, $user ), ); } /** * @dataProvider getUsers */ public function testSetUserDoesNotSetAuthenticatedToFalseWhenUserDoesNotChange($user) { $token = $this->getToken(); $token->setAuthenticated(true); $this->assertTrue($token->isAuthenticated()); $token->setUser($user); $this->assertTrue($token->isAuthenticated()); $token->setUser($user); $this->assertTrue($token->isAuthenticated()); } protected function getToken(array $roles = array()) { return $this->getMockForAbstractClass('Symfony\Component\Security\Core\Authentication\Token\AbstractToken', array($roles)); } }