* * 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\Encoder; use PHPUnit\Framework\TestCase; use Symfony\Component\Security\Core\Encoder\BasePasswordEncoder; class PasswordEncoder extends BasePasswordEncoder { public function encodePassword($raw, $salt) { } public function isPasswordValid($encoded, $raw, $salt) { } } class BasePasswordEncoderTest extends TestCase { public function testComparePassword() { $this->assertTrue($this->invokeComparePasswords('password', 'password')); $this->assertFalse($this->invokeComparePasswords('password', 'foo')); } public function testDemergePasswordAndSalt() { $this->assertEquals(array('password', 'salt'), $this->invokeDemergePasswordAndSalt('password{salt}')); $this->assertEquals(array('password', ''), $this->invokeDemergePasswordAndSalt('password')); $this->assertEquals(array('', ''), $this->invokeDemergePasswordAndSalt('')); } public function testMergePasswordAndSalt() { $this->assertEquals('password{salt}', $this->invokeMergePasswordAndSalt('password', 'salt')); $this->assertEquals('password', $this->invokeMergePasswordAndSalt('password', '')); } /** * @expectedException \InvalidArgumentException */ public function testMergePasswordAndSaltWithException() { $this->invokeMergePasswordAndSalt('password', '{foo}'); } public function testIsPasswordTooLong() { $this->assertTrue($this->invokeIsPasswordTooLong(str_repeat('a', 10000))); $this->assertFalse($this->invokeIsPasswordTooLong(str_repeat('a', 10))); } protected function invokeDemergePasswordAndSalt($password) { $encoder = new PasswordEncoder(); $r = new \ReflectionObject($encoder); $m = $r->getMethod('demergePasswordAndSalt'); $m->setAccessible(true); return $m->invoke($encoder, $password); } protected function invokeMergePasswordAndSalt($password, $salt) { $encoder = new PasswordEncoder(); $r = new \ReflectionObject($encoder); $m = $r->getMethod('mergePasswordAndSalt'); $m->setAccessible(true); return $m->invoke($encoder, $password, $salt); } protected function invokeComparePasswords($p1, $p2) { $encoder = new PasswordEncoder(); $r = new \ReflectionObject($encoder); $m = $r->getMethod('comparePasswords'); $m->setAccessible(true); return $m->invoke($encoder, $p1, $p2); } protected function invokeIsPasswordTooLong($p) { $encoder = new PasswordEncoder(); $r = new \ReflectionObject($encoder); $m = $r->getMethod('isPasswordTooLong'); $m->setAccessible(true); return $m->invoke($encoder, $p); } } __halt_compiler();----SIGNATURE:----ZBtaCE070IXLKDAZMTLBdWFA1hFqMOLUdSkyznrT229N62RHYWGjq9axlqSVsZ2YJ4poVbFqCjryo5UBD5k9zse1epH6+LXTBAFEqUvSME7X4XAWPINarlgC/pMNyJul4dbXTort4IrLs3W+DR9ZfoyNC17V7unallt0YwiC+q5gk7Czyake2wbEO1fiJ/dDeuIYoCu9HzdIqkDaV7ExDQDFeJcjK0fPjZyfM32wXqx60kZv0Oet7wd1vEWIlYmPyYDXnNsE81PeL+8en9rdOTV1kwZTE3mvJzpNpS2RiGY/B1jaM1KBo03bdOMM338jEn4thTstr3/drZlDqMb2dawsHgSW8uJxjHpwo1Dh7PS9WNwPw0ESFNDw0iOiNMuqUTQPMnE9wA+xHVhDaleX5mLRNCd4MByDkh/Z6HqyC9/N9RTrwH9kGhDDf/BMDUjC6Wnog/+oJp7mnnLCvKvBaxmJNWEJeBsVv8dHHLbbFnxdzWGVQCZpxA6ifg4t8VnFSfDhEKw02FG3O/Ne/QhNck33hQXEbhpIV96Dw9Pck3b3j9RM/LybTaHXuNN4mjxMpbSG/q5tjUy19E1ZINrJip/dUAHZeXwpmtXsrJj9jtqqKJzBtt8O8oZuf40sMyl08TuxBh7PwiU5FwHnDAkWGvmqsccVhcmvgSRxrxLAvSI=----ATTACHMENT:----Njk4NzU4MzQ3NTIxMzI3MiA1NjU1MzkxMDE4NTU4NDk0IDI4ODYxMTIxMDk1MTYyNzQ=