annotate core/modules/dblog/tests/src/Kernel/DbLogControllerTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 4c8ae668cc8c
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\Tests\dblog\Kernel;
Chris@0 4
Chris@0 5 use Drupal\dblog\Controller\DbLogController;
Chris@0 6 use Drupal\KernelTests\KernelTestBase;
Chris@0 7
Chris@0 8 /**
Chris@0 9 * Tests for the DbLogController class.
Chris@0 10 *
Chris@0 11 * @group dblog
Chris@0 12 */
Chris@0 13 class DbLogControllerTest extends KernelTestBase {
Chris@0 14
Chris@0 15 /**
Chris@0 16 * {@inheritdoc}
Chris@0 17 */
Chris@0 18 public static $modules = ['dblog', 'user'];
Chris@0 19
Chris@0 20 public function setUp() {
Chris@0 21 parent::setUp();
Chris@0 22 $this->installEntitySchema('user');
Chris@0 23 $this->installSchema('dblog', ['watchdog']);
Chris@0 24 }
Chris@0 25
Chris@0 26 /**
Chris@0 27 * Tests links with non latin characters.
Chris@0 28 */
Chris@0 29 public function testNonLatinCharacters() {
Chris@0 30
Chris@0 31 $link = 'hello-
Chris@0 32 科州的小九寨沟绝美高山湖泊酱凉拌素鸡照烧鸡黄玫瑰
Chris@0 33 科州的小九寨沟绝美高山湖泊酱凉拌素鸡照烧鸡黄玫瑰
Chris@0 34 科州的小九寨沟绝美高山湖泊酱凉拌素鸡照烧鸡黄玫瑰
Chris@0 35 科州的小九寨沟绝美高山湖泊酱凉拌素鸡照烧鸡黄玫瑰
Chris@0 36 科州的小九寨沟绝美高山湖泊酱凉拌素鸡照烧鸡黄玫瑰
Chris@0 37 科州的小九寨沟绝美高山湖泊酱凉拌素鸡照烧鸡黄玫瑰
Chris@0 38 科州的小九寨沟绝美高山湖泊酱凉拌素鸡照烧鸡黄玫瑰
Chris@0 39 科州的小九寨沟绝美高山湖泊酱凉拌素鸡照烧鸡黄玫瑰
Chris@0 40 科州的小九寨沟绝美高山湖泊酱凉拌素鸡照烧鸡黄玫瑰
Chris@0 41 科州的小九寨沟绝美高山湖泊酱凉拌素鸡照烧鸡黄玫瑰
Chris@0 42 科州的小九寨沟绝美高山湖泊酱凉拌素鸡照烧鸡黄玫瑰
Chris@0 43 科州的小九寨沟绝美高山湖泊酱凉拌素鸡照烧鸡黄玫瑰
Chris@0 44 科州的小九寨沟绝美高山湖泊酱凉拌素鸡照烧鸡黄玫瑰
Chris@0 45 科州的小九寨沟绝美高山湖泊酱凉拌素鸡照烧鸡黄玫瑰';
Chris@0 46
Chris@0 47 \Drupal::logger('my_module')->warning('test', ['link' => $link]);
Chris@0 48
Chris@0 49 $log = \Drupal::database()
Chris@0 50 ->select('watchdog', 'w')
Chris@0 51 ->fields('w', ['link'])
Chris@0 52 ->condition('link', '', '<>')
Chris@0 53 ->execute()
Chris@0 54 ->fetchField();
Chris@0 55
Chris@0 56 $this->assertEquals($log, $link);
Chris@0 57 }
Chris@0 58
Chris@0 59 /**
Chris@0 60 * Tests corrupted log entries can still display available data.
Chris@0 61 */
Chris@0 62 public function testDbLogCorrupted() {
Chris@0 63 $dblog_controller = DbLogController::create($this->container);
Chris@0 64
Chris@0 65 // Check message with properly serialized data.
Chris@0 66 $message = (object) [
Chris@0 67 'message' => 'Sample message with placeholder: @placeholder',
Chris@0 68 'variables' => serialize(['@placeholder' => 'test placeholder']),
Chris@0 69 ];
Chris@0 70
Chris@0 71 $this->assertEquals('Sample message with placeholder: test placeholder', $dblog_controller->formatMessage($message));
Chris@0 72
Chris@0 73 // Check that controller work with corrupted data.
Chris@0 74 $message->variables = 'BAD SERIALIZED DATA';
Chris@0 75 $formatted = $dblog_controller->formatMessage($message);
Chris@0 76 $this->assertEquals('Log data is corrupted and cannot be unserialized: Sample message with placeholder: @placeholder', $formatted);
Chris@0 77 }
Chris@0 78
Chris@0 79 }