| 
 | 1 | +<?php  | 
 | 2 | + | 
 | 3 | +declare(strict_types=1);  | 
 | 4 | + | 
 | 5 | +namespace PhpMyAdmin\Tests;  | 
 | 6 | + | 
 | 7 | +use PhpMyAdmin\FlashMessages;  | 
 | 8 | +use RuntimeException;  | 
 | 9 | + | 
 | 10 | +class FlashMessagesTest extends AbstractTestCase  | 
 | 11 | +{  | 
 | 12 | +    private const STORAGE_KEY = 'flashMessages';  | 
 | 13 | + | 
 | 14 | +    public function testConstructor(): void  | 
 | 15 | +    {  | 
 | 16 | +        $this->assertArrayNotHasKey(self::STORAGE_KEY, $_SESSION);  | 
 | 17 | +        $flash = new FlashMessages();  | 
 | 18 | +        $this->assertIsArray($_SESSION[self::STORAGE_KEY]);  | 
 | 19 | + | 
 | 20 | +        $_SESSION = null;  | 
 | 21 | +        $this->expectException(RuntimeException::class);  | 
 | 22 | +        $this->expectExceptionMessage('Session not found.');  | 
 | 23 | +        $flash = new FlashMessages();  | 
 | 24 | +    }  | 
 | 25 | + | 
 | 26 | +    public function testAddMessage(): void  | 
 | 27 | +    {  | 
 | 28 | +        $flash = new FlashMessages();  | 
 | 29 | +        $this->assertArrayNotHasKey('error', $_SESSION[self::STORAGE_KEY]);  | 
 | 30 | +        $flash->addMessage('error', 'Error');  | 
 | 31 | +        $this->assertArrayHasKey('error', $_SESSION[self::STORAGE_KEY]);  | 
 | 32 | +        $this->assertIsArray($_SESSION[self::STORAGE_KEY]['error']);  | 
 | 33 | +        $this->assertEquals(['Error'], $_SESSION[self::STORAGE_KEY]['error']);  | 
 | 34 | +    }  | 
 | 35 | + | 
 | 36 | +    public function testGetMessage(): void  | 
 | 37 | +    {  | 
 | 38 | +        $_SESSION[self::STORAGE_KEY] = ['warning' => ['Warning']];  | 
 | 39 | +        $flash = new FlashMessages();  | 
 | 40 | +        $message = $flash->getMessage('error');  | 
 | 41 | +        $this->assertNull($message);  | 
 | 42 | +        $message = $flash->getMessage('warning');  | 
 | 43 | +        $this->assertEquals(['Warning'], $message);  | 
 | 44 | +    }  | 
 | 45 | + | 
 | 46 | +    public function testGetMessages(): void  | 
 | 47 | +    {  | 
 | 48 | +        $_SESSION[self::STORAGE_KEY] = [  | 
 | 49 | +            'error' => ['Error1', 'Error2'],  | 
 | 50 | +            'warning' => ['Warning'],  | 
 | 51 | +        ];  | 
 | 52 | +        $flash = new FlashMessages();  | 
 | 53 | +        $flash->addMessage('notice', 'Notice');  | 
 | 54 | +        $messages = $flash->getMessages();  | 
 | 55 | +        $this->assertEquals(  | 
 | 56 | +            [  | 
 | 57 | +                'error' => ['Error1', 'Error2'],  | 
 | 58 | +                'warning' => ['Warning'],  | 
 | 59 | +            ],  | 
 | 60 | +            $messages  | 
 | 61 | +        );  | 
 | 62 | +    }  | 
 | 63 | +}  | 
0 commit comments