3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License along
14 * with this program; if not, write to the Free Software Foundation, Inc.,
15 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 * http://www.gnu.org/copyleft/gpl.html
21 namespace MediaWiki\Tests\Logger
;
23 use MediaWiki\Logger\LegacyLogger
;
24 use MediaWiki\MainConfigNames
;
25 use MediaWikiIntegrationTestCase
;
28 class LegacyLoggerTest
extends MediaWikiIntegrationTestCase
{
31 * @covers \MediaWiki\Logger\LegacyLogger::interpolate
32 * @dataProvider provideInterpolate
34 public function testInterpolate( $message, $context, $expect ) {
36 $expect, LegacyLogger
::interpolate( $message, $context ) );
39 public static function provideInterpolate() {
40 $e = new \
Exception( 'boom!' );
42 $err = new \
Error( 'Test error' );
59 'greeting' => 'Goodnight',
70 '{ not interpolated }',
72 'not interpolated' => 'This should NOT show up in the message',
74 '{ not interpolated }',
100 'array' => [ 1, 2, 3 ],
109 '[Exception ' . get_class( $e ) . '( ' .
110 $e->getFile() . ':' . $e->getLine() . ') ' .
111 $e->getMessage() . ']',
123 'object' => new \stdClass
,
132 '[Error ' . get_class( $err ) . '( ' .
133 $err->getFile() . ':' . $err->getLine() . ') ' .
134 $err->getMessage() . ']',
140 * @covers \MediaWiki\Logger\LegacyLogger::shouldEmit
141 * @dataProvider provideShouldEmit
143 public function testShouldEmit( $level, $config, $expected ) {
144 $this->overrideConfigValue( MainConfigNames
::DebugLogGroups
, [ 'fakechannel' => $config ] );
147 LegacyLogger
::shouldEmit( 'fakechannel', 'some message', $level, [] )
151 public static function provideShouldEmit() {
152 $dest = [ 'destination' => 'foobar' ];
161 $dest +
[ 'level' => LogLevel
::INFO
],
166 $dest +
[ 'level' => LogLevel
::CRITICAL
],
170 \Monolog\Logger
::INFO
,
171 $dest +
[ 'level' => LogLevel
::INFO
],
175 \Monolog\Logger
::WARNING
,
176 $dest +
[ 'level' => LogLevel
::EMERGENCY
],