T.ME/BIBIL_0DAY
CasperSecurity


Server : Apache/2
System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64
User : gositeme ( 1004)
PHP Version : 8.2.29
Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Directory :  /home/gositeme/domains/lavocat.quebec/private_html/php-migration/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/lavocat.quebec/private_html/php-migration/test-connection.php
<?php
/**
 * Database Connection Test
 * Test script to verify database connectivity and basic functionality
 */

require_once 'config/config.php';
require_once 'config/database.php';
require_once 'auth/Auth.php';
require_once 'models/User.php';
require_once 'models/LegalCase.php';
require_once 'models/Document.php';
require_once 'models/ChatRoom.php';
require_once 'models/Message.php';
require_once 'models/ChatParticipant.php';

echo "<h1>avocat.quebec - PHP Migration Test</h1>";
echo "<h2>Database Connection Test</h2>";

try {
    // Test database connection
    $database = new Database();
    $db = $database->getConnection();
    
    if ($db) {
        echo "✅ Database connection successful<br>";
        
        // Test basic query
        $stmt = $db->query("SELECT COUNT(*) as count FROM User");
        $result = $stmt->fetch(PDO::FETCH_ASSOC);
        echo "✅ Database query successful - User count: " . $result['count'] . "<br>";
        
    } else {
        echo "❌ Database connection failed<br>";
        exit;
    }
    
} catch (Exception $e) {
    echo "❌ Database error: " . $e->getMessage() . "<br>";
    exit;
}

echo "<h2>Model Tests</h2>";

// Test User model
try {
    $userModel = new User($db);
    echo "✅ User model instantiated successfully<br>";
    
    // Test user creation
    $userModel->email = 'test@example.com';
    $userModel->password = 'testpassword123';
    $userModel->name = 'Test User';
    $userModel->role = 'USER';
    $userModel->username = 'testuser';
    $userModel->language = 'en';
    $userModel->theme = 'light';
    $userModel->isProfilePublic = false;
    $userModel->isVerified = false;
    $userModel->isActive = true;
    $userModel->status = 'ACTIVE';
    $userModel->totalCases = 0;
    $userModel->wonCases = 0;
    $userModel->lostCases = 0;
    $userModel->xpPoints = 0;
    $userModel->level = 1;
    $userModel->currentStreak = 0;
    $userModel->totalBadges = 0;
    $userModel->reviewsWritten = 0;
    $userModel->forumPosts = 0;
    $userModel->helpedOthers = 0;
    $userModel->totalEndorsements = 0;
    $userModel->profileViews = 0;
    $userModel->observationHours = 0;
    $userModel->reformProposals = 0;
    $userModel->wisdomScore = 0;
    $userModel->civicEngagement = 0;
    $userModel->accountBalance = 0.0;
    $userModel->isPaymentVerified = false;
    $userModel->donationTotal = 0.0;
    $userModel->notifications = true;
    
    if ($userModel->create()) {
        echo "✅ User creation test successful<br>";
        $testUserId = $userModel->id;
        
        // Test user retrieval
        if ($userModel->findByEmail('test@example.com')) {
            echo "✅ User retrieval test successful<br>";
        } else {
            echo "❌ User retrieval test failed<br>";
        }
        
    } else {
        echo "❌ User creation test failed<br>";
    }
    
} catch (Exception $e) {
    echo "❌ User model error: " . $e->getMessage() . "<br>";
}

// Test LegalCase model
try {
    $caseModel = new LegalCase($db);
    echo "✅ LegalCase model instantiated successfully<br>";
    
    // Test case creation
    $caseModel->title = 'Test Case';
    $caseModel->description = 'Test case description';
    $caseModel->status = 'OPEN';
    $caseModel->priority = 'MEDIUM';
    $caseModel->category = 'CIVIL';
    $caseModel->clientId = $testUserId ?? 'test-client-id';
    $caseModel->lawyerId = null;
    $caseModel->lawFirmId = null;
    $caseModel->isPublic = false;
    $caseModel->isArchived = false;
    $caseModel->documents = [];
    $caseModel->tags = ['test', 'migration'];
    
    if ($caseModel->create()) {
        echo "✅ LegalCase creation test successful<br>";
        $testCaseId = $caseModel->id;
        
        // Test case retrieval
        if ($caseModel->findById($testCaseId)) {
            echo "✅ LegalCase retrieval test successful<br>";
        } else {
            echo "❌ LegalCase retrieval test failed<br>";
        }
        
    } else {
        echo "❌ LegalCase creation test failed<br>";
    }
    
} catch (Exception $e) {
    echo "❌ LegalCase model error: " . $e->getMessage() . "<br>";
}

// Test Document model
try {
    $documentModel = new Document($db);
    echo "✅ Document model instantiated successfully<br>";
    
    // Test document creation
    $documentModel->title = 'Test Document';
    $documentModel->description = 'Test document description';
    $documentModel->fileUrl = 'https://example.com/test.pdf';
    $documentModel->fileName = 'test.pdf';
    $documentModel->fileSize = 1024;
    $documentModel->fileType = 'application/pdf';
    $documentModel->userId = $testUserId ?? 'test-user-id';
    $documentModel->caseId = $testCaseId ?? null;
    $documentModel->isPublic = false;
    $documentModel->version = 1;
    $documentModel->tags = ['test', 'document'];
    $documentModel->category = 'CONTRACT';
    $documentModel->status = 'ACTIVE';
    
    if ($documentModel->create()) {
        echo "✅ Document creation test successful<br>";
        $testDocumentId = $documentModel->id;
        
        // Test document retrieval
        if ($documentModel->findById($testDocumentId)) {
            echo "✅ Document retrieval test successful<br>";
        } else {
            echo "❌ Document retrieval test failed<br>";
        }
        
    } else {
        echo "❌ Document creation test failed<br>";
    }
    
} catch (Exception $e) {
    echo "❌ Document model error: " . $e->getMessage() . "<br>";
}

// Test ChatRoom model
try {
    $chatRoomModel = new ChatRoom($db);
    echo "✅ ChatRoom model instantiated successfully<br>";
    
    // Test chat room creation
    $chatRoomModel->name = 'Test Chat Room';
    $chatRoomModel->type = 'PRIVATE';
    $chatRoomModel->createdById = $testUserId ?? 'test-user-id';
    
    if ($chatRoomModel->create()) {
        echo "✅ ChatRoom creation test successful<br>";
        $testRoomId = $chatRoomModel->id;
        
        // Test chat room retrieval
        if ($chatRoomModel->findById($testRoomId)) {
            echo "✅ ChatRoom retrieval test successful<br>";
        } else {
            echo "❌ ChatRoom retrieval test failed<br>";
        }
        
    } else {
        echo "❌ ChatRoom creation test failed<br>";
    }
    
} catch (Exception $e) {
    echo "❌ ChatRoom model error: " . $e->getMessage() . "<br>";
}

// Test Message model
try {
    $messageModel = new Message($db);
    echo "✅ Message model instantiated successfully<br>";
    
    // Test message creation
    $messageModel->content = 'Test message';
    $messageModel->type = 'TEXT';
    $messageModel->chatRoomId = $testRoomId ?? 'test-room-id';
    $messageModel->userId = $testUserId ?? 'test-user-id';
    $messageModel->isEdited = false;
    $messageModel->isDeleted = false;
    $messageModel->replyToId = null;
    $messageModel->fileUrl = null;
    $messageModel->fileName = null;
    $messageModel->fileSize = null;
    $messageModel->fileType = null;
    
    if ($messageModel->create()) {
        echo "✅ Message creation test successful<br>";
        $testMessageId = $messageModel->id;
        
        // Test message retrieval
        if ($messageModel->findById($testMessageId)) {
            echo "✅ Message retrieval test successful<br>";
        } else {
            echo "❌ Message retrieval test failed<br>";
        }
        
    } else {
        echo "❌ Message creation test failed<br>";
    }
    
} catch (Exception $e) {
    echo "❌ Message model error: " . $e->getMessage() . "<br>";
}

// Test ChatParticipant model
try {
    $participantModel = new ChatParticipant($db);
    echo "✅ ChatParticipant model instantiated successfully<br>";
    
    // Test participant creation
    $participantModel->userId = $testUserId ?? 'test-user-id';
    $participantModel->chatRoomId = $testRoomId ?? 'test-room-id';
    $participantModel->role = 'MEMBER';
    
    if ($participantModel->create()) {
        echo "✅ ChatParticipant creation test successful<br>";
        $testParticipantId = $participantModel->id;
        
        // Test participant retrieval
        if ($participantModel->findById($testParticipantId)) {
            echo "✅ ChatParticipant retrieval test successful<br>";
        } else {
            echo "❌ ChatParticipant retrieval test failed<br>";
        }
        
    } else {
        echo "❌ ChatParticipant creation test failed<br>";
    }
    
} catch (Exception $e) {
    echo "❌ ChatParticipant model error: " . $e->getMessage() . "<br>";
}

echo "<h2>Authentication Test</h2>";

try {
    $auth = new Auth();
    echo "✅ Auth class instantiated successfully<br>";
    
    // Test user registration
    $result = $auth->register('test2@example.com', 'testpassword123', 'Test User 2', 'USER');
    if ($result['success']) {
        echo "✅ User registration test successful<br>";
        
        // Test user login
        $loginResult = $auth->login('test2@example.com', 'testpassword123');
        if ($loginResult['success']) {
            echo "✅ User login test successful<br>";
            
            // Test get current user
            $currentUser = $auth->getCurrentUser();
            if ($currentUser) {
                echo "✅ Get current user test successful<br>";
            } else {
                echo "❌ Get current user test failed<br>";
            }
            
        } else {
            echo "❌ User login test failed: " . $loginResult['message'] . "<br>";
        }
        
    } else {
        echo "❌ User registration test failed: " . $result['message'] . "<br>";
    }
    
} catch (Exception $e) {
    echo "❌ Authentication error: " . $e->getMessage() . "<br>";
}

echo "<h2>API Endpoint Tests</h2>";

// Test API endpoints
$apiEndpoints = [
    'users.php' => 'Users API',
    'cases.php' => 'Cases API',
    'documents.php' => 'Documents API'
];

foreach ($apiEndpoints as $endpoint => $name) {
    $url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['REQUEST_URI']) . '/api/' . $endpoint;
    
    $context = stream_context_create([
        'http' => [
            'method' => 'GET',
            'header' => 'Content-Type: application/json',
            'timeout' => 5
        ]
    ]);
    
    $response = @file_get_contents($url, false, $context);
    
    if ($response !== false) {
        $data = json_decode($response, true);
        if (isset($data['error']) && $data['error'] === 'Unauthorized') {
            echo "✅ $name endpoint accessible (requires authentication)<br>";
        } else {
            echo "✅ $name endpoint accessible<br>";
        }
    } else {
        echo "❌ $name endpoint not accessible<br>";
    }
}

echo "<h2>File Upload Test</h2>";

// Test upload directory
$uploadDir = __DIR__ . '/uploads/';
if (!is_dir($uploadDir)) {
    if (mkdir($uploadDir, 0755, true)) {
        echo "✅ Upload directory created successfully<br>";
    } else {
        echo "❌ Failed to create upload directory<br>";
    }
} else {
    echo "✅ Upload directory exists<br>";
}

// Test upload permissions
if (is_writable($uploadDir)) {
    echo "✅ Upload directory is writable<br>";
} else {
    echo "❌ Upload directory is not writable<br>";
}

echo "<h2>Configuration Test</h2>";

// Test configuration constants
$configTests = [
    'APP_NAME' => defined('APP_NAME') ? APP_NAME : 'Not defined',
    'APP_URL' => defined('APP_URL') ? APP_URL : 'Not defined',
    'DEFAULT_LANGUAGE' => defined('DEFAULT_LANGUAGE') ? DEFAULT_LANGUAGE : 'Not defined',
    'MAX_FILE_SIZE' => defined('MAX_FILE_SIZE') ? MAX_FILE_SIZE : 'Not defined',
    'ALLOWED_FILE_TYPES' => defined('ALLOWED_FILE_TYPES') ? implode(', ', ALLOWED_FILE_TYPES) : 'Not defined'
];

foreach ($configTests as $key => $value) {
    echo "✅ $key: $value<br>";
}

echo "<h2>Test Summary</h2>";
echo "<p>All core functionality has been tested. Check the results above for any issues.</p>";
echo "<p><strong>Next steps:</strong></p>";
echo "<ul>";
echo "<li>Test the web interface by visiting the homepage</li>";
echo "<li>Test user registration and login</li>";
echo "<li>Test file upload functionality</li>";
echo "<li>Test chat functionality (requires WebSocket server)</li>";
echo "</ul>";

echo "<p><a href='index.php'>Go to Homepage</a> | <a href='login.php'>Go to Login</a> | <a href='register.php'>Go to Register</a></p>";
?>

CasperSecurity Mini