Skip to content
Snippets Groups Projects
Unverified Commit 0865322d authored by Alex Pott's avatar Alex Pott
Browse files

Issue #2909805 by googletorp, fgm, dagmar, ankithashetty: LogMessageParser...

Issue #2909805 by googletorp, fgm, dagmar, ankithashetty: LogMessageParser breaks messages containing braces

(cherry picked from commit f6531023)
parent 7a5d5cdd
Branches
Tags
5 merge requests!10011Issue #3200534 by quietone, longwave, Kristen Pol: Use dataprovider for...,!2571Issue #3000717: Missing mapping for "nodereference_url" widget,!2521Issue #3185775: Place Views preview on the side on large monitors,!1479Issue #3250298: Return empty string "" with JSON Serializer instead of FALSE,!1478Issue #3250298: Return empty string "" with JSON Serializer instead of FALSE
......@@ -17,7 +17,7 @@ public function parseMessagePlaceholders(&$message, array &$context) {
$has_psr3 = TRUE;
// Transform PSR3 style messages containing placeholders to
// \Drupal\Component\Render\FormattableMarkup style.
$message = preg_replace('/\{(.*)\}/U', '@$1', $message);
$message = preg_replace('/\{([^\{}]*)\}/U', '@$1', $message);
}
foreach ($context as $key => $variable) {
// PSR3 style placeholders.
......
......@@ -245,6 +245,23 @@ public function testLogEventPageWithMissingInfo() {
$this->assertSession()->linkNotExists($request_uri);
}
/**
* Test that twig errors are displayed correctly.
*/
public function testMessageParsing() {
$this->drupalLogin($this->adminUser);
// Log a common twig error with {{ }} and { } variables.
\Drupal::service('logger.factory')->get("php")
->error('Incorrect parameter {{foo}} in path {path}: {value}',
['foo' => 'bar', 'path' => '/baz', 'value' => 'horse']
);
// View the log page to verify it's correct.
$wid = \Drupal::database()->query('SELECT MAX(wid) FROM {watchdog}')->fetchField();
$this->drupalGet('admin/reports/dblog/event/' . $wid);
$this->assertSession()
->responseContains('Incorrect parameter {bar} in path /baz: horse');
}
/**
* Verifies setting of the database log row limit.
*
......
......@@ -60,8 +60,8 @@ public function providerTestParseMessagePlaceholders() {
],
// Message with double PSR3 style messages.
[
['message' => 'Test {with} two {encapsuled} strings', 'context' => ['with' => 'together', 'encapsuled' => 'awesome']],
['message' => 'Test @with two @encapsuled strings', 'context' => ['@with' => 'together', '@encapsuled' => 'awesome']],
['message' => 'Test {with} two {{encapsuled}} strings', 'context' => ['with' => 'together', 'encapsuled' => 'awesome']],
['message' => 'Test @with two {@encapsuled} strings', 'context' => ['@with' => 'together', '@encapsuled' => 'awesome']],
],
];
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment