<?php

// Set test environment
define('PHPUNIT_RUNNING', true);

// Configure session before starting it
ini_set('session.use_strict_mode', '1');
ini_set('session.use_only_cookies', '1');
ini_set('session.cookie_httponly', '1');
ini_set('session.cookie_secure', '1');
ini_set('session.cookie_samesite', 'Lax');
ini_set('session.gc_maxlifetime', 1440);

// Start session if not already started
//if (session_status() === PHP_SESSION_NONE) {
//    session_start();
//}

// Load Composer's autoloader
require_once __DIR__ . '/vendor/autoload.php';

// Set error reporting
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

// Set timezone
date_default_timezone_set('UTC');

// Define global variables needed by the application
$GLOBALS['app_root'] = '/';
$GLOBALS['config'] = [
    'db' => [
        'type' => 'sqlite',
        'dbFile' => ':memory:'
    ],
    'folder' => '/',
    'domain' => 'localhost',
    'login' => [
        'max_attempts' => 5,
        'lockout_time' => 900
    ]
];

// Initialize system_messages array
$GLOBALS['system_messages'] = [];

// Set up server variables
$_SERVER['PHP_SELF'] = '/index.php';
$_SERVER['REMOTE_ADDR'] = '127.0.0.1';
$_SERVER['HTTP_USER_AGENT'] = 'PHPUnit Test Browser';
$_SERVER['HTTP_HOST'] = 'localhost';
$_SERVER['REQUEST_URI'] = '/?page=login';
$_SERVER['HTTPS'] = 'on';

// Define global connectDB function
if (!function_exists('connectDB')) {
    function connectDB($config) {
        global $dbWeb;
        return [
            'db' => $dbWeb
        ];
    }
}