![]() 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/ |
<?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>";
?>