3 declare(strict_types
=1);
5 namespace PhpMyAdmin\Tests
;
7 use PhpMyAdmin\FlashMessenger
;
8 use PHPUnit\Framework\Attributes\CoversClass
;
11 #[CoversClass(FlashMessenger::class)]
12 final class FlashMessengerTest
extends AbstractTestCase
14 private const STORAGE_KEY
= 'FlashMessenger';
16 public function testSessionNotFoundException(): void
19 $flashMessenger = new FlashMessenger();
20 $this->expectException(RuntimeException
::class);
21 $this->expectExceptionMessage('Session not found.');
22 $flashMessenger->getCurrentMessages();
25 public function testAddMessage(): void
27 unset($_SESSION[self
::STORAGE_KEY
]);
28 $flashMessenger = new FlashMessenger();
29 self
::assertArrayNotHasKey(self
::STORAGE_KEY
, $_SESSION);
30 $flashMessenger->addMessage('error', 'Error');
32 [['context' => 'error', 'message' => 'Error', 'statement' => '']],
33 $_SESSION[self
::STORAGE_KEY
],
37 public function testAddMessageWithStatement(): void
39 unset($_SESSION[self
::STORAGE_KEY
]);
40 $flashMessenger = new FlashMessenger();
41 self
::assertArrayNotHasKey(self
::STORAGE_KEY
, $_SESSION);
42 $flashMessenger->addMessage('success', 'Success!', 'SELECT 1;');
44 [['context' => 'success', 'message' => 'Success!', 'statement' => 'SELECT 1;']],
45 $_SESSION[self
::STORAGE_KEY
],
49 public function testGetMessages(): void
51 unset($_SESSION[self
::STORAGE_KEY
]);
52 $flashMessengerOne = new FlashMessenger();
53 self
::assertSame([], $flashMessengerOne->getCurrentMessages());
54 $flashMessengerOne->addMessage('error', 'Error1');
55 $flashMessengerOne->addMessage('error', 'Error2', 'SOME SQL;');
56 $flashMessengerOne->addMessage('warning', 'Warning');
59 ['context' => 'error', 'message' => 'Error1', 'statement' => ''],
60 ['context' => 'error', 'message' => 'Error2', 'statement' => 'SOME SQL;'],
61 ['context' => 'warning', 'message' => 'Warning', 'statement' => ''],
63 $flashMessengerOne->getCurrentMessages(),
65 self
::assertSame([], $flashMessengerOne->getMessages());
66 $flashMessengerTwo = new FlashMessenger();
67 $flashMessengerTwo->addMessage('notice', 'Notice');
69 [['context' => 'notice', 'message' => 'Notice', 'statement' => '']],
70 $flashMessengerTwo->getCurrentMessages(),
74 ['context' => 'error', 'message' => 'Error1', 'statement' => ''],
75 ['context' => 'error', 'message' => 'Error2', 'statement' => 'SOME SQL;'],
76 ['context' => 'warning', 'message' => 'Warning', 'statement' => ''],
78 $flashMessengerTwo->getMessages(),
81 [['context' => 'notice', 'message' => 'Notice', 'statement' => '']],
82 (new FlashMessenger())->getMessages(),