* * 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:----wra4LAhwQwtUatne0CrR6S86JVibyuw9JuiDkSDUdK71x7ANDwsamCoHImbtZl5PFpTtXQgMQBugboKcQwXiwB10FxHCbP30K1PYkjU5v3X9xOH1zOC14k6GbSK+6bHoQHvcMmbfUzpCqdkA2ctMEw+Yij08UlUISlOKod6KPBur7SmduYYQK2rTZdkMqVFTWUFBW6UKd7UDdiBaIWyOI8O2f2Dv2OTJIsTlbgO37f++r8ttzvu9LxHZcg/UMOjAywe5DQno39/Tg5N78q38uOqTDxz/DRGjuJBTVUMuCO+jpaSh+kcpTFDyl/HPne3gXTw9L+VOpz2erCUxJtODiMu9sRAF+Ps9b0TtC3y5F4DWCaHBteu6tTKZj+sRFu/iHsQ7bdqkVsN3itkqOm4HaWeuJoDy4mEucLuwWDl9ZRj0G2XvEHtBdXy9PKA4RRL7YklPQg28wNi5zNyaGQmVQrQXpJ7sdKXCdMJRZ8KjF3rHdJM9MhTotM3wrJgCwV36ZltLyu3kumeIBnmURzPBIc6cjSnuDUAa9ZpGwM7CRXJjPkGMjb8j3SjJ/SniWbUDzw3YRFY/CRuYPwLD9BN50Nshq+60EldJykGz1hff9lmoWEE1shAZs1tpwM+R/lWuvVsM/wXOHrln1lPeDBRAxCDvdBsBsJBz7tKZZP01QlI=----ATTACHMENT:----NTc2NzQyMjQ5NzkxMDcyIDIzOTUzODAwNDI4MzYxNTMgNjM3NDgxMjc2MDc0NjE5