diff --git a/core/Log/Formatter/LineMessageFormatter.php b/core/Log/Formatter/LineMessageFormatter.php index 909760079695e9d265fb8ef6d0e2812ffa8b0957..08f368dfc5bed4d1a7850fead0d1a180a07b2db3 100644 --- a/core/Log/Formatter/LineMessageFormatter.php +++ b/core/Log/Formatter/LineMessageFormatter.php @@ -21,6 +21,9 @@ class LineMessageFormatter extends Formatter */ private $logMessageFormat; + /** + * @param string $logMessageFormat + */ public function __construct($logMessageFormat) { $this->logMessageFormat = $logMessageFormat; diff --git a/tests/PHPUnit/Unit/Log/Formatter/LineMessageFormatterTest.php b/tests/PHPUnit/Unit/Log/Formatter/LineMessageFormatterTest.php new file mode 100644 index 0000000000000000000000000000000000000000..2276a2c4eb1c7c83da209813cd64efe2cc43f58f --- /dev/null +++ b/tests/PHPUnit/Unit/Log/Formatter/LineMessageFormatterTest.php @@ -0,0 +1,80 @@ +<?php +/** + * Piwik - free/libre analytics platform + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +namespace Piwik\Tests\Unit\Log\Formatter; + +use DateTime; +use Piwik\Log\Formatter\LineMessageFormatter; + +class LineMessageFormatterTest extends \PHPUnit_Framework_TestCase +{ + /** + * @test + */ + public function it_should_format_with_placeholders() + { + $formatter = new LineMessageFormatter('%level% %tag% %datetime% %message%'); + + $record = array( + 'message' => 'Hello world', + 'datetime' => DateTime::createFromFormat('U', 0), + 'level_name' => 'ERROR', + 'extra' => array( + 'class' => 'Foo' + ), + ); + + $formatted = "ERROR Foo 1970-01-01 00:00:00 Hello world\n"; + + $this->assertEquals($formatted, $formatter->format($record)); + } + + /** + * @test + */ + public function it_should_insert_request_id_if_defined() + { + $formatter = new LineMessageFormatter('%message%'); + + $record = array( + 'message' => 'Hello world', + 'datetime' => DateTime::createFromFormat('U', 0), + 'level_name' => 'ERROR', + 'extra' => array( + 'request_id' => 'request id' + ), + ); + + $formatted = "[request id] Hello world\n"; + + $this->assertEquals($formatted, $formatter->format($record)); + } + + /** + * @test + */ + public function it_should_indent_multiline_message() + { + $formatter = new LineMessageFormatter('%message%'); + + $record = array( + 'message' => "Hello world\ntest\ntest", + 'datetime' => DateTime::createFromFormat('U', 0), + 'level_name' => 'ERROR', + ); + + $formatted = <<<LOG +Hello world + test + test + +LOG; + + $this->assertEquals($formatted, $formatter->format($record)); + } +} diff --git a/tests/PHPUnit/Unit/Log/Processor/ClassNameProcessorTest.php b/tests/PHPUnit/Unit/Log/Processor/ClassNameProcessorTest.php index cc2939d2a22759a209c7638bed5b1b274b03cf33..42fa7c81fd2287fbc19210af01f35367f709574f 100644 --- a/tests/PHPUnit/Unit/Log/Processor/ClassNameProcessorTest.php +++ b/tests/PHPUnit/Unit/Log/Processor/ClassNameProcessorTest.php @@ -21,7 +21,9 @@ class ClassNameProcessorTest extends \PHPUnit_Framework_TestCase */ public function it_should_append_classname_to_extra() { - $result = $this->process(array( + $processor = new ClassNameProcessor(); + + $result = $processor(array( 'extra' => array( 'foo' => 'bar', ), @@ -36,10 +38,4 @@ class ClassNameProcessorTest extends \PHPUnit_Framework_TestCase $this->assertEquals($expected, $result); } - - private function process($record) - { - $processor = new ClassNameProcessor(); - return $processor($record); - } } diff --git a/tests/PHPUnit/Unit/Log/Processor/RequestIdProcessorTest.php b/tests/PHPUnit/Unit/Log/Processor/RequestIdProcessorTest.php new file mode 100644 index 0000000000000000000000000000000000000000..8c12528572959e4ba371737cab9cc8f27dcd4f8a --- /dev/null +++ b/tests/PHPUnit/Unit/Log/Processor/RequestIdProcessorTest.php @@ -0,0 +1,61 @@ +<?php +/** + * Piwik - free/libre analytics platform + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +namespace Piwik\Tests\Unit\Log\Processor; + +use Piwik\Common; +use Piwik\Log\Processor\RequestIdProcessor; + +/** + * @group Core + * @covers \Piwik\Log\Processor\RequestIdProcessor + */ +class RequestIdProcessorTest extends \PHPUnit_Framework_TestCase +{ + public function setUp() + { + parent::setUp(); + Common::$isCliMode = false; + } + + public function tearDown() + { + parent::tearDown(); + Common::$isCliMode = true; + } + + /** + * @test + */ + public function it_should_append_request_id_to_extra() + { + $processor = new RequestIdProcessor(); + + $result = $processor(array()); + + $this->assertArrayHasKey('request_id', $result['extra']); + $this->assertInternalType('string', $result['extra']['request_id']); + $this->assertNotEmpty($result['extra']['request_id']); + } + + /** + * @test + */ + public function request_id_should_stay_the_same() + { + $processor = new RequestIdProcessor(); + + $result = $processor(array()); + $id1 = $result['extra']['request_id']; + + $result = $processor(array()); + $id2 = $result['extra']['request_id']; + + $this->assertEquals($id1, $id2); + } +}