. // }}} namespace App\Tests\Entity; use App\Entity\LocalUser; use App\Util\GNUsocialTestCase; use Exception; use Jchook\AssertThrows\AssertThrows; class LocalUserTest extends GNUsocialTestCase { use AssertThrows; public function testAlgoNameToConstant() { $if_exists = function ($name, $constant) { if (\defined($constant)) { static::assertSame(\constant($constant), LocalUser::algoNameToConstant($name)); } else { static::assertThrows(Exception::class, fn () => LocalUser::algoNameToConstant($name)); } }; $if_exists('bcrypt', 'PASSWORD_BCRYPT'); $if_exists('argon2', 'PASSWORD_ARGON2'); $if_exists('argon2i', 'PASSWORD_ARGON2I'); $if_exists('argon2d', 'PASSWORD_ARGON2D'); $if_exists('argon2id', 'PASSWORD_ARGON2ID'); static::assertSame(\PASSWORD_ARGON2ID, LocalUser::algoNameToConstant('argon2id')); } public function testChangePassword() { parent::bootKernel(); $user = LocalUser::getByNickname('local_user_test_user'); static::assertFalse($user->changePassword(old_password_plain_text: '', new_password_plain_text: 'password', override: false)); static::assertTrue($user->changePassword(old_password_plain_text: '', new_password_plain_text: 'password', override: true)); static::assertTrue($user->changePassword(old_password_plain_text: 'password', new_password_plain_text: 'new_password', override: false)); static::assertFalse($user->changePassword(old_password_plain_text: 'wrong_password', new_password_plain_text: 'new_password', override: false)); } public function testGetByNickname() { static::assertNotNull(LocalUser::getByNickname('taken_user')); } }