class SyslogTest in Drupal 10
Same name in this branch
- 10 core/modules/syslog/tests/src/Functional/SyslogTest.php \Drupal\Tests\syslog\Functional\SyslogTest
- 10 core/modules/syslog/tests/src/Kernel/SyslogTest.php \Drupal\Tests\syslog\Kernel\SyslogTest
- 10 core/modules/syslog/tests/modules/syslog_test/src/Logger/SysLogTest.php \Drupal\syslog_test\Logger\SysLogTest
Same name and namespace in other branches
- 8 core/modules/syslog/tests/src/Kernel/SyslogTest.php \Drupal\Tests\syslog\Kernel\SyslogTest
- 9 core/modules/syslog/tests/src/Kernel/SyslogTest.php \Drupal\Tests\syslog\Kernel\SyslogTest
Test syslog logger functionality.
@group syslog @coversDefaultClass \Drupal\syslog\Logger\SysLog
Hierarchy
- class \Drupal\KernelTests\KernelTestBase extends \PHPUnit\Framework\TestCase implements ServiceProviderInterface uses \Drupal\Tests\PhpUnitCompatibilityTrait, \Symfony\Bridge\PhpUnit\ExpectDeprecationTrait, AssertContentTrait, ConfigTestTrait, ExtensionListTestTrait, RandomGeneratorTrait, TestRequirementsTrait, PhpUnitWarnings
- class \Drupal\Tests\syslog\Kernel\SyslogTest
Expanded class hierarchy of SyslogTest
File
- core/
modules/ syslog/ tests/ src/ Kernel/ SyslogTest.php, line 14
Namespace
Drupal\Tests\syslog\KernelView source
class SyslogTest extends KernelTestBase {
protected static $modules = [
'syslog',
'syslog_test',
];
/**
* {@inheritdoc}
*/
protected function setUp() : void {
parent::setUp();
$this
->installConfig([
'syslog',
]);
}
/**
* @covers ::log
*/
public function testSyslogWriting() {
$request = Request::create('/page-not-found', 'GET', [], [], [], [
'REMOTE_ADDR' => '1.2.3.4',
]);
$request->headers
->set('Referer', 'other-site');
\Drupal::requestStack()
->push($request);
$user = $this
->getMockBuilder('Drupal\\Core\\Session\\AccountInterface')
->getMock();
$user
->method('id')
->willReturn(42);
$this->container
->set('current_user', $user);
\Drupal::logger('my_module')
->warning('My warning message.', [
'link' => '/my-link',
]);
$log_filename = $this->container
->get('file_system')
->realpath('public://syslog.log');
$logs = explode(PHP_EOL, file_get_contents($log_filename));
$log = explode('|', $logs[0]);
global $base_url;
$this
->assertEquals($base_url, $log[0]);
$this
->assertEquals('my_module', $log[2]);
$this
->assertEquals('1.2.3.4', $log[3]);
$this
->assertEquals($base_url . '/page-not-found', $log[4]);
$this
->assertEquals('other-site', $log[5]);
$this
->assertEquals('42', $log[6]);
$this
->assertEquals('/my-link', $log[7]);
$this
->assertEquals('My warning message.', $log[8]);
// Test that an empty format prevents writing to the syslog.
/** @var \Drupal\Core\Config\Config $config */
$config = $this->container
->get('config.factory')
->getEditable('syslog.settings');
$config
->set('format', '');
$config
->save();
unlink($log_filename);
\Drupal::logger('my_module')
->warning('My warning message.', [
'link' => '/my-link',
]);
$this
->assertFileDoesNotExist($log_filename);
}
/**
* Tests severity level logging.
*
* @covers ::log
*/
public function testSyslogSeverity() {
/** @var \Drupal\Core\Config\Config $config */
$config = $this->container
->get('config.factory')
->getEditable('syslog.settings');
$config
->set('format', '!type|!message|!severity');
$config
->save();
\Drupal::logger('my_module')
->warning('My warning message.');
$log_filename = $this->container
->get('file_system')
->realpath('public://syslog.log');
$logs = explode(PHP_EOL, file_get_contents($log_filename));
$log = explode('|', $logs[0]);
$this
->assertEquals('my_module', $log[0]);
$this
->assertEquals('My warning message.', $log[1]);
$this
->assertEquals('4', $log[2]);
}
}