class LogMessageParserTest
Same name in other branches
- 9 core/tests/Drupal/Tests/Core/Logger/LogMessageParserTest.php \Drupal\Tests\Core\Logger\LogMessageParserTest
- 8.9.x core/tests/Drupal/Tests/Core/Logger/LogMessageParserTest.php \Drupal\Tests\Core\Logger\LogMessageParserTest
- 10 core/tests/Drupal/Tests/Core/Logger/LogMessageParserTest.php \Drupal\Tests\Core\Logger\LogMessageParserTest
@coversDefaultClass \Drupal\Core\Logger\LogMessageParser @group Logger
Hierarchy
- class \Drupal\Tests\UnitTestCase extends \PHPUnit\Framework\TestCase uses \Drupal\Tests\PhpUnitCompatibilityTrait, \Prophecy\PhpUnit\ProphecyTrait, \Drupal\TestTools\Extension\DeprecationBridge\ExpectDeprecationTrait, \Drupal\Tests\RandomGeneratorTrait
- class \Drupal\Tests\Core\Logger\LogMessageParserTest extends \Drupal\Tests\UnitTestCase
Expanded class hierarchy of LogMessageParserTest
File
-
core/
tests/ Drupal/ Tests/ Core/ Logger/ LogMessageParserTest.php, line 15
Namespace
Drupal\Tests\Core\LoggerView source
class LogMessageParserTest extends UnitTestCase {
/**
* Tests for LogMessageParserTrait::parseMessagePlaceholders()
*
* @param array $value
* An array containing:
* - message: A string that contains a message with placeholders.
* - context: An array with placeholder values.
* @param array $expected
* An array with the expected values after the test has run.
* - message: The expected parsed message.
* - context: The expected values of the placeholders.
*
* @dataProvider providerTestParseMessagePlaceholders
* @covers ::parseMessagePlaceholders
*/
public function testParseMessagePlaceholders(array $value, array $expected) : void {
$parser = new LogMessageParser();
$message_placeholders = $parser->parseMessagePlaceholders($value['message'], $value['context']);
$this->assertEquals($expected['message'], $value['message']);
$this->assertEquals($expected['context'], $message_placeholders);
}
/**
* Data provider for testParseMessagePlaceholders().
*/
public static function providerTestParseMessagePlaceholders() {
return [
'PSR3-style placeholder' => [
[
'message' => 'User {username} created',
'context' => [
'username' => 'Dries',
],
],
[
'message' => 'User @username created',
'context' => [
'@username' => 'Dries',
],
],
],
'PSR3- and FormattableMarkup-style placeholders' => [
[
'message' => 'User {username} created @time',
'context' => [
'username' => 'Dries',
'@time' => 'now',
],
],
[
'message' => 'User @username created @time',
'context' => [
'@username' => 'Dries',
'@time' => 'now',
],
],
],
'FormattableMarkup-style placeholder' => [
[
'message' => 'User @username created',
'context' => [
'@username' => 'Dries',
],
],
[
'message' => 'User @username created',
'context' => [
'@username' => 'Dries',
],
],
],
'Wildcard characters' => [
[
'message' => 'User W-\\};~{&! created @',
'context' => [
'' => '',
],
],
[
'message' => 'User W-\\};~{&! created @',
'context' => [],
],
],
'Multiple PSR3-style placeholders' => [
[
'message' => 'Test {with} two {{encapsuled}} strings',
'context' => [
'with' => 'together',
'encapsuled' => 'awesome',
],
],
[
'message' => 'Test @with two {@encapsuled} strings',
'context' => [
'@with' => 'together',
'@encapsuled' => 'awesome',
],
],
],
'Disallowed placeholder' => [
[
'message' => 'Test placeholder with :url and old !bang parameter',
'context' => [
':url' => 'https://example.com',
'!bang' => 'foo bar',
],
],
[
'message' => 'Test placeholder with :url and old !bang parameter',
'context' => [
':url' => 'https://example.com',
],
],
],
'Stringable object placeholder' => [
[
'message' => 'object @b',
'context' => [
'@b' => new FormattableMarkup('convertible', []),
],
],
[
'message' => 'object @b',
'context' => [
'@b' => 'convertible',
],
],
],
'Non-placeholder context value' => [
[
'message' => 'message',
'context' => [
'not_a_placeholder' => new \stdClass(),
],
],
[
'message' => 'message',
'context' => [],
],
],
'Non-stringable array placeholder' => [
[
'message' => 'array @a',
'context' => [
'@a' => [],
],
],
[
'message' => 'array @a',
'context' => [],
],
],
'Non-stringable object placeholder' => [
[
'message' => 'object @b',
'context' => [
'@b' => new \stdClass(),
],
],
[
'message' => 'object @b',
'context' => [],
],
],
'Non-stringable closure placeholder' => [
[
'message' => 'closure @c',
'context' => [
'@c' => function () {
},
],
],
[
'message' => 'closure @c',
'context' => [],
],
],
'Non-stringable resource placeholder' => [
[
'message' => 'resource @r',
'context' => [
'@r' => fopen('php://memory', 'r+'),
],
],
[
'message' => 'resource @r',
'context' => [],
],
],
'Non-stringable placeholder is not the first placeholder' => [
[
'message' => 'mixed @a @b @c',
'context' => [
'@a' => 123,
'@b' => [
1,
],
'@c' => TRUE,
],
],
[
'message' => 'mixed @a @b @c',
'context' => [
'@a' => 123,
'@c' => TRUE,
],
],
],
'NULL and Boolean placeholders are considered stringable' => [
[
'message' => 'mixed @a @b @c',
'context' => [
'@a' => NULL,
'@b' => TRUE,
'@c' => FALSE,
],
],
[
'message' => 'mixed @a @b @c',
'context' => [
'@a' => NULL,
'@b' => TRUE,
'@c' => FALSE,
],
],
],
];
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overrides |
---|---|---|---|---|
ExpectDeprecationTrait::expectDeprecation | public | function | Adds an expected deprecation. | |
ExpectDeprecationTrait::getCallableName | private static | function | Returns a callable as a string suitable for inclusion in a message. | |
ExpectDeprecationTrait::setUpErrorHandler | public | function | Sets up the test error handler. | |
ExpectDeprecationTrait::tearDownErrorHandler | public | function | Tears down the test error handler. | |
LogMessageParserTest::providerTestParseMessagePlaceholders | public static | function | Data provider for testParseMessagePlaceholders(). | |
LogMessageParserTest::testParseMessagePlaceholders | public | function | Tests for LogMessageParserTrait::parseMessagePlaceholders() | |
RandomGeneratorTrait::getRandomGenerator | protected | function | Gets the random generator for the utility methods. | |
RandomGeneratorTrait::randomMachineName | protected | function | Generates a unique random string containing letters and numbers. | |
RandomGeneratorTrait::randomObject | public | function | Generates a random PHP object. | |
RandomGeneratorTrait::randomString | public | function | Generates a pseudo-random string of ASCII characters of codes 32 to 126. | |
UnitTestCase::$root | protected | property | The app root. | |
UnitTestCase::getClassResolverStub | protected | function | Returns a stub class resolver. | |
UnitTestCase::getConfigFactoryStub | public | function | Returns a stub config factory that behaves according to the passed array. | |
UnitTestCase::getConfigStorageStub | public | function | Returns a stub config storage that returns the supplied configuration. | |
UnitTestCase::getContainerWithCacheTagsInvalidator | protected | function | Sets up a container with a cache tags invalidator. | |
UnitTestCase::getStringTranslationStub | public | function | Returns a stub translation manager that just returns the passed string. | |
UnitTestCase::setUp | protected | function | 367 | |
UnitTestCase::setUpBeforeClass | public static | function |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.