Subversion Repository Public Repository

pgleadershipbook

This repository has no backups
This repository's network speed is throttled to 100KB/sec

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php namespace CodeIgniter\Test;

use CodeIgniter\Log\Logger;

class TestLogger extends Logger
{

	protected static $op_logs = [];

	//--------------------------------------------------------------------

	/**
	 * The log method is overridden so that we can store log history during
	 * the tests to allow us to check ->assertLogged() methods.
	 *
	 * @param string $level
	 * @param string $message
	 * @param array  $context
	 *
	 * @return boolean
	 */
	public function log($level, $message, array $context = []): bool
	{
		// While this requires duplicate work, we want to ensure
		// we have the final message to test against.
		$log_message = $this->interpolate($message, $context);

		// Determine the file and line by finding the first
		// backtrace that is not part of our logging system.
		$trace = debug_backtrace();
		$file  = null;

		foreach ($trace as $row)
		{
			if (! in_array($row['function'], ['log', 'log_message']))
			{
				$file = basename($row['file'] ?? '');
				break;
			}
		}

		self::$op_logs[] = [
				  'level'   => $level,
				  'message' => $log_message,
				  'file'    => $file,
			  ];

		// Let the parent do it's thing.
		return parent::log($level, $message, $context);
	}

	//--------------------------------------------------------------------

	/**
	 * Used by CIUnitTestCase class to provide ->assertLogged() methods.
	 *
	 * @param string $level
	 * @param string $message
	 *
	 * @return boolean
	 */
	public static function didLog(string $level, $message)
	{
		foreach (self::$op_logs as $log)
		{
			if (strtolower($log['level']) === strtolower($level) && $message === $log['message'])
			{
				return true;
			}
		}

		return false;
	}

	//--------------------------------------------------------------------
	// Expose cleanFileNames()
	public function cleanup($file)
	{
		return $this->cleanFileNames($file);
	}

}

Commits for pgleadershipbook/trunk/system/Test/TestLogger.php

Diff revisions: vs.
Revision Author Commited Message
2 tporter picture tporter Thu 04 Feb, 2021 09:33:04 +0000

PG Leadership book initial commit