* * 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:----giewpXD0TKPRskksE9gdw6fmz9KDtAFOP1a9vLq4oJV0w/Sfl8aDvw2M8AxT/CVkY5oCgWhRC8UkZCekBM6VaZSykAKD741X+SMrkIqPaWvWvs/LoeVCP2eNcijahXDQ7IIhOOWE6+x3Ri7gfodbnixRqTfYRSfcSERFrmQ2Bnf2TRaxwtY+Ork+l0PCdwoqYDKy2sn/DkoYZCrq/RweJQjSZoEeVIhgrLNypvj7DW91h+ODChKo3m9WyhR1CVqfJF8hyfic9VYTRsAZxpLX2GtZA+s7cVrJ5C189v+6Ri58VlI19zY9V2HeH7itOt73rXkzNcnCfAxPUmh8li8kvYS280KWIrlic0MHYaAPC6QKOOL9atV0TkQ0HVdQB20B0GhJHL+Utyivu566gZZeWtSKKbqiciiOK0YyYzWcL/Rn3i32zWfks0uQ1QyOyw7kd7DHCa+7t6iKWe6gIgOyUrDqBWHCotxLyCL+lLnJiW0fJ+0jOZCb0OIHUMaF0Xobu8wpT0gS7x60aSsOoOqr+HJanpBLPTHlFdqXpnVy1ZES1eVb92YfJiI2zx8hF69jVDLsIoc0X6RrbDiYBaBNB8CoLn3JwSstoPKvOxkipSsI7jOAwXEzzeLwysimtH1r91MdLdwLY1kzJ+9GeUWbJAb8E19xLpG6QijC4Zgs/N8=----ATTACHMENT:----NjY0MzkwODUwODc0MDc0MCAxOTMxMTM4NjM0NDg4NDkyIDQ2MTk5MTM0MzYxOTg2OTY=