More updates to stop using dev or alpha or beta versions.
[yaffs-website] / web / core / modules / syslog / tests / src / Kernel / SyslogTest.php
1 <?php
2
3 namespace Drupal\Tests\syslog\Kernel;
4
5 use Drupal\KernelTests\KernelTestBase;
6 use Symfony\Component\HttpFoundation\Request;
7
8 /**
9  * Test syslog logger functionality.
10  *
11  * @group syslog
12  * @coversDefaultClass \Drupal\syslog\Logger\SysLog
13  */
14 class SyslogTest extends KernelTestBase {
15
16   public static $modules = ['syslog', 'syslog_test'];
17
18   /**
19    * {@inheritdoc}
20    */
21   protected function setUp() {
22     parent::setUp();
23     $this->installConfig(['syslog']);
24   }
25
26   /**
27    * @covers ::log
28    */
29   public function testSyslogWriting() {
30
31     $request = Request::create('/page-not-found', 'GET', [], [], [], ['REMOTE_ADDR' => '1.2.3.4']);
32     $request->headers->set('Referer', 'other-site');
33     \Drupal::requestStack()->push($request);
34
35     $user = $this->getMockBuilder('Drupal\Core\Session\AccountInterface')->getMock();
36     $user->method('id')->willReturn(42);
37     $this->container->set('current_user', $user);
38
39     \Drupal::logger('my_module')->warning('My warning message.', ['link' => '/my-link']);
40
41     $log_filename = $this->container->get('file_system')->realpath('public://syslog.log');
42     $logs = explode(PHP_EOL, file_get_contents($log_filename));
43     $log = explode('|', $logs[0]);
44
45     global $base_url;
46     $this->assertEquals($base_url, $log[0]);
47     $this->assertEquals('my_module', $log[2]);
48     $this->assertEquals('1.2.3.4', $log[3]);
49     $this->assertEquals($base_url . '/page-not-found', $log[4]);
50     $this->assertEquals('other-site', $log[5]);
51     $this->assertEquals('42', $log[6]);
52     $this->assertEquals('/my-link', $log[7]);
53     $this->assertEquals('My warning message.', $log[8]);
54   }
55
56   /**
57    * Test severity level logging.
58    *
59    * @covers ::log
60    */
61   public function testSyslogSeverity() {
62     /* @var \Drupal\Core\Config\Config $config */
63     $config = $this->container->get('config.factory')->getEditable('syslog.settings');
64     $config->set('format', '!type|!message|!severity');
65     $config->save();
66
67     \Drupal::logger('my_module')->warning('My warning message.');
68
69     $log_filename = $this->container->get('file_system')->realpath('public://syslog.log');
70     $logs = explode(PHP_EOL, file_get_contents($log_filename));
71     $log = explode('|', $logs[0]);
72
73     $this->assertEquals('my_module', $log[0]);
74     $this->assertEquals('My warning message.', $log[1]);
75     $this->assertEquals('4', $log[2]);
76   }
77
78 }