only in patch2: unchanged: --- a/core/modules/dblog/src/Tests/DbLogTest.php +++ b/core/modules/dblog/src/Tests/DbLogTest.php @@ -7,8 +7,8 @@ namespace Drupal\dblog\Tests; +use Drupal\Component\Utility\SafeMarkup; use Drupal\Component\Utility\Unicode; -use Drupal\Component\Utility\Xss; use Drupal\Core\Logger\RfcLogLevel; use Drupal\Core\Url; use Drupal\dblog\Controller\DbLogController; @@ -332,17 +332,17 @@ private function doUser() { // Add user. // Default display includes name and email address; if too long, the email // address is replaced by three periods. - $this->assertLogMessage(t('New user: %name %email.', array('%name' => $name, '%email' => '<' . $user->getEmail() . '>')), 'DBLog event was recorded: [add user]'); + $this->assertLogMessage('New user: %name %email.', array('%name' => $name, '%email' => '<' . $user->getEmail() . '>'), 'DBLog event was recorded: [add user]'); // Login user. - $this->assertLogMessage(t('Session opened for %name.', array('%name' => $name)), 'DBLog event was recorded: [login user]'); + $this->assertLogMessage('Session opened for %name.', array('%name' => $name), 'DBLog event was recorded: [login user]'); // Logout user. - $this->assertLogMessage(t('Session closed for %name.', array('%name' => $name)), 'DBLog event was recorded: [logout user]'); + $this->assertLogMessage('Session closed for %name.', array('%name' => $name), 'DBLog event was recorded: [logout user]'); // Delete user. $message = t('Deleted user: %name %email.', array('%name' => $name, '%email' => '<' . $user->getEmail() . '>')); - $message_text = Unicode::truncate(Xss::filter($message, array()), 56, TRUE, TRUE); + $message_text = SafeMarkup::xssTruncate($message, 56, TRUE, TRUE); // Verify that the full message displays on the details page. $link = FALSE; - if ($links = $this->xpath('//a[text()="' . html_entity_decode($message_text) . '"]')) { + if ($links = $this->xpath('//a[string()="' . html_entity_decode(strip_tags($message_text)) . '"]')) { // Found link with the message text. $links = array_shift($links); foreach ($links->attributes() as $attr => $value) { @@ -412,11 +412,11 @@ private function doNode($type) { // Verify that node events were recorded. // Was node content added? - $this->assertLogMessage(t('@type: added %title.', array('@type' => $type, '%title' => $title)), 'DBLog event was recorded: [content added]'); + $this->assertLogMessage('@type: added %title.', array('@type' => $type, '%title' => $title), 'DBLog event was recorded: [content added]'); // Was node content updated? - $this->assertLogMessage(t('@type: updated %title.', array('@type' => $type, '%title' => $title)), 'DBLog event was recorded: [content updated]'); + $this->assertLogMessage('@type: updated %title.', array('@type' => $type, '%title' => $title), 'DBLog event was recorded: [content updated]'); // Was node content deleted? - $this->assertLogMessage(t('@type: deleted %title.', array('@type' => $type, '%title' => $title)), 'DBLog event was recorded: [content deleted]'); + $this->assertLogMessage('@type: deleted %title.', array('@type' => $type, '%title' => $title), 'DBLog event was recorded: [content deleted]'); // View the database log access-denied report page. $this->drupalGet('admin/reports/access-denied'); @@ -694,12 +694,19 @@ protected function asText(\SimpleXMLElement $element) { * @param string $message * The message to pass to simpletest. */ - protected function assertLogMessage($log_message, $message) { - $message_text = Unicode::truncate(Xss::filter($log_message, array()), 56, TRUE, TRUE); + protected function assertLogMessage($log_message, $log_variables, $message) { + $stripped_text = SafeMarkup::xssTruncate(SafeMarkup::format($log_message, $log_variables), 56, TRUE, TRUE, 1, []); // After \Drupal\Component\Utility\Xss::filter(), HTML entities should be // converted to their character equivalents because assertLink() uses this // string in xpath() to query the Document Object Model (DOM). - $this->assertLink(html_entity_decode($message_text), 0, $message); + $xpath = "//a[string() = '" . html_entity_decode($stripped_text) . "'"; + foreach ($log_variables as $key => $variable) { + if ($key[0] == '%') { + $xpath .= ' and em[@class="placeholder" and .="' . html_entity_decode($variable) .'"]'; + } + } + $xpath .= ']'; + $this->assertTrue($this->xpath($xpath), $message); } /** only in patch2: unchanged: --- a/core/modules/search/src/Tests/SearchConfigSettingsFormTest.php +++ b/core/modules/search/src/Tests/SearchConfigSettingsFormTest.php @@ -7,6 +7,7 @@ namespace Drupal\search\Tests; +use Drupal\Component\Utility\SafeMarkup; use Drupal\Core\Url; /** @@ -100,7 +101,7 @@ function testSearchSettingsPage() { $text = $this->randomMachineName(5); $this->drupalPostForm('search/node', array('keys' => $text), t('Search')); $this->drupalGet('admin/reports/dblog'); - $this->assertLink('Searched Content for ' . $text . '.', 0, 'Search was logged'); + $this->assertRaw('>' . SafeMarkup::format('Searched %type for %keys.', ['%type' => 'Content', '%keys' => $text]) . '', 0, 'Search was logged'); }