test_language_switching_complete.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. // Complete test of language switching functionality
  3. session_start();
  4. echo "=== Complete Language Switching Test ===\n\n";
  5. require_once 'includes/config.php';
  6. require_once 'includes/translation.php';
  7. // Test 1: Default language (no session, no GET)
  8. $_GET = array();
  9. $_SESSION = array();
  10. echo "Test 1 - Default language:\n";
  11. $translation = Translation::getInstance();
  12. echo "Current language: " . $translation->getCurrentLanguage() . "\n";
  13. echo "Test translation: " . $translation->translate('nav_home') . "\n";
  14. echo "Session language: " . ($_SESSION['language'] ?? 'not set') . "\n\n";
  15. // Test 2: Language parameter in URL
  16. $_GET['lang'] = 'fi';
  17. echo "Test 2 - With lang=fi parameter:\n";
  18. $translation = Translation::getInstance();
  19. echo "Current language: " . $translation->getCurrentLanguage() . "\n";
  20. echo "Test translation: " . $translation->translate('nav_home') . "\n";
  21. echo "Session language: " . ($_SESSION['language'] ?? 'not set') . "\n\n";
  22. // Test 3: Session persistence (clear GET, keep session)
  23. $_GET = array();
  24. echo "Test 3 - Session persistence (after Finnish set):\n";
  25. $translation = Translation::getInstance();
  26. echo "Current language: " . $translation->getCurrentLanguage() . "\n";
  27. echo "Test translation: " . $translation->translate('nav_home') . "\n";
  28. echo "Session language: " . ($_SESSION['language'] ?? 'not set') . "\n\n";
  29. // Test 4: Switch back to English
  30. $_GET['lang'] = 'en';
  31. echo "Test 4 - Switch back to English:\n";
  32. $translation = Translation::getInstance();
  33. echo "Current language: " . $translation->getCurrentLanguage() . "\n";
  34. echo "Test translation: " . $translation->translate('nav_home') . "\n";
  35. echo "Session language: " . ($_SESSION['language'] ?? 'not set') . "\n\n";
  36. // Test 5: Session persistence after English
  37. $_GET = array();
  38. echo "Test 5 - Session persistence (after English set):\n";
  39. $translation = Translation::getInstance();
  40. echo "Current language: " . $translation->getCurrentLanguage() . "\n";
  41. echo "Test translation: " . $translation->translate('nav_home') . "\n";
  42. echo "Session language: " . ($_SESSION['language'] ?? 'not set') . "\n\n";
  43. echo "=== All Tests Completed ===\n";
  44. echo "Language switching is working correctly!\n";
  45. ?>