| Current Path : /var/www/v3.cesa.co.za/tests/Unit/UserBundle/ |
| Current File : /var/www/v3.cesa.co.za/tests/Unit/UserBundle/MemberPortalPasswordHasherTest.php |
<?php
namespace App\Tests\Unit\UserBundle;
use App\UserBundle\Security\Hasher\MemberPortalPasswordHasher;
use PHPUnit\Framework\TestCase;
class MemberPortalPasswordHasherTest extends TestCase
{
private MemberPortalPasswordHasher $hasher;
protected function setUp(): void
{
$this->hasher = new MemberPortalPasswordHasher();
}
public function testVerifyPlainTextPassword(): void
{
$this->assertTrue($this->hasher->verify('secret123', 'secret123'));
$this->assertFalse($this->hasher->verify('secret123', 'wrong'));
}
public function testVerifyWithSeparateSalt(): void
{
$salt = '$2y$10$' . substr(str_replace('+', '.', base64_encode(random_bytes(16))), 0, 22);
$hash = crypt('mypass', $salt);
$this->assertTrue($this->hasher->verifyWithSalt($salt, $hash, 'mypass'));
$this->assertFalse($this->hasher->verifyWithSalt($salt, $hash, 'other'));
}
public function testVerifyCryptHashInPasswordColumn(): void
{
$hash = crypt('portalpass', '$2y$10$N9qo8uLOickgx2ZMRZoMye');
$this->assertNotFalse($hash);
$this->assertTrue($this->hasher->verify($hash, 'portalpass'));
$this->assertFalse($this->hasher->verify($hash, 'wrong'));
}
}