68 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
| <?php
 | |
| 
 | |
| require_once __DIR__ . '/vendor/autoload.php';
 | |
| 
 | |
| class TestCase extends PHPUnit\Framework\TestCase
 | |
| {
 | |
|     protected function setUp(): void
 | |
|     {
 | |
|         parent::setUp();
 | |
| 
 | |
|         // Set up test environment
 | |
|         $_SERVER['REMOTE_ADDR'] = '127.0.0.1';
 | |
|         $_SERVER['HTTP_USER_AGENT'] = 'PHPUnit Test Browser';
 | |
| 
 | |
|         // Include common app files (if there are any, we don't have for now)
 | |
|         //require_once dirname(__DIR__, 2) . '/app/includes/config.php';
 | |
| 
 | |
|         // Clean up any existing session
 | |
|         if (session_status() === PHP_SESSION_ACTIVE) {
 | |
|             session_destroy();
 | |
|         }
 | |
| 
 | |
|         // Reset session data
 | |
|         $_SESSION = [];
 | |
| 
 | |
|         // Only start session if headers haven't been sent
 | |
|         if (!headers_sent() && session_status() === PHP_SESSION_NONE) {
 | |
|             session_start();
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     protected function tearDown(): void
 | |
|     {
 | |
|         // Clean up session after each test
 | |
|         if (session_status() === PHP_SESSION_ACTIVE) {
 | |
|             $_SESSION = [];
 | |
|             session_destroy();
 | |
|         }
 | |
| 
 | |
|         parent::tearDown();
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Helper method to start a new session if needed
 | |
|      */
 | |
|     protected function ensureSession(): void
 | |
|     {
 | |
|         if (session_status() === PHP_SESSION_NONE && !headers_sent()) {
 | |
|             session_start();
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     protected function captureHeaders(): array
 | |
|     {
 | |
|         $headers = [];
 | |
|         $callback = function($header) use (&$headers) {
 | |
|             $headers[] = $header;
 | |
|         };
 | |
| 
 | |
|         // Mock header function
 | |
|         if (!function_exists('header')) {
 | |
|             eval('function header($header) use ($callback) { $callback($header); }');
 | |
|         }
 | |
| 
 | |
|         return $headers;
 | |
|     }
 | |
| }
 |