Files
geo/api/test_chat_temp_id.php

156 lines
5.7 KiB
PHP

<?php
/**
* Script de test pour vérifier le support des temp_id dans l'API chat
*
* Usage: php test_chat_temp_id.php
*/
// Configuration
$apiUrl = 'http://localhost/api';
$sessionId = 'test_session_id'; // À remplacer par un session_id valide
// Fonction pour faire une requête HTTP
function makeRequest($method, $endpoint, $data = null, $sessionId = null) {
global $apiUrl;
$ch = curl_init($apiUrl . $endpoint);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
$headers = ['Content-Type: application/json'];
if ($sessionId) {
$headers[] = 'Authorization: Bearer ' . $sessionId;
}
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
if ($data !== null) {
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
}
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return [
'code' => $httpCode,
'response' => json_decode($response, true)
];
}
// Tests
echo "=== Tests de support des temp_id dans l'API Chat ===\n\n";
// Test 1: Création d'une room avec temp_id
echo "Test 1: Création d'une room avec temp_id\n";
$roomData = [
'type' => 'private',
'participants' => [2], // ID d'un autre utilisateur
'title' => 'Test Room Offline',
'temp_id' => 'temp_room_' . uniqid()
];
echo "Requête POST /chat/rooms avec temp_id: {$roomData['temp_id']}\n";
$result = makeRequest('POST', '/chat/rooms', $roomData, $sessionId);
if ($result['code'] === 201 && isset($result['response']['room']['temp_id'])) {
echo "✅ Succès: Room créée avec temp_id retourné\n";
echo " - ID réel: " . $result['response']['room']['id'] . "\n";
echo " - temp_id: " . $result['response']['room']['temp_id'] . "\n";
$roomId = $result['response']['room']['id'];
} else {
echo "❌ Échec: temp_id non retourné dans la réponse\n";
echo " Response: " . json_encode($result['response']) . "\n";
$roomId = null;
}
echo "\n";
// Test 2: Envoi d'un message avec temp_id
if ($roomId) {
echo "Test 2: Envoi d'un message avec temp_id\n";
$messageData = [
'content' => 'Message créé hors ligne',
'temp_id' => 'temp_msg_' . uniqid()
];
echo "Requête POST /chat/rooms/{$roomId}/messages avec temp_id: {$messageData['temp_id']}\n";
$result = makeRequest('POST', "/chat/rooms/{$roomId}/messages", $messageData, $sessionId);
if ($result['code'] === 201 && isset($result['response']['message']['temp_id'])) {
echo "✅ Succès: Message créé avec temp_id retourné\n";
echo " - ID réel: " . $result['response']['message']['id'] . "\n";
echo " - temp_id: " . $result['response']['message']['temp_id'] . "\n";
$messageId = $result['response']['message']['id'];
} else {
echo "❌ Échec: temp_id non retourné dans la réponse\n";
echo " Response: " . json_encode($result['response']) . "\n";
$messageId = null;
}
echo "\n";
}
// Test 3: Mise à jour d'une room avec temp_id
if ($roomId) {
echo "Test 3: Mise à jour d'une room avec temp_id\n";
$updateData = [
'title' => 'Room mise à jour',
'temp_id' => 'temp_update_room_' . uniqid()
];
echo "Requête PUT /chat/rooms/{$roomId} avec temp_id: {$updateData['temp_id']}\n";
$result = makeRequest('PUT', "/chat/rooms/{$roomId}", $updateData, $sessionId);
if ($result['code'] === 200 && isset($result['response']['room']['temp_id'])) {
echo "✅ Succès: Room mise à jour avec temp_id retourné\n";
echo " - temp_id: " . $result['response']['room']['temp_id'] . "\n";
} else {
echo "❌ Échec: temp_id non retourné dans la réponse\n";
echo " Response: " . json_encode($result['response']) . "\n";
}
echo "\n";
}
// Test 4: Mise à jour d'un message avec temp_id
if ($messageId) {
echo "Test 4: Mise à jour d'un message avec temp_id\n";
$updateData = [
'content' => 'Message modifié',
'temp_id' => 'temp_update_msg_' . uniqid()
];
echo "Requête PUT /chat/messages/{$messageId} avec temp_id: {$updateData['temp_id']}\n";
$result = makeRequest('PUT', "/chat/messages/{$messageId}", $updateData, $sessionId);
if ($result['code'] === 200 && isset($result['response']['message']['temp_id'])) {
echo "✅ Succès: Message mis à jour avec temp_id retourné\n";
echo " - temp_id: " . $result['response']['message']['temp_id'] . "\n";
} else {
echo "❌ Échec: temp_id non retourné dans la réponse\n";
echo " Response: " . json_encode($result['response']) . "\n";
}
echo "\n";
}
// Test 5: Création sans temp_id (doit continuer à fonctionner)
echo "Test 5: Création d'une room SANS temp_id (compatibilité)\n";
$roomData = [
'type' => 'private',
'participants' => [2],
'title' => 'Test Room Normal'
];
echo "Requête POST /chat/rooms sans temp_id\n";
$result = makeRequest('POST', '/chat/rooms', $roomData, $sessionId);
if ($result['code'] === 201 && !isset($result['response']['room']['temp_id'])) {
echo "✅ Succès: Room créée normalement sans temp_id\n";
echo " - ID: " . $result['response']['room']['id'] . "\n";
} else if ($result['code'] === 201) {
echo "⚠️ Attention: Room créée mais temp_id présent alors qu'il ne devrait pas\n";
} else {
echo "❌ Échec: Erreur lors de la création\n";
echo " Response: " . json_encode($result['response']) . "\n";
}
echo "\n=== Fin des tests ===\n";
echo "\nNote: Assurez-vous d'avoir un session_id valide et que l'API est accessible.\n";
echo "Pour obtenir un session_id valide, connectez-vous d'abord via POST /api/login\n";