1212namespace CodeIgniter \Log ;
1313
1414use CodeIgniter \Exceptions \FrameworkException ;
15+ use CodeIgniter \I18n \Time ;
1516use CodeIgniter \Log \Exceptions \LogException ;
1617use CodeIgniter \Test \CIUnitTestCase ;
1718use CodeIgniter \Test \Mock \MockLogger as LoggerConfig ;
2526 */
2627final class LoggerTest extends CIUnitTestCase
2728{
29+ protected function tearDown (): void
30+ {
31+ parent ::tearDown ();
32+
33+ // Reset the current time.
34+ Time::setTestNow ();
35+ }
36+
2837 public function testThrowsExceptionWithBadHandlerSettings (): void
2938 {
3039 $ config = new LoggerConfig ();
@@ -63,7 +72,9 @@ public function testLogActuallyLogs(): void
6372 $ config = new LoggerConfig ();
6473 $ logger = new Logger ($ config );
6574
66- $ expected = 'DEBUG - ' . date ('Y-m-d ' ) . ' --> Test message ' ;
75+ Time::setTestNow ('2023-11-25 12:00:00 ' );
76+
77+ $ expected = 'DEBUG - ' . Time::now ()->format ('Y-m-d ' ) . ' --> Test message ' ;
6778 $ logger ->log ('debug ' , 'Test message ' );
6879
6980 $ logs = TestHandler::getLogs ();
@@ -93,7 +104,9 @@ public function testLogInterpolatesMessage(): void
93104
94105 $ logger = new Logger ($ config );
95106
96- $ expected = 'DEBUG - ' . date ('Y-m-d ' ) . ' --> Test message bar baz ' ;
107+ Time::setTestNow ('2023-11-25 12:00:00 ' );
108+
109+ $ expected = 'DEBUG - ' . Time::now ()->format ('Y-m-d ' ) . ' --> Test message bar baz ' ;
97110
98111 $ logger ->log ('debug ' , 'Test message {foo} {bar} ' , ['foo ' => 'bar ' , 'bar ' => 'baz ' ]);
99112
@@ -109,8 +122,10 @@ public function testLogInterpolatesPost(): void
109122
110123 $ logger = new Logger ($ config );
111124
125+ Time::setTestNow ('2023-11-25 12:00:00 ' );
126+
112127 $ _POST = ['foo ' => 'bar ' ];
113- $ expected = 'DEBUG - ' . date ('Y-m-d ' ) . ' --> Test message $_POST: ' . print_r ($ _POST , true );
128+ $ expected = 'DEBUG - ' . Time:: now ()-> format ('Y-m-d ' ) . ' --> Test message $_POST: ' . print_r ($ _POST , true );
114129
115130 $ logger ->log ('debug ' , 'Test message {post_vars} ' );
116131
@@ -126,8 +141,10 @@ public function testLogInterpolatesGet(): void
126141
127142 $ logger = new Logger ($ config );
128143
144+ Time::setTestNow ('2023-11-25 12:00:00 ' );
145+
129146 $ _GET = ['bar ' => 'baz ' ];
130- $ expected = 'DEBUG - ' . date ('Y-m-d ' ) . ' --> Test message $_GET: ' . print_r ($ _GET , true );
147+ $ expected = 'DEBUG - ' . Time:: now ()-> format ('Y-m-d ' ) . ' --> Test message $_GET: ' . print_r ($ _GET , true );
131148
132149 $ logger ->log ('debug ' , 'Test message {get_vars} ' );
133150
@@ -143,8 +160,10 @@ public function testLogInterpolatesSession(): void
143160
144161 $ logger = new Logger ($ config );
145162
163+ Time::setTestNow ('2023-11-25 12:00:00 ' );
164+
146165 $ _SESSION = ['xxx ' => 'yyy ' ];
147- $ expected = 'DEBUG - ' . date ('Y-m-d ' ) . ' --> Test message $_SESSION: ' . print_r ($ _SESSION , true );
166+ $ expected = 'DEBUG - ' . Time:: now ()-> format ('Y-m-d ' ) . ' --> Test message $_SESSION: ' . print_r ($ _SESSION , true );
148167
149168 $ logger ->log ('debug ' , 'Test message {session_vars} ' );
150169
@@ -160,7 +179,9 @@ public function testLogInterpolatesCurrentEnvironment(): void
160179
161180 $ logger = new Logger ($ config );
162181
163- $ expected = 'DEBUG - ' . date ('Y-m-d ' ) . ' --> Test message ' . ENVIRONMENT ;
182+ Time::setTestNow ('2023-11-25 12:00:00 ' );
183+
184+ $ expected = 'DEBUG - ' . Time::now ()->format ('Y-m-d ' ) . ' --> Test message ' . ENVIRONMENT ;
164185
165186 $ logger ->log ('debug ' , 'Test message {env} ' );
166187
@@ -176,9 +197,11 @@ public function testLogInterpolatesEnvironmentVars(): void
176197
177198 $ logger = new Logger ($ config );
178199
200+ Time::setTestNow ('2023-11-25 12:00:00 ' );
201+
179202 $ _ENV ['foo ' ] = 'bar ' ;
180203
181- $ expected = 'DEBUG - ' . date ('Y-m-d ' ) . ' --> Test message bar ' ;
204+ $ expected = 'DEBUG - ' . Time:: now ()-> format ('Y-m-d ' ) . ' --> Test message bar ' ;
182205
183206 $ logger ->log ('debug ' , 'Test message {env:foo} ' );
184207
@@ -210,7 +233,9 @@ public function testLogInterpolatesExceptions(): void
210233 $ config = new LoggerConfig ();
211234 $ logger = new Logger ($ config );
212235
213- $ expected = 'ERROR - ' . date ('Y-m-d ' ) . ' --> [ERROR] These are not the droids you are looking for ' ;
236+ Time::setTestNow ('2023-11-25 12:00:00 ' );
237+
238+ $ expected = 'ERROR - ' . Time::now ()->format ('Y-m-d ' ) . ' --> [ERROR] These are not the droids you are looking for ' ;
214239
215240 try {
216241 throw new Exception ('These are not the droids you are looking for ' );
@@ -229,7 +254,9 @@ public function testEmergencyLogsCorrectly(): void
229254 $ config = new LoggerConfig ();
230255 $ logger = new Logger ($ config );
231256
232- $ expected = 'EMERGENCY - ' . date ('Y-m-d ' ) . ' --> Test message ' ;
257+ Time::setTestNow ('2023-11-25 12:00:00 ' );
258+
259+ $ expected = 'EMERGENCY - ' . Time::now ()->format ('Y-m-d ' ) . ' --> Test message ' ;
233260
234261 $ logger ->emergency ('Test message ' );
235262
@@ -244,7 +271,9 @@ public function testAlertLogsCorrectly(): void
244271 $ config = new LoggerConfig ();
245272 $ logger = new Logger ($ config );
246273
247- $ expected = 'ALERT - ' . date ('Y-m-d ' ) . ' --> Test message ' ;
274+ Time::setTestNow ('2023-11-25 12:00:00 ' );
275+
276+ $ expected = 'ALERT - ' . Time::now ()->format ('Y-m-d ' ) . ' --> Test message ' ;
248277
249278 $ logger ->alert ('Test message ' );
250279
@@ -259,7 +288,9 @@ public function testCriticalLogsCorrectly(): void
259288 $ config = new LoggerConfig ();
260289 $ logger = new Logger ($ config );
261290
262- $ expected = 'CRITICAL - ' . date ('Y-m-d ' ) . ' --> Test message ' ;
291+ Time::setTestNow ('2023-11-25 12:00:00 ' );
292+
293+ $ expected = 'CRITICAL - ' . Time::now ()->format ('Y-m-d ' ) . ' --> Test message ' ;
263294
264295 $ logger ->critical ('Test message ' );
265296
@@ -274,7 +305,9 @@ public function testErrorLogsCorrectly(): void
274305 $ config = new LoggerConfig ();
275306 $ logger = new Logger ($ config );
276307
277- $ expected = 'ERROR - ' . date ('Y-m-d ' ) . ' --> Test message ' ;
308+ Time::setTestNow ('2023-11-25 12:00:00 ' );
309+
310+ $ expected = 'ERROR - ' . Time::now ()->format ('Y-m-d ' ) . ' --> Test message ' ;
278311
279312 $ logger ->error ('Test message ' );
280313
@@ -289,7 +322,9 @@ public function testWarningLogsCorrectly(): void
289322 $ config = new LoggerConfig ();
290323 $ logger = new Logger ($ config );
291324
292- $ expected = 'WARNING - ' . date ('Y-m-d ' ) . ' --> Test message ' ;
325+ Time::setTestNow ('2023-11-25 12:00:00 ' );
326+
327+ $ expected = 'WARNING - ' . Time::now ()->format ('Y-m-d ' ) . ' --> Test message ' ;
293328
294329 $ logger ->warning ('Test message ' );
295330
@@ -304,7 +339,9 @@ public function testNoticeLogsCorrectly(): void
304339 $ config = new LoggerConfig ();
305340 $ logger = new Logger ($ config );
306341
307- $ expected = 'NOTICE - ' . date ('Y-m-d ' ) . ' --> Test message ' ;
342+ Time::setTestNow ('2023-11-25 12:00:00 ' );
343+
344+ $ expected = 'NOTICE - ' . Time::now ()->format ('Y-m-d ' ) . ' --> Test message ' ;
308345
309346 $ logger ->notice ('Test message ' );
310347
@@ -319,7 +356,9 @@ public function testInfoLogsCorrectly(): void
319356 $ config = new LoggerConfig ();
320357 $ logger = new Logger ($ config );
321358
322- $ expected = 'INFO - ' . date ('Y-m-d ' ) . ' --> Test message ' ;
359+ Time::setTestNow ('2023-11-25 12:00:00 ' );
360+
361+ $ expected = 'INFO - ' . Time::now ()->format ('Y-m-d ' ) . ' --> Test message ' ;
323362
324363 $ logger ->info ('Test message ' );
325364
@@ -334,7 +373,9 @@ public function testDebugLogsCorrectly(): void
334373 $ config = new LoggerConfig ();
335374 $ logger = new Logger ($ config );
336375
337- $ expected = 'DEBUG - ' . date ('Y-m-d ' ) . ' --> Test message ' ;
376+ Time::setTestNow ('2023-11-25 12:00:00 ' );
377+
378+ $ expected = 'DEBUG - ' . Time::now ()->format ('Y-m-d ' ) . ' --> Test message ' ;
338379
339380 $ logger ->debug ('Test message ' );
340381
@@ -349,7 +390,9 @@ public function testLogLevels(): void
349390 $ config = new LoggerConfig ();
350391 $ logger = new Logger ($ config );
351392
352- $ expected = 'WARNING - ' . date ('Y-m-d ' ) . ' --> Test message ' ;
393+ Time::setTestNow ('2023-11-25 12:00:00 ' );
394+
395+ $ expected = 'WARNING - ' . Time::now ()->format ('Y-m-d ' ) . ' --> Test message ' ;
353396
354397 $ logger ->log (5 , 'Test message ' );
355398
0 commit comments