logging-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ihabu...@apache.org
Subject svn commit: r1294503 [3/3] - in /logging/log4php/trunk/src: changes/ main/php/ main/php/appenders/ main/php/helpers/ main/php/layouts/ main/php/pattern/ site/xdoc/docs/layouts/ test/php/ test/php/appenders/ test/php/helpers/ test/php/layouts/ test/php/...
Date Tue, 28 Feb 2012 07:49:23 GMT
Added: logging/log4php/trunk/src/test/php/pattern/LoggerPatternConverterTest.php
URL: http://svn.apache.org/viewvc/logging/log4php/trunk/src/test/php/pattern/LoggerPatternConverterTest.php?rev=1294503&view=auto
==============================================================================
--- logging/log4php/trunk/src/test/php/pattern/LoggerPatternConverterTest.php (added)
+++ logging/log4php/trunk/src/test/php/pattern/LoggerPatternConverterTest.php Tue Feb 28 07:49:21
2012
@@ -0,0 +1,357 @@
+<?php
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @category   tests
+ * @package    log4php
+ * @subpackage filters
+ * @license    http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
+ * @version    SVN: $Id$
+ * @link       http://logging.apache.org/log4php
+ */
+
+/** Converter referencing non-existant superglobal variable. */
+class LoggerInvalidSuperglobalConverter extends LoggerPatternConverterSuperglobal {
+	protected $name = '_FOO';
+}
+
+/**
+ * @group pattern
+ */
+class LoggerPatternConverterTest extends PHPUnit_Framework_TestCase {
+
+	/**
+	 * A logging event for testing.
+	 * @var LoggerLoggingEvent
+	 */
+	private $event;
+
+	/**
+	 * Fromatting info used with the logging event.
+	 * @var LoggerFormattingInfos
+	 */
+	private $info;
+
+	public function __construct() {
+		$this->event = LoggerTestHelper::getInfoEvent('foobar');
+		$this->info = new LoggerFormattingInfo();
+	}
+
+	public function testCookie() {
+		// Fake a couple of cookies
+		$_COOKIE['test1'] = 'value1';
+		$_COOKIE['test2'] = 'value2';
+
+		$converter = new LoggerPatternConverterCookie($this->info, 'test1');
+		$actual = $converter->convert($this->event);
+		$expected = 'value1';
+		self::assertSame($expected, $actual);
+
+		$converter = new LoggerPatternConverterCookie($this->info, 'test2');
+		$actual = $converter->convert($this->event);
+		$expected = 'value2';
+		self::assertSame($expected, $actual);
+
+		$converter = new LoggerPatternConverterCookie($this->info);
+		$actual = $converter->convert($this->event);
+		$expected = "test1=value1, test2=value2";
+		self::assertSame($expected, $actual);
+	}
+
+	public function testDate() {
+		$converter = new LoggerPatternConverterDate($this->info, 'c');
+		$actual = $converter->convert($this->event);
+		$expected = date('c', $this->event->getTimeStamp());
+		self::assertSame($expected, $actual);
+
+		// Format defaults to 'c'
+		$converter = new LoggerPatternConverterDate($this->info);
+		$actual = $converter->convert($this->event);
+		$expected = date('c', $this->event->getTimeStamp());
+		self::assertSame($expected, $actual);
+
+		// Test ABSOLUTE
+		$converter = new LoggerPatternConverterDate($this->info, 'ABSOLUTE');
+		$actual = $converter->convert($this->event);
+		$expected = date('H:i:s', $this->event->getTimeStamp());
+		self::assertSame($expected, $actual);
+
+		// Test DATE
+		$converter = new LoggerPatternConverterDate($this->info, 'DATE');
+		$actual = $converter->convert($this->event);
+		$expected = date('d M Y H:i:s.', $this->event->getTimeStamp());
+
+		$timestamp = $this->event->getTimeStamp();
+		$ms = floor(($timestamp - floor($timestamp)) * 1000);
+		$ms = str_pad($ms, 3, '0', STR_PAD_LEFT);
+
+		$expected .= $ms;
+
+		self::assertSame($expected, $actual);
+	}
+
+	public function testEnvironment() {
+		// Fake a couple of environment values
+		$_ENV['test1'] = 'value1';
+		$_ENV['test2'] = 'value2';
+
+		$converter = new LoggerPatternConverterEnvironment($this->info, 'test1');
+		$actual = $converter->convert($this->event);
+		$expected = 'value1';
+		self::assertSame($expected, $actual);
+
+		$converter = new LoggerPatternConverterEnvironment($this->info, 'test2');
+		$actual = $converter->convert($this->event);
+		$expected = 'value2';
+		self::assertSame($expected, $actual);
+	}
+
+	public function testLevel() {
+		$converter = new LoggerPatternConverterLevel($this->info);
+		$actual = $converter->convert($this->event);
+		$expected = $this->event->getLevel()->toString();
+		self::assertEquals($expected, $actual);
+	}
+
+	public function testLiteral() {
+		$converter = new LoggerPatternConverterLiteral('foo bar baz');
+		$actual = $converter->convert($this->event);
+		$expected = 'foo bar baz';
+		self::assertEquals($expected, $actual);
+	}
+
+	public function testLoggerWithoutOption() {
+		$event = LoggerTestHelper::getInfoEvent('foo', 'TestLoggerName');
+		$converter = new LoggerPatternConverterLogger($this->info);
+
+		$actual = $converter->convert($event);
+		$expected = 'TestLoggerName';
+		self::assertEquals($expected, $actual);
+	}
+
+	public function testLoggerWithOption0() {
+		$event = LoggerTestHelper::getInfoEvent('foo', 'TestLoggerName');
+		$converter = new LoggerPatternConverterLogger($this->info, '0');
+
+		$actual = $converter->convert($event);
+		$expected = 'TestLoggerName';
+		self::assertEquals($expected, $actual);
+	}
+
+	public function testLocation() {
+		$config = LoggerTestHelper::getEchoPatternConfig("%file:%line:%class:%method");
+		Logger::configure($config);
+
+		// Test by capturing output. Logging methods of a Logger object must
+		// be used for the location info to be formed correctly.
+		ob_start();
+		$log = Logger::getLogger('foo');
+		$log->info('foo'); $line = __LINE__; // Do NOT move this to next line.
+		$actual = ob_get_contents();
+		ob_end_clean();
+
+		$expected = implode(':', array(__FILE__, $line, __CLASS__, __FUNCTION__));
+		self::assertSame($expected, $actual);
+
+		Logger::resetConfiguration();
+	}
+
+	public function testMessage() {
+		$expected = "This is a message.";
+		$event = LoggerTestHelper::getInfoEvent($expected);
+		$converter = new LoggerPatternConverterMessage($this->info);
+		$actual = $converter->convert($event);
+		self::assertSame($expected, $actual);
+	}
+
+	public function testMDC() {
+		LoggerMDC::put('foo', 'bar');
+		LoggerMDC::put('bla', 'tra');
+
+		// Entire context
+		$converter = new LoggerPatternConverterMDC($this->info);
+		$actual = $converter->convert($this->event);
+		$expected = 'foo=bar, bla=tra';
+		self::assertSame($expected, $actual);
+
+		// Just foo
+		$converter = new LoggerPatternConverterMDC($this->info, 'foo');
+		$actual = $converter->convert($this->event);
+		$expected = 'bar';
+		self::assertSame($expected, $actual);
+
+		// Non existant key
+		$converter = new LoggerPatternConverterMDC($this->info, 'doesnotexist');
+		$actual = $converter->convert($this->event);
+		$expected = '';
+		self::assertSame($expected, $actual);
+
+		LoggerMDC::clear();
+	}
+
+	public function testNDC() {
+		LoggerNDC::push('foo');
+		LoggerNDC::push('bar');
+		LoggerNDC::push('baz');
+
+		$converter = new LoggerPatternConverterNDC($this->info);
+		$expected = 'foo bar baz';
+		$actual = $converter->convert($this->event);
+		self::assertEquals($expected, $actual);
+	}
+
+	public function testNewline() {
+		$converter = new LoggerPatternConverterNewLine($this->info);
+		$actual = $converter->convert($this->event);
+		$expected = PHP_EOL;
+		self::assertSame($expected, $actual);
+	}
+
+	public function testProcess() {
+		$converter = new LoggerPatternConverterProcess($this->info);
+		$actual = $converter->convert($this->event);
+		$expected = getmypid();
+		self::assertSame($expected, $actual);
+	}
+
+	public function testRelative() {
+		$converter = new LoggerPatternConverterRelative($this->info);
+		$expected = number_format($this->event->getTimeStamp() - $this->event->getStartTime(),
4);
+		$actual = $converter->convert($this->event);
+		self::assertSame($expected, $actual);
+	}
+
+	public function testRequest() {
+		// Fake a couple of request values
+		$_REQUEST['test1'] = 'value1';
+		$_REQUEST['test2'] = 'value2';
+
+		// Entire request
+		$converter = new LoggerPatternConverterRequest($this->info);
+		$actual = $converter->convert($this->event);
+		$expected = 'test1=value1, test2=value2';
+		self::assertSame($expected, $actual);
+
+		// Just test2
+		$converter = new LoggerPatternConverterRequest($this->info, 'test2');
+		$actual = $converter->convert($this->event);
+		$expected = 'value2';
+		self::assertSame($expected, $actual);
+	}
+
+	public function testServer() {
+		// Fake a server value
+		$_SERVER['test1'] = 'value1';
+
+		$converter = new LoggerPatternConverterServer($this->info, 'test1');
+		$actual = $converter->convert($this->event);
+		$expected = 'value1';
+		self::assertSame($expected, $actual);
+	}
+
+	public function testSession() {
+		// Fake a session value
+		$_SESSION['test1'] = 'value1';
+
+		$converter = new LoggerPatternConverterSession($this->info, 'test1');
+		$actual = $converter->convert($this->event);
+		$expected = 'value1';
+		self::assertSame($expected, $actual);
+	}
+
+	public function testSessionID() {
+		$converter = new LoggerPatternConverterSessionID($this->info);
+		$actual = $converter->convert($this->event);
+		$expected = session_id();
+		self::assertSame($expected, $actual);
+	}
+
+	/**
+	 * @expectedException PHPUnit_Framework_Error
+	 * @expectedExceptionMessage log4php: LoggerInvalidSuperglobalConverter: Cannot find superglobal
variable $_FOO
+	 */
+	public function testNonexistantSuperglobal() {
+		$converter = new LoggerInvalidSuperglobalConverter($this->info);
+		$actual = $converter->convert($this->event);
+	}
+
+	public function testFormattingTrimRight() {
+		$event = LoggerTestHelper::getInfoEvent('0123456789');
+
+		$info = new LoggerFormattingInfo();
+		$info->max = 5;
+
+		$converter = new LoggerPatternConverterMessage($info);
+		$actual = "";
+		$converter->format($actual, $event);
+		$expected = "01234";
+		self::assertSame($expected, $actual);
+	}
+
+	public function testFormattingTrimLeft() {
+		$event = LoggerTestHelper::getInfoEvent('0123456789');
+
+		$info = new LoggerFormattingInfo();
+		$info->max = 5;
+		$info->trimLeft = true;
+
+		$converter = new LoggerPatternConverterMessage($info);
+		$actual = "";
+		$converter->format($actual, $event);
+		$expected = "56789";
+		self::assertSame($expected, $actual);
+	}
+
+	public function testFormattingPadEmpty() {
+		$event = LoggerTestHelper::getInfoEvent('');
+
+		$info = new LoggerFormattingInfo();
+		$info->min = 5;
+
+		$converter = new LoggerPatternConverterMessage($info);
+		$actual = "";
+		$converter->format($actual, $event);
+		$expected = "     ";
+		self::assertSame($expected, $actual);
+	}
+
+	public function testFormattingPadLeft() {
+		$event = LoggerTestHelper::getInfoEvent('0');
+
+		$info = new LoggerFormattingInfo();
+		$info->min = 5;
+
+		$converter = new LoggerPatternConverterMessage($info);
+		$actual = "";
+		$converter->format($actual, $event);
+		$expected = "    0";
+		self::assertSame($expected, $actual);
+	}
+
+	public function testFormattingPadRight() {
+		$event = LoggerTestHelper::getInfoEvent('0');
+
+		$info = new LoggerFormattingInfo();
+		$info->min = 5;
+		$info->padLeft = false;
+
+		$converter = new LoggerPatternConverterMessage($info);
+		$actual = "";
+		$converter->format($actual, $event);
+		$expected = "0    ";
+		self::assertSame($expected, $actual);
+	}
+}



Mime
View raw message