You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4php-dev@logging.apache.org by gr...@apache.org on 2009/08/28 07:35:30 UTC

svn commit: r808761 - in /incubator/log4php/trunk/src: main/php/appenders/LoggerAppenderMail.php test/php/appenders/LoggerAppenderMailTest.php

Author: grobmeier
Date: Fri Aug 28 05:35:30 2009
New Revision: 808761

URL: http://svn.apache.org/viewvc?rev=808761&view=rev
Log:
introduced "dry mode" to enable unit tests

Added:
    incubator/log4php/trunk/src/test/php/appenders/LoggerAppenderMailTest.php
Modified:
    incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderMail.php

Modified: incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderMail.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderMail.php?rev=808761&r1=808760&r2=808761&view=diff
==============================================================================
--- incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderMail.php (original)
+++ incubator/log4php/trunk/src/main/php/appenders/LoggerAppenderMail.php Fri Aug 28 05:35:30 2009
@@ -32,25 +32,19 @@
  */
 class LoggerAppenderMail extends LoggerAppender {
 
-	/**
-	 * @var string 'from' field
-	 */
+	/** @var string 'from' field */
 	private $from = null;
 
-	/**
-	 * @var string 'subject' field
-	 */
+	/** @var string 'subject' field */
 	private $subject = 'Log4php Report';
 	
-	/**
-	 * @var string 'to' field
-	 */
+	/** @var string 'to' field */
 	private $to = null;
 
-	/**
-	 * @var string used to create mail body
-	 * @access private
-	 */
+	/** @var indiciates if this appender should run in dry mode */
+	private $dry = false;
+
+	/** @var string used to create mail body */
 	private $body = '';
 	
 	/**
@@ -77,12 +71,15 @@
 			$to = $this->to;
 	
 			if(!empty($this->body) and $from !== null and $to !== null and $this->layout !== null) {
-							$subject = $this->subject;
-				mail(
-					$to, $subject, 
-					$this->layout->getHeader() . $this->body . $this->layout->getFooter(),
-					"From: {$from}\r\n"
-				);
+				$subject = $this->subject;
+				if(!$this->dry) {
+					mail(
+						$to, $subject, 
+						$this->layout->getHeader() . $this->body . $this->layout->getFooter(),
+						"From: {$from}\r\n");
+				} else {
+				    echo "DRY MODE OF MAIL APP.: Send mail to: ".$to." with content: ".$this->body;
+				}
 			}
 			$this->closed = true;
 		}
@@ -100,6 +97,10 @@
 		$this->from = $from;
 	}  
 
+	public function setDry($dry) {
+		$this->dry = $dry;
+	}
+	
 	public function append($event) {
 		if($this->layout !== null) {
 			$this->body .= $this->layout->format($event);

Added: incubator/log4php/trunk/src/test/php/appenders/LoggerAppenderMailTest.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/test/php/appenders/LoggerAppenderMailTest.php?rev=808761&view=auto
==============================================================================
--- incubator/log4php/trunk/src/test/php/appenders/LoggerAppenderMailTest.php (added)
+++ incubator/log4php/trunk/src/test/php/appenders/LoggerAppenderMailTest.php Fri Aug 28 05:35:30 2009
@@ -0,0 +1,52 @@
+<?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 appenders
+ * @license    http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
+ * @version    SVN: $Id$
+ * @link       http://logging.apache.org/log4php
+ */
+
+class LoggerAppenderMailTest extends PHPUnit_Framework_TestCase {
+        
+	public function testMail() {
+		$appender = new LoggerAppenderMail("myname ");
+		
+		$layout = new LoggerLayoutSimple();
+		$appender->setLayout($layout);
+		$appender->setDry(true);
+		$appender->setTo('test@example.com');
+		$appender->setFrom('Testsender');
+		
+		$appender->activateOptions();
+		$event = new LoggerLoggingEvent("LoggerAppenderEchoTest", new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage");
+		$event2 = new LoggerLoggingEvent("LoggerAppenderEchoTest", new Logger("TEST"), LoggerLevel::getLevelError(), "testmessage2");
+		 
+		ob_start();
+		$appender->append($event);
+		$appender->append($event2);
+		$appender->close();
+		$v = ob_get_contents();
+		ob_end_clean();
+
+		$e = "DRY MODE OF MAIL APP.: Send mail to: test@example.com with content: ERROR - testmessage".PHP_EOL."ERROR - testmessage2".PHP_EOL;
+		self::assertEquals($e, $v);
+    }
+    
+}