ILIAS  trunk Revision v11.0_alpha-1811-gd2d5443e411
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ILIAS\User\Tests\ChangeMailTokenDBRepositoryTest Class Reference
+ Inheritance diagram for ILIAS\User\Tests\ChangeMailTokenDBRepositoryTest:
+ Collaboration diagram for ILIAS\User\Tests\ChangeMailTokenDBRepositoryTest:

Public Member Functions

 testGetNewTokenForUserReturnsCorrectToken ()
 
 testGetTokenForTokenStringReturnsCorrectToken ()
 
 testGetTokenForTokenStringReturnsNullOnInvalidToken ()
 
 testGetTokenForTokenStringReturnsNullOnExpiredToken ()
 
 testMoveToNextStepReturnsCorrectToken ()
 
 testMoveToNextStepThrowsErrorIfNotExists ()
 

Additional Inherited Members

- Protected Member Functions inherited from ILIAS\User\Tests\BaseTestCase
 assertException (string $exception_class)
 

Detailed Description

Definition at line 27 of file ChangeMailTokenDBRepositoryTest.php.

Member Function Documentation

◆ testGetNewTokenForUserReturnsCorrectToken()

ILIAS\User\Tests\ChangeMailTokenDBRepositoryTest::testGetNewTokenForUserReturnsCorrectToken ( )

Definition at line 29 of file ChangeMailTokenDBRepositoryTest.php.

References $timestamp, and $user_id.

29  : void
30  {
31  $timestamp = time() + 1000;
32  $user_id = 5;
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';
37  $our_token = new ChangeMailToken(
38  $user_id,
39  $old_email,
40  $new_email,
41  $timestamp,
42  $status,
43  $token_string
44  );
45 
46  $db_mock = $this->createMock(\ilDBInterface::class);
47  $db_mock->expects($this->once())->method('replace')->willReturn(1);
48 
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);
52 
53  $repository = new ChangeMailTokenDBRepository($db_mock, $this->createMock(\ilSetting::class));
54 
55  $returned_token = $repository->getNewTokenForUser($user_mock, $new_email, $timestamp);
56 
57  $this->assertEquals($our_token, $returned_token);
58  }
foreach($mandatory_scripts as $file) $timestamp
Definition: buildRTE.php:70

◆ testGetTokenForTokenStringReturnsCorrectToken()

ILIAS\User\Tests\ChangeMailTokenDBRepositoryTest::testGetTokenForTokenStringReturnsCorrectToken ( )

Definition at line 60 of file ChangeMailTokenDBRepositoryTest.php.

References $timestamp, $token, and $user_id.

60  : void
61  {
62  $timestamp = time() + 1000;
63  $user_id = 5;
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';
68  $our_token = new ChangeMailToken(
69  $user_id,
70  $old_email,
71  $new_email,
72  $timestamp,
73  $status,
74  $token_string
75  );
76 
77  $db_mock = $this->createMock(\ilDBInterface::class);
78  $db_mock->expects($this->once())->method('fetchObject')->willReturn(
79  (object) [
80  'token' => $token_string,
81  'new_email' => $new_email,
82  'status' => $status->value,
83  'created_ts' => $timestamp
84  ]
85  );
86 
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);
90 
91  $repository = new ChangeMailTokenDBRepository($db_mock, $this->createMock(\ilSetting::class));
92 
93  $token = $repository->getTokenForTokenString($token_string, $user_mock);
94 
95  $this->assertEquals($our_token, $token);
96  }
$token
Definition: xapitoken.php:70
foreach($mandatory_scripts as $file) $timestamp
Definition: buildRTE.php:70

◆ testGetTokenForTokenStringReturnsNullOnExpiredToken()

ILIAS\User\Tests\ChangeMailTokenDBRepositoryTest::testGetTokenForTokenStringReturnsNullOnExpiredToken ( )

Definition at line 128 of file ChangeMailTokenDBRepositoryTest.php.

References $timestamp, $token, $user_id, null, and ilRegistrationSettings\REG_HASH_LIFETIME_MIN_VALUE.

128  : void
129  {
131  $user_id = 5;
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';
136 
137  $db_mock = $this->createMock(\ilDBInterface::class);
138  $db_mock->expects($this->once())->method('fetchObject')->willReturn(
139  (object) [
140  'token' => $token_string,
141  'new_email' => $new_email,
142  'status' => $status->value,
143  'created_ts' => $timestamp
144  ]
145  );
146 
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);
150 
151  $settings_mock = $this->createMock(\ilSetting::class);
152  $settings_mock->expects($this->once())->method('get')->willReturn('0');
153 
154  $repository = new ChangeMailTokenDBRepository($db_mock, $settings_mock);
155 
156  $token = $repository->getTokenForTokenString($token_string, $user_mock);
157 
158  $this->assertEquals(null, $token);
159  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
$token
Definition: xapitoken.php:70
foreach($mandatory_scripts as $file) $timestamp
Definition: buildRTE.php:70

◆ testGetTokenForTokenStringReturnsNullOnInvalidToken()

ILIAS\User\Tests\ChangeMailTokenDBRepositoryTest::testGetTokenForTokenStringReturnsNullOnInvalidToken ( )

Definition at line 98 of file ChangeMailTokenDBRepositoryTest.php.

References $timestamp, $token, $user_id, and null.

98  : void
99  {
100  $timestamp = time() + 1000;
101  $user_id = 5;
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';
106 
107  $db_mock = $this->createMock(\ilDBInterface::class);
108  $db_mock->expects($this->once())->method('fetchObject')->willReturn(
109  (object) [
110  'token' => $token_string,
111  'new_email' => $new_email,
112  'status' => $status->value,
113  'created_ts' => $timestamp
114  ]
115  );
116 
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);
120 
121  $repository = new ChangeMailTokenDBRepository($db_mock, $this->createMock(\ilSetting::class));
122 
123  $token = $repository->getTokenForTokenString($token_string, $user_mock);
124 
125  $this->assertEquals(null, $token);
126  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
$token
Definition: xapitoken.php:70
foreach($mandatory_scripts as $file) $timestamp
Definition: buildRTE.php:70

◆ testMoveToNextStepReturnsCorrectToken()

ILIAS\User\Tests\ChangeMailTokenDBRepositoryTest::testMoveToNextStepReturnsCorrectToken ( )

Definition at line 161 of file ChangeMailTokenDBRepositoryTest.php.

References $timestamp, and $user_id.

161  : void
162  {
163  $timestamp = time() + 1000;
164  $user_id = 5;
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';
169 
170  $expected_token = new ChangeMailToken(
171  $user_id,
172  $old_email,
173  $new_email,
174  $timestamp,
175  $status,
176  $token_string
177  );
178 
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);
182 
183  $repository = new ChangeMailTokenDBRepository($db_mock, $this->createMock(\ilSetting::class));
184 
185  $new_token = $repository->moveToNextStep(
186  new ChangeMailToken(
187  $user_id,
188  $old_email,
189  $new_email,
190  123,
191  ChangeMailStatus::Login,
192  'abc'
193  ),
194  $timestamp
195  );
196 
197  $this->assertEquals($expected_token, $new_token);
198  }
foreach($mandatory_scripts as $file) $timestamp
Definition: buildRTE.php:70

◆ testMoveToNextStepThrowsErrorIfNotExists()

ILIAS\User\Tests\ChangeMailTokenDBRepositoryTest::testMoveToNextStepThrowsErrorIfNotExists ( )

Definition at line 200 of file ChangeMailTokenDBRepositoryTest.php.

References $user_id.

200  : void
201  {
202  $user_id = 5;
203  $old_email = 'oldemail@ilias.de';
204 
205  $db_mock = $this->createMock(\ilDBInterface::class);
206  $db_mock->expects($this->never())->method('manipulateF');
207  $db_mock->expects($this->never())->method('replace');
208 
209  $repository = new ChangeMailTokenDBRepository($db_mock, $this->createMock(\ilSetting::class));
210 
211  $this->expectException(\Exception::class);
212  $repository->moveToNextStep(
213  new ChangeMailToken(
214  $user_id,
215  $old_email,
216  'newemail@ilias.de',
217  123,
218  ChangeMailStatus::EmailConfirmation,
219  'abc'
220  ),
221  time() + 1000
222  );
223  }

The documentation for this class was generated from the following file: