Skip to content

Commit f70786e

Browse files
authored
Merge pull request #8471 from ping-yee/240128_loggerTest
test: LoggerTest depends on time
2 parents 9894b92 + a820445 commit f70786e

File tree

3 files changed

+79
-21
lines changed

3 files changed

+79
-21
lines changed

tests/_support/Log/Handlers/TestHandler.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111

1212
namespace Tests\Support\Log\Handlers;
1313

14+
use CodeIgniter\I18n\Time;
15+
1416
/**
1517
* Class TestHandler
1618
*
@@ -36,7 +38,7 @@ public function __construct(array $config)
3638
parent::__construct($config);
3739

3840
$this->handles = $config['handles'] ?? [];
39-
$this->destination = $this->path . 'log-' . date('Y-m-d') . '.' . $this->fileExtension;
41+
$this->destination = $this->path . 'log-' . Time::now()->format('Y-m-d') . '.' . $this->fileExtension;
4042

4143
self::$logs = [];
4244
}
@@ -52,7 +54,7 @@ public function __construct(array $config)
5254
*/
5355
public function handle($level, $message): bool
5456
{
55-
$date = date($this->dateFormat);
57+
$date = Time::now()->format($this->dateFormat);
5658

5759
self::$logs[] = strtoupper($level) . ' - ' . $date . ' --> ' . $message;
5860

tests/system/HTTP/RedirectExceptionTest.php

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace CodeIgniter\HTTP;
1313

1414
use CodeIgniter\HTTP\Exceptions\RedirectException;
15+
use CodeIgniter\I18n\Time;
1516
use CodeIgniter\Log\Logger;
1617
use CodeIgniter\Test\Mock\MockLogger as LoggerConfig;
1718
use Config\Services;
@@ -32,6 +33,14 @@ protected function setUp(): void
3233
Services::injectMock('logger', new Logger(new LoggerConfig()));
3334
}
3435

36+
protected function tearDown(): void
37+
{
38+
parent::tearDown();
39+
40+
// Reset the current time.
41+
Time::setTestNow();
42+
}
43+
3544
public function testResponse(): void
3645
{
3746
$response = (new RedirectException(
@@ -67,8 +76,10 @@ public function testResponseWithoutStatusCode(): void
6776

6877
public function testLoggingLocationHeader(): void
6978
{
79+
Time::setTestNow('2023-11-25 12:00:00');
80+
7081
$uri = 'http://location';
71-
$expected = 'INFO - ' . date('Y-m-d') . ' --> REDIRECTED ROUTE at ' . $uri;
82+
$expected = 'INFO - ' . Time::now()->format('Y-m-d') . ' --> REDIRECTED ROUTE at ' . $uri;
7283
$response = (new RedirectException(Services::response()->redirect($uri)))->getResponse();
7384

7485
$logs = TestHandler::getLogs();
@@ -80,8 +91,10 @@ public function testLoggingLocationHeader(): void
8091

8192
public function testLoggingRefreshHeader(): void
8293
{
94+
Time::setTestNow('2023-11-25 12:00:00');
95+
8396
$uri = 'http://location';
84-
$expected = 'INFO - ' . date('Y-m-d') . ' --> REDIRECTED ROUTE at ' . $uri;
97+
$expected = 'INFO - ' . Time::now()->format('Y-m-d') . ' --> REDIRECTED ROUTE at ' . $uri;
8598
$response = (new RedirectException(Services::response()->redirect($uri, 'refresh')))->getResponse();
8699

87100
$logs = TestHandler::getLogs();

tests/system/Log/LoggerTest.php

Lines changed: 60 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace CodeIgniter\Log;
1313

1414
use CodeIgniter\Exceptions\FrameworkException;
15+
use CodeIgniter\I18n\Time;
1516
use CodeIgniter\Log\Exceptions\LogException;
1617
use CodeIgniter\Test\CIUnitTestCase;
1718
use CodeIgniter\Test\Mock\MockLogger as LoggerConfig;
@@ -25,6 +26,14 @@
2526
*/
2627
final 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

Comments
 (0)