4
0

SessionTest.php 1018 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. declare(strict_types=1);
  3. final class SessionTest extends \PHPUnit\Framework\TestCase {
  4. private string $originalSavePath;
  5. #[\Override]
  6. protected function setUp(): void {
  7. $this->originalSavePath = (string)ini_get('session.save_path');
  8. }
  9. #[\Override]
  10. protected function tearDown(): void {
  11. ini_set('session.save_path', $this->originalSavePath);
  12. }
  13. public function testRegenerateIDOnHealthyStorage(): void {
  14. $previous = $_SESSION ?? [];
  15. Minz_Session::regenerateID('FreshRSS');
  16. $_SESSION['probe'] = 'ok';
  17. self::assertSame('ok', $_SESSION['probe']);
  18. $_SESSION = $previous;
  19. session_write_close();
  20. }
  21. public function testRegenerateIDOnBrokenStorage(): void {
  22. $save_path = sys_get_temp_dir() . '/frss_test_sessions_' . bin2hex(random_bytes(4));
  23. self::assertNotFalse(mkdir($save_path, 0700));
  24. $broken_path = $save_path . '/missing_subdir';
  25. ini_set('session.save_path', $broken_path);
  26. $this->expectException(RuntimeException::class);
  27. Minz_Session::regenerateID('FreshRSS');
  28. }
  29. }