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 }
|