]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/include/SugarLogger/SugarLoggerTest.php
Added unit tests.
[Github/sugarcrm.git] / tests / include / SugarLogger / SugarLoggerTest.php
1 <?php
2
3 class SugarLoggerTest extends Sugar_PHPUnit_Framework_TestCase
4 {
5     public function tearDown()
6     {
7         // reset the logger level
8         $level = SugarConfig::getInstance()->get('logger.level');
9         if (!empty($level))
10             $GLOBALS['log']->setLevel($level);
11     }
12     
13     public function providerWriteLogEntries()
14     {
15         return array(
16             array('debug','debug','foo1',true,'[DEBUG] foo1'),
17             array('debug','info','foo2',true,'[INFO] foo2'),
18             array('debug','warn','foo3',true,'[WARN] foo3'),
19             array('debug','error','foo4',true,'[ERROR] foo4'),
20             array('debug','fatal','foo5',true,'[FATAL] foo5'),
21             array('debug','security','foo6',true,'[SECURITY] foo6'),
22             array('fatal','warn','foo7',false,'[WARN] foo7'),
23             );
24     }
25     
26     /**
27      * @dataProvider providerWriteLogEntries
28      */
29     public function testWriteLogEntries(
30         $currentLevel,
31         $logLevel,
32         $logMessage,
33         $shouldMessageBeWritten,
34         $messageWritten
35         ) 
36     {
37         $GLOBALS['log']->setLevel($currentLevel);
38         $GLOBALS['log']->$logLevel($logMessage);
39         
40         $config = SugarConfig::getInstance();
41         $ext = $config->get('logger.file.ext');
42         $logfile = $config->get('logger.file.name');
43         $log_dir = $config->get('log_dir'); 
44         $log_dir = $log_dir . (empty($log_dir)?'':'/');
45         
46         $logFile = file_get_contents($log_dir . $logfile . $ext);
47         
48         if ( $shouldMessageBeWritten )
49             $this->assertContains($messageWritten,$logFile);
50         else
51             $this->assertNotContains($messageWritten,$logFile);
52     }
53     
54     public function testAssertLogging()
55     {
56         $GLOBALS['log']->setLevel('debug');
57         $GLOBALS['log']->assert('this was asserted true',true);
58         $GLOBALS['log']->assert('this was asserted false',false);
59         
60         $config = SugarConfig::getInstance();
61         $ext = $config->get('logger.file.ext');
62         $logfile = $config->get('logger.file.name');
63         $log_dir = $config->get('log_dir'); 
64         $log_dir = $log_dir . (empty($log_dir)?'':'/');
65         
66         $logFile = file_get_contents($log_dir . $logfile . $ext);
67         
68         $this->assertContains('[DEBUG] this was asserted false',$logFile);
69         $this->assertNotContains('[DEBUG] this was asserted true',$logFile);
70     }
71 }