Server IP : 180.180.241.3 / Your IP : 216.73.216.252 Web Server : Microsoft-IIS/7.5 System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.3.28 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /AppServ/www/lib/Cake/Test/Case/Log/Engine/ |
Upload File : |
<?php /** * ConsoleLogTest file * * PHP 5 * * 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 1.3 * @license http://www.opensource.org/licenses/mit-license.php MIT License */ App::uses('ConsoleLog', 'Log/Engine'); /** * Class TestConsoleLog * * @package Cake.Test.Case.Log.Engine */ class TestConsoleLog extends ConsoleLog { } /** * Class TestCakeLog * * @package Cake.Test.Case.Log.Engine */ class TestCakeLog extends CakeLog { public static function replace($key, &$engine) { self::$_Collection->{$key} = $engine; } } /** * ConsoleLogTest class * * @package Cake.Test.Case.Log.Engine */ class ConsoleLogTest extends CakeTestCase { public function setUp() { parent::setUp(); CakeLog::config('debug', array( 'engine' => 'File', 'types' => array('notice', 'info', 'debug'), 'file' => 'debug', )); CakeLog::config('error', array( 'engine' => 'File', 'types' => array('error', 'warning'), 'file' => 'error', )); } public function tearDown() { parent::tearDown(); if (file_exists(LOGS . 'error.log')) { unlink(LOGS . 'error.log'); } if (file_exists(LOGS . 'debug.log')) { unlink(LOGS . 'debug.log'); } } /** * Test writing to ConsoleOutput */ public function testConsoleOutputWrites() { TestCakeLog::config('test_console_log', array( 'engine' => 'TestConsole', )); $mock = $this->getMock('TestConsoleLog', array('write'), array( array('types' => 'error'), )); TestCakeLog::replace('test_console_log', $mock); $message = 'Test error message'; $mock->expects($this->once()) ->method('write'); TestCakeLog::write(LOG_ERR, $message); } /** * Test logging to both ConsoleLog and FileLog */ public function testCombinedLogWriting() { TestCakeLog::config('test_console_log', array( 'engine' => 'TestConsole', )); $mock = $this->getMock('TestConsoleLog', array('write'), array( array('types' => 'error'), )); TestCakeLog::replace('test_console_log', $mock); // log to both file and console $message = 'Test error message'; $mock->expects($this->once()) ->method('write'); TestCakeLog::write(LOG_ERR, $message); $this->assertTrue(file_exists(LOGS . 'error.log'), 'error.log missing'); $logOutput = file_get_contents(LOGS . 'error.log'); $this->assertContains($message, $logOutput); // TestConsoleLog is only interested in `error` type $message = 'Test info message'; $mock->expects($this->never()) ->method('write'); TestCakeLog::write(LOG_INFO, $message); // checks that output is correctly written in the correct logfile $this->assertTrue(file_exists(LOGS . 'error.log'), 'error.log missing'); $this->assertTrue(file_exists(LOGS . 'debug.log'), 'debug.log missing'); $logOutput = file_get_contents(LOGS . 'error.log'); $this->assertNotContains($message, $logOutput); $logOutput = file_get_contents(LOGS . 'debug.log'); $this->assertContains($message, $logOutput); } /** * test default value of stream 'outputAs' */ public function testDefaultOutputAs() { TestCakeLog::config('test_console_log', array( 'engine' => 'TestConsole', )); if (DS === '\\' && !(bool)env('ANSICON')) { $expected = ConsoleOutput::PLAIN; } else { $expected = ConsoleOutput::COLOR; } $stream = TestCakeLog::stream('test_console_log'); $config = $stream->config(); $this->assertEquals($expected, $config['outputAs']); } }