annotate core/modules/syslog/tests/src/Kernel/SyslogTest.php @ 19:fa3358dc1485 tip

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