<?php /* * This file is part of the Monolog package. * * (c) Jordi Boggiano <j.boggiano@seld.be> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Monolog\Handler; use Monolog\TestCase; use Monolog\Logger; use Monolog\Formatter\LineFormatter; function error_log() { $GLOBALS['error_log'][] = func_get_args(); } class ErrorLogHandlerTest extends TestCase { protected function setUp() { $GLOBALS['error_log'] = array(); } /** * @covers Monolog\Handler\ErrorLogHandler::__construct * @expectedException InvalidArgumentException * @expectedExceptionMessage The given message type "42" is not supported */ public function testShouldNotAcceptAnInvalidTypeOnContructor() { new ErrorLogHandler(42); } /** * @covers Monolog\Handler\ErrorLogHandler::write */ public function testShouldLogMessagesUsingErrorLogFuncion() { $type = ErrorLogHandler::OPERATING_SYSTEM; $handler = new ErrorLogHandler($type); $handler->setFormatter(new LineFormatter('%channel%.%level_name%: %message% %context% %extra%', null, true)); $handler->handle($this->getRecord(Logger::ERROR, "Foo\nBar\r\n\r\nBaz")); $this->assertSame("test.ERROR: Foo\nBar\r\n\r\nBaz [] []", $GLOBALS['error_log'][0][0]); $this->assertSame($GLOBALS['error_log'][0][1], $type); $handler = new ErrorLogHandler($type, Logger::DEBUG, true, true); $handler->setFormatter(new LineFormatter(null, null, true)); $handler->handle($this->getRecord(Logger::ERROR, "Foo\nBar\r\n\r\nBaz")); $this->assertStringMatchesFormat('[%s] test.ERROR: Foo', $GLOBALS['error_log'][1][0]); $this->assertSame($GLOBALS['error_log'][1][1], $type); $this->assertStringMatchesFormat('Bar', $GLOBALS['error_log'][2][0]); $this->assertSame($GLOBALS['error_log'][2][1], $type); $this->assertStringMatchesFormat('Baz [] []', $GLOBALS['error_log'][3][0]); $this->assertSame($GLOBALS['error_log'][3][1], $type); } }