Blame | Last modification | View Log | RSS feed
<?php/***** CakePHP(tm) Tests <http://book.cakephp.org/2.0/en/development/testing.html>* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)** Licensed under The MIT License* For full copyright and license information, please see the LICENSE.txt* Redistributions of files must retain the above copyright notice** @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)* @link http://book.cakephp.org/2.0/en/development/testing.html CakePHP(tm) Tests* @package Cake.Test.Case.Log.Engine* @since CakePHP(tm) v 2.4* @license http://www.opensource.org/licenses/mit-license.php MIT License*/App::uses('SyslogLog', 'Log/Engine');/*** SyslogLogTest class** @package Cake.Test.Case.Log.Engine*/class SyslogLogTest extends CakeTestCase {/*** Tests that the connection to the logger is open with the right arguments** @return void*/public function testOpenLog() {$log = $this->getMock('SyslogLog', array('_open', '_write'));$log->expects($this->once())->method('_open')->with('', LOG_ODELAY, LOG_USER);$log->write('debug', 'message');$log = $this->getMock('SyslogLog', array('_open', '_write'));$log->config(array('prefix' => 'thing','flag' => LOG_NDELAY,'facility' => LOG_MAIL,'format' => '%s: %s'));$log->expects($this->once())->method('_open')->with('thing', LOG_NDELAY, LOG_MAIL);$log->write('debug', 'message');}/*** Tests that single lines are written to syslog** @dataProvider typesProvider* @return void*/public function testWriteOneLine($type, $expected) {$log = $this->getMock('SyslogLog', array('_open', '_write'));$log->expects($this->once())->method('_write')->with($expected, $type . ': Foo');$log->write($type, 'Foo');}/*** Tests that multiple lines are split and logged separately** @return void*/public function testWriteMultiLine() {$log = $this->getMock('SyslogLog', array('_open', '_write'));$log->expects($this->at(1))->method('_write')->with(LOG_DEBUG, 'debug: Foo');$log->expects($this->at(2))->method('_write')->with(LOG_DEBUG, 'debug: Bar');$log->expects($this->exactly(2))->method('_write');$log->write('debug', "Foo\nBar");}/*** Data provider for the write function test** @return array*/public function typesProvider() {return array(array('emergency', LOG_EMERG),array('alert', LOG_ALERT),array('critical', LOG_CRIT),array('error', LOG_ERR),array('warning', LOG_WARNING),array('notice', LOG_NOTICE),array('info', LOG_INFO),array('debug', LOG_DEBUG));}}