Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 54
0.00% covered (danger)
0.00%
0 / 5
CRAP
0.00% covered (danger)
0.00%
0 / 1
LogTest
0.00% covered (danger)
0.00%
0 / 53
0.00% covered (danger)
0.00%
0 / 5
182
0.00% covered (danger)
0.00%
0 / 1
 tearDownAfterClass
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
 logMessages
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
2
 testLogDefault
0.00% covered (danger)
0.00%
0 / 17
0.00% covered (danger)
0.00%
0 / 1
30
 testLogVerbose
0.00% covered (danger)
0.00%
0 / 18
0.00% covered (danger)
0.00%
0 / 1
30
 testLogNone
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2namespace tests;
3use Ably\AblyRest;
4use Ably\Log;
5
6require_once __DIR__ . '/factories/TestApp.php';
7
8class LogTest extends \PHPUnit_Framework_TestCase {
9
10    public static function tearDownAfterClass() {
11        // ensure the logger is reset to default
12        $ably = new AblyRest( [
13            'key' => 'fake.key:totallyFake'
14        ] );
15    }
16
17    private function logMessages() {
18        Log::v('This is a test verbose message.');
19        Log::d('This is a test debug message.');
20        Log::w('This is a test warning.');
21        Log::e('This is a test error.');
22    }
23
24    /**
25     * Test if logger uses warning level as default
26     */
27    public function testLogDefault() {
28        $out = '';
29
30        $opts = [
31            'key' => 'fake.key:veryFake',
32            'logHandler' => function( $level, $args ) use ( &$out ) {
33                $out .= $args[0] . "\n";
34            },
35        ];
36        $ably = new AblyRest( $opts );
37
38        $this->logMessages();
39
40        if (strpos($out, 'This is a test warning.') === false) {
41            $this->fail('Expected warning level to be logged.');
42        }
43
44        if (strpos($out, 'This is a test error.') === false) {
45            $this->fail('Expected error level to be logged.');
46        }
47
48        if (strpos($out, 'This is a test verbose message.') !== false) {
49            $this->fail('Expected verbose level NOT to be logged.');
50        }
51
52        if (strpos($out, 'This is a test debug message.') !== false) {
53            $this->fail('Expected debug level NOT to be logged.');
54        }
55    }
56
57    /**
58     * Test verbose log level with a handler
59     */
60    public function testLogVerbose() {
61        $out = '';
62
63        $opts = [
64            'key' => 'fake.key:veryFake',
65            'logLevel' => Log::VERBOSE,
66            'logHandler' => function( $level, $args ) use ( &$out ) {
67                $out .= $args[0] . "\n";
68            },
69        ];
70
71        $ably = new AblyRest( $opts );
72        $this->logMessages();
73        
74        if (strpos($out, 'This is a test warning.') === false) {
75            $this->fail('Expected warning level to be logged.');
76        }
77
78        if (strpos($out, 'This is a test error.') === false) {
79            $this->fail('Expected error level to be logged.');
80        }
81
82        if (strpos($out, 'This is a test verbose message.') === false) {
83            $this->fail('Expected verbose level to be logged.');
84        }
85
86        if (strpos($out, 'This is a test debug message.') === false) {
87            $this->fail('Expected debug level to be logged.');
88        }
89    }
90
91    /**
92     * Test log level == NONE
93     */
94    public function testLogNone() {
95        $called = false;
96        $opts = [
97            'key' => 'fake.key:veryFake',
98            'logLevel' => Log::NONE,
99            'logHandler' => function( $level, $args ) use ( &$called ) {
100                $called = true;
101            },
102        ];
103
104        $ably = new AblyRest( $opts );
105        $this->logMessages();
106        $this->assertFalse( $called, 'Log handler incorrectly called' );
107    }
108}