19 declare(strict_types=1);
33 $old_email =
'oldemail@ilias.de';
34 $status = ChangeMailStatus::Login;
35 $token_string =
hash(
'md5',
"{$timestamp}-{$user_id}-{$old_email}-{$status->value}");
36 $new_email =
'newemail@ilias.de';
46 $db_mock = $this->createMock(\ilDBInterface::class);
47 $db_mock->expects($this->once())->method(
'replace')->willReturn(1);
49 $user_mock = $this->createMock(\ilObjUser::class);
50 $user_mock->expects($this->once())->method(
'getId')->willReturn(5);
51 $user_mock->expects($this->once())->method(
'getEmail')->willReturn($old_email);
55 $returned_token = $repository->getNewTokenForUser($user_mock, $new_email,
$timestamp);
57 $this->assertEquals($our_token, $returned_token);
64 $old_email =
'oldemail@ilias.de';
65 $status = ChangeMailStatus::EmailConfirmation;
66 $token_string =
hash(
'md5',
"{$timestamp}-{$user_id}-{$old_email}-{$status->value}");
67 $new_email =
'newemail@ilias.de';
77 $db_mock = $this->createMock(\ilDBInterface::class);
78 $db_mock->expects($this->once())->method(
'fetchObject')->willReturn(
80 'token' => $token_string,
81 'new_email' => $new_email,
82 'status' => $status->value,
87 $user_mock = $this->createMock(\ilObjUser::class);
88 $user_mock->expects($this->once())->method(
'getId')->willReturn(
$user_id);
89 $user_mock->expects($this->once())->method(
'getEmail')->willReturn($old_email);
93 $token = $repository->getTokenForTokenString($token_string, $user_mock);
95 $this->assertEquals($our_token,
$token);
102 $old_email =
'oldemail@ilias.de';
103 $status = ChangeMailStatus::EmailConfirmation;
104 $token_string =
hash(
'md5',
"{$timestamp}-{$user_id}-{$old_email}-{$status->value}");
105 $new_email =
'newemail@ilias.de';
107 $db_mock = $this->createMock(\ilDBInterface::class);
108 $db_mock->expects($this->once())->method(
'fetchObject')->willReturn(
110 'token' => $token_string,
111 'new_email' => $new_email,
112 'status' => $status->value,
117 $user_mock = $this->createMock(\ilObjUser::class);
118 $user_mock->expects($this->once())->method(
'getId')->willReturn(2);
119 $user_mock->expects($this->once())->method(
'getEmail')->willReturn($old_email);
123 $token = $repository->getTokenForTokenString($token_string, $user_mock);
132 $old_email =
'oldemail@ilias.de';
133 $status = ChangeMailStatus::EmailConfirmation;
134 $token_string =
hash(
'md5',
"{$timestamp}-{$user_id}-{$old_email}-{$status->value}");
135 $new_email =
'newemail@ilias.de';
137 $db_mock = $this->createMock(\ilDBInterface::class);
138 $db_mock->expects($this->once())->method(
'fetchObject')->willReturn(
140 'token' => $token_string,
141 'new_email' => $new_email,
142 'status' => $status->value,
147 $user_mock = $this->createMock(\ilObjUser::class);
148 $user_mock->expects($this->once())->method(
'getId')->willReturn(
$user_id);
149 $user_mock->expects($this->once())->method(
'getEmail')->willReturn($old_email);
151 $settings_mock = $this->createMock(\ilSetting::class);
152 $settings_mock->expects($this->once())->method(
'get')->willReturn(
'0');
156 $token = $repository->getTokenForTokenString($token_string, $user_mock);
165 $old_email =
'oldemail@ilias.de';
166 $status = ChangeMailStatus::EmailConfirmation;
167 $token_string =
hash(
'md5',
"{$timestamp}-{$user_id}-{$old_email}-{$status->value}");
168 $new_email =
'newemail@ilias.de';
179 $db_mock = $this->createMock(\ilDBInterface::class);
180 $db_mock->expects($this->once())->method(
'manipulateF')->willReturn(0);
181 $db_mock->expects($this->once())->method(
'replace')->willReturn(0);
185 $new_token = $repository->moveToNextStep(
191 ChangeMailStatus::Login,
197 $this->assertEquals($expected_token, $new_token);
203 $old_email =
'oldemail@ilias.de';
205 $db_mock = $this->createMock(\ilDBInterface::class);
206 $db_mock->expects($this->never())->method(
'manipulateF');
207 $db_mock->expects($this->never())->method(
'replace');
211 $this->expectException(\Exception::class);
212 $repository->moveToNextStep(
218 ChangeMailStatus::EmailConfirmation,
testMoveToNextStepReturnsCorrectToken()
testGetTokenForTokenStringReturnsCorrectToken()
const REG_HASH_LIFETIME_MIN_VALUE
testGetNewTokenForUserReturnsCorrectToken()
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
testMoveToNextStepThrowsErrorIfNotExists()
testGetTokenForTokenStringReturnsNullOnExpiredToken()
testGetTokenForTokenStringReturnsNullOnInvalidToken()
foreach($mandatory_scripts as $file) $timestamp